Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
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 26/04/2007, 14h36   #1
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
Par défaut [VBA]Problème ouverture - copie fichers de plusieurs sources

Bonjour,

je vous explique :

J'ai un fichier de synthèse dans lequel je veux copier des feuilles qui sont dans d'autres classeurs. Mais ca ne marche pas.


Voila mon code actuel :

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
41
42
43
44
Sub ouverture()
'
' ouverture Macro
' Macro enregistrée le 24/04/2007 par d824758
'
Dim F

' je vais recuperer les fichiers qui se trouvent dans un dossier.

With Application.FileSearch
.NewSearch
.LookIn = "C:\Documents and Settings\D820060\Bureau\aurelien\test"
.Execute

On Error Resume Next

For Each F In .FoundFiles
MsgBox (F) ' pour verification je voulais voir quels fichier il ouvrait
Workbooks.Open Filename:= _
        F _
        , UpdateLinks:=0
    Windows(F).Activate ' Active le classeur qu'il a ouvert et copie 3 feuilles dans global_antennes2
   Sheets("Synthese article magasin").Select
    Sheets("Synthese article magasin").Copy Before:=Workbooks("global_antennes2").Sheets(1)

    Windows(F).Activate

    Sheets("synthese fourniture de bureau").Select
    Sheets("synthese fourniture de bureau").Copy After:=Workbooks("global_antennes2"). _
        Sheets(1)

    Windows(F).Activate

    Sheets("synthese consom. informatique").Select
    Sheets("synthese consom. informatique").Copy After:=Workbooks("global_antenes2"). _
        Sheets(1)
Windows(F).Close


Next F

End With

End sub

En fait il ouvre bien tous les fichiers qui se trouvent dans le repertoire indiqué mais il ne copie pas les feuilles, et ne ferme pas les fichiers qui ont ete ouverts.
kullervo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h05   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Bonjour kullervo, bienvenue sur le forum. Je passe une adresse qui pourrait t'aider dans tes recherches.
Tu dois baliser ton code pour le rendre lisible. En édition, tu le sélectionnes, tu fais un clic sur l'icône # dans la barre d'outils.
Pour corriger un post, tu as le bouton "Editer" en bas de ton message.
Cette fois-ci, je le fais mais penses-y
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h12   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Essaie ça
Code :
1
2
3
4
5
Dim F as workbook
'...
'...
    F.Worksheets("Synthese article magasin").Copy _
    Before:=Workbooks("global_antennes2").Sheets(1)
Inutile de sélectionner la feuille ou le classeur. Le classeur ? tu viens de l'ouvrir. La feuille ? tu la nommes
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h13   #4
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
ok desolé mr le poulet
kullervo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h17   #5
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
ok j'essaye ca ! je vous tiens au courant.

edit : et bien non ca marche pas, ca ne m'ouvre meme plus les fichiers. Et ma msg box n'affiche plus rien.

Si je met juste : Dim F sans mettre as Workbook ca ouvre les fichiers et la msg box affiche les noms de fichier avec le chemin ! Mais ca copie toujours pas les feuilles.
kullervo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h29   #6
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Oui, ce n'est pas encore un workbook au moment où tu lis le nom. Autant pour moi.
Donc
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim F as variant '(par défaut)
Dim cl as workbook
With Application.FileSearch
.NewSearch
.LookIn = "C:\Documents and Settings\D820060\Bureau\aurelien\test"
.Execute
 
On Error Resume Next
 
For Each F In .FoundFiles
MsgBox (F) ' pour verification je voulais voir quels fichier il ouvrait
    set Cl = Workbooks.Open Filename:=F 
    Cl.Worksheets("Synthese article magasin").Copy _
    Before:=Workbooks("global_antennes2").Sheets(1)
Teste ça pour moi
A+

NB - Et d'abord, chuis pas un poulet, chuis le dernier des dodos
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h50   #7
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
Code :
    set Cl = Workbooks.Open Filename:=F

ERREUR :

attendu : fin d'instruction


ca m'ennerve VBA
kullervo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 17h08   #8
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Bon ! Va falloir que je teste
A+

Code :
1
2
3
4
    Workbooks.Open Filename:=F
    Set cl = ActiveWorkbook
    cl.Worksheets("Feuil1").Copy _
    Before:=cl2.Sheets(1)
Chez moi, cette syntaxe fonctionne (cl2 étant l'instance du fichier receveur)
Tu dis
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 09h16   #9
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
Non ca marche tjs pas !

Je remet le code au cas ou j'ai mal recopié ce que tu ma dit :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub essai()
 
Dim F As Variant '(par défaut)
Dim cl As Workbook
With Application.FileSearch
.NewSearch
.LookIn = "C:\Documents and Settings\D820060\Bureau\aurelien\test"
.Execute
 
On Error Resume Next
 
For Each F In .FoundFiles
MsgBox (F) ' pour verification je voulais voir quels fichier il ouvrait
    Workbooks.Open Filename:=F
    Set cl = ActiveWorkbook
    cl.Worksheets("Synthese article magasin").Copy _
    Before:=cl2.Sheets(1)
 
Next F
 
End with
 
End Sub
Y a pas un problème du fait que le classeur qui recupere les feuilles ne soit pas dans meme dossier que les autres classeurs ??? edit : j'ai mis le classeur dans meme dossier que les autres mais ca change rien !


Ce qui est bizarre aussi c'est que ca ferme pas la feuille. Ca copie pas la feuille et ca ferme pas le classeur.
kullervo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 11h22   #10
Invité de passage
 
Inscription : avril 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 6
Points : 1
Points : 1
Bon et bien j'ai trouvé la solution.

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
Sub essai()
 
Dim F As Variant '(par défaut)
Dim cl As Workbook
Dim cl2 As Workbook
Set cl2 = ActiveWorkbook
 
With Application.FileSearch
.NewSearch
.LookIn = "C:\Documents and Settings\D820060\Bureau\aurelien\test"
.Execute
End With
 
On Error Resume Next
Max = cl2.Worksheets.Count
For Each F In Application.FileSearch.FoundFiles
MsgBox (F) ' pour verification voir quels fichier il ouvre
    Workbooks.Open Filename:=F
    Workbooks(F).Activate
 
    'Set cl = ActiveWorkbook
 
    Worksheets("Synthese article magasin").Copy Before:=cl2.Worksheets(1)
    'cl.Worksheets.Item(1).
Next F
 
End Sub
kullervo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h05.


 
 
 
 
Partenaires

Hébergement Web