Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 05/02/2010, 12h29   #1
Invité de passage
 
Inscription : avril 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 14
Points : 3
Points : 3
Par défaut Ouvrir fichier PDF

Bonjour à tous !!

Je souhaite créer une macro qui m'ouvre un fichier PDF puis qui fait une sélection générale (CTRL-A) une copie (CTRL-C) puis qui va chercher mon classeur excel et coller la sélection dans ce classeur.

J'ai fait le bout de code suivant. Mais rien ne se passe. C'est comme si la sélection ne se faisait pas.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub Macro1()
 
Dim MaLigne As Variant
 
retshell = Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe C:\Users\avial\Desktop\test.pdf")
 
'Attendre 2 secondes
Application.Wait (Now + TimeValue("0:00:02"))
 
AppActivate (retshell)                                 'Donner le focus à Acrobat Reader
SendKeys ("^{a}")                                             'Sélectionner tout avec CTRL-A
AppActivate (retshell)
SendKeys ("^{c}")                                             'Copier avec CTRL-C
 
'Attendre 2 secondes
Application.Wait (Now + TimeValue("0:00:02"))
 
'AppActivate "Microsoft Excel" 'Redonner le focus à Excel
 
retshell2 = Shell("C:\Program Files\Microsoft Office\OFFICE11\excel.exe C:\Users\avial\Desktop\TOTO.xls")
 
 
AppActivate (retshell2)
Sheets("Feuil1").Select
 
MaLigne = Range("A65536").End(xlUp).Address
MaLigne = Range(MaLigne).Row
Sheets("Feuil1").Range("A" & MaLigne + 1).Select
SendKeys ("^(v)")
'ActiveSheet.Paste
 
 
End Sub
J'espère que l'un d'entre vous va pouvoir m'aider.

Merci
arkaramasof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 17h15   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 6 724
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 6 724
Points : 8 616
Points : 8 616
Envoyer un message via MSN à jpcheck
salut,
dans ta ligne de shell, il y a une espace dans le path du repertoire Adobe. Pour pallier a cette erreur, il faut encadrer le path par des ""
essaie avec
Code :
retshell = Shell("""C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe""" &  """C:\Users\avial\Desktop\test.pdf""")
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 18h17   #3
Invité de passage
 
Inscription : avril 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 14
Points : 3
Points : 3
J'ai fait le test et je pense que ce n'est pas la raison du problème car je n'arrive à présent plus à ouvrir mon fichier "test.pdf" alors que précédemment cela fonctionnait avant. Je pense que le problème se trouve au niveau de la sélection (CTRL-A) et (CTRL-C) car lorsque j'arrête l'exécution du programme je n'ai pas de sélection active.
arkaramasof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 13h18   #4
Invité de passage
 
Inscription : avril 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 14
Points : 3
Points : 3
J'ai réussi à faire mon copier coller mais le problème est que je n'arrive pas à ouvrir mes différents fichiers en boucle. Le programme marche pour le premier fichier mais pas pour le second.
Il me met une erreur au niveau de la ligne AppActivate (retshell).
Peut etre cela est du au fait que le programme AcroRd32 tourne en fond dans le gestionnaire de tâches. Peut etre faudrait-il le décharger mais je ne sais pas comment faire.
Je joins mon code pour illustrer mon cas ...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Sub Macro1()
 
Dim MaLigne As Variant
Dim retshell As Integer
 
For i = 1 To 22
 
retshell = Shell("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe C:\Users\avial\Desktop\ECARTS PDF\test (" & i & ").pdf", vbNormalFocus)
 
Application.Wait (Now + TimeValue("0:00:02"))
 
AppActivate (retshell)
SendKeys ("^{a}")
SendKeys ("^{c}")
 
Application.Wait (Now + TimeValue("0:00:02"))
 
retshell2 = Shell("C:\Program Files\Microsoft Office\OFFICE11\excel.exe C:\Users\avial\Desktop\TOTO.xls", vbNormalFocus)
 
AppActivate (retshell2)
 
Sheets("Feuil1").Select
 
MaLigne = Range("A65536").End(xlUp).Address
MaLigne = Range(MaLigne).Row
Sheets("Feuil1").Range("A" & MaLigne + 1).Select
SendKeys ("^{v}")
 
SendKeys ("^{s}")
SendKeys ("%{F4}")
 
AppActivate (retshell)
SendKeys ("%{F4}")
 
 
'Workbooks("PDF2XLS.xls").Activate
 
Next
 
End Sub
Merci de votre aide
arkaramasof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2010, 12h56   #5
Membre expérimenté
 
Inscription : décembre 2006
Messages : 610
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 610
Points : 556
Points : 556
Envoyer un message via Skype™ à ESVBA
bonjour Arkamarasof, jpcheck,

AppActivate avec le nom du titre de la fenêtre : pas l'instruction de lancement !

La chaine est du genre :
Code :
C:\Users\avial\Desktop\ECARTS PDF\test (" & i & ").pdf
De plus, Acrobat Reader ajoute au titre un truc du genre " - Adobe Reader" au titre de la fenêtre.

A essayer.

ESVBA
ESVBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 11h11.


 
 
 
 
Partenaires

Hébergement Web