automatiser une ouverture, une copie et une fermeture de fichiers excel??

yannick63430

XLDnaute Junior
bonsoir à tout le monde,

j'ai besoin d'aide pour créer une macro bien spécifique.
je voudrais donc pouvoir réaliser la procédure suivante :

ouvrir depuis un dossier spécifique du type : C:\Dossier\
le fichier excel du nom contenu dans la cellule C1
créer une copie de l'onglet et insérer cet onglet en dernier
fermer ce fichier excel
et répéter cette opération tant que la colonne C contient des noms
et enfin de même pour la colonne F

dans le but final d'avoir tous mes fichiers excel dans un même fichier

merci d'avance

cordialement
yannick
 

Pièces jointes

  • Classeur2.zip
    16.2 KB · Affichages: 42
  • Classeur2.zip
    16.2 KB · Affichages: 47
  • Classeur2.zip
    16.2 KB · Affichages: 46
Dernière édition:

kjin

XLDnaute Barbatruc
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Bonsoir,
Code:
Sub Copie()
Transfert 3
Transfert 6
End Sub

Sub Transfert(col As Integer)
Set feuille = ActiveSheet
Set r = feuille.Range(Cells(1, col), Cells(65000, col).End(xlUp))
Application.ScreenUpdating = False
For Each c In r
    fichier = "E:\Kk\Temp\" & c.Value & ".xls" 'xls?, xlsm?, xlsx?
    If Dir(fichier) <> "" Then
        Workbooks.Open fichier
        With ActiveWorkbook
            feuille.Copy After:=.Sheets(Sheets.Count)
            .Close True
        End With
    End If
Next
Application.ScreenUpdating = True
End Sub
A+
kjin
 
Dernière édition:

yannick63430

XLDnaute Junior
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

bonjour,

merci tout d'abord pour ton aide. Par contre j'ai recopié ta macro et je l'ai lancé et rien ne se passe.
Je n'ai modifié que le chemin d'accès, enfin je pense :
fichier = "G:\COMBINAISON\Balance 2009 Services" & c.Value & ".xls" 'xls?, xlsm?, xlsx?


A+
yannick
 

Staple1600

XLDnaute Barbatruc
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Bonjour

Essaie avec cet ajout (en rouge)

Code:
fichier = "G:\COMBINAISON\Balance 2009 Services[COLOR=Red]\[/COLOR]" & c.Value &  ".xls" 'xls?, xlsm?, xlsx?

edition
: bonsoir sieur Kjin ;)
(un question en passant: Es-tu pro RegExp par hasard ? )
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Bonsoir, salut Signor Staple :),
Outre la modif obligatoire proposée par Staple, j'ai mis en commentaire
Code:
'xls?, xlsm?, xlsx?
car tu ne précises aucunement le type de fichier à rechercher.
Comme je suis sous excel 2000, j'ai mis "xls", donc à toi d'adapter
A+
kjin
 

yannick63430

XLDnaute Junior
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

bonjour,

j'ai appliqué vos conseils et mes fichiers sont bien en .xls.
cependant lorsque j'active ma macro, toujours rien. Je ne comprends pas trop pourquoi!!
je mets en PJ un dossier complet par contre je n'ai pas mis à jour le chemin d'accès dans la macro.
en espérant que vous pourrez m'aider.
Merci d'avance

Cordialement
Yannick
 

Pièces jointes

  • test.zip
    32.2 KB · Affichages: 34
  • test.zip
    32.2 KB · Affichages: 34
  • test.zip
    32.2 KB · Affichages: 31

kjin

XLDnaute Barbatruc
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Bonsoir,
Faut juste faire attention quand on modifie le code
Code:
fichier = "G:\COMBINAISON\Balance 2009 Services\" & c.Value &  ".xls[B][COLOR="Red"]"[/COLOR][/B]
A+
kjin
 

pierrejean

XLDnaute Barbatruc
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Bonjour yannick

Teste ceci

Code:
Sub Transfert(col As Integer)
Set wk = ActiveWorkbook
Set feuille = ActiveSheet
Set r = feuille.Range(Cells(2, col), Cells(65000, col).End(xlUp))
Application.ScreenUpdating = False
For Each c In r
fichier = "C:\Documents and Settings\YBEL.AGIRIS\Bureau\cabinet\diocese\COMBINAISON finale\Balance 2009 Services\" & c.Value & ".xls 'xls?, xlsm?, xlsx?"
If Dir(fichier) <> "" Then
Workbooks.Open fichier
With ActiveWorkbook
.Sheets(1).Copy After:=wk.Sheets(Sheets.Count - 1)
.Close True
End With
End If
Next
Application.ScreenUpdating = True
End Sub

Ps: ligne fichier= ..... non controlée
 

yannick63430

XLDnaute Junior
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Bonsoir à vous,

merci pour votre aide, la macro ouvre bien le premier fichier mais elle bloque au niveau de la copie-déplacer onglet.
j'ai essayé les 2 macros sans résultats
Sachant que l'onglet à déplacer, dans le fichier final, se nomme de la même façon que le nom du fichier, peut-on créer une variable i qui prenne à chaque fois la valeur (le nom) du fichier ouvert, c'est à dire ici la cellule C1, puis C2... jusqu'à Fxxx.
Ainsi il serait peut-être plus facile de le sélectionner et de le déplacer, je pense du style :
Sheets("i").Select
Sheets("i").Copy After:=Workbooks("Classeur2.xlsm").Sheets(?????)

je pense que la solution n'est pas loin quoi que je débutes en vba!!!

merci d'avance

Cordialement
yannick
 

kjin

XLDnaute Barbatruc
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Re,
As tu bien rectifié l'erreur que tu as au niveau du guillemet dans cette ligne
Code:
fichier = "C:\Documents and Settings\YBEL.AGIRIS\Bureau\cabinet\diocese\COMBINAISON finale\Balance 2009 Services\" & c.Value & [B][SIZE="4"]"[/SIZE][/B].xls[COLOR="Red"][B][SIZE="4"]"[/SIZE][/B][/COLOR]
j'avais mis -- 'xls?, xlsm?, xlsx? -- ,mais tu as déplacé le guillemet alors que c'était un commentaire et donc ne fait pas partie de code à executer
A+
kjin
 

yannick63430

XLDnaute Junior
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Re,
oui cela m'a permis d'ouvrir le premier fichier
la macro bloque seulement pour le copier-déplacer mais en fait je pense que le problème vient d'ailleurs.
peut-être un problème de conversion entre le 2007 et le 2003 ("impossible de déplacer, le fichier ne contient pas le même nombre de colonnes et lignes...).
je regarde ce que je peux faire et je te tiens au courant.

merci

A+
yannick
 

yannick63430

XLDnaute Junior
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Re,

en fait ça marche avec le petit changement de pierrejean au niveau de :
.Sheets(1).Copy After:=wk.Sheets(Sheets.Count - 1).
je vais maintenant l'adapter à mon projet en totalité.

merci à tous pour votre aide, ça va me simplifier la vie

cordialement

yannick
 

kjin

XLDnaute Barbatruc
Re : automatiser une ouverture, une copie et une fermeture de fichiers excel??

Re,
Je n'avais rien compris alors, bravo pierrejean, avec...
ouvrir depuis un dossier spécifique du type : C:\Dossier\
le fichier excel du nom contenu dans la cellule C1
créer une copie de l'onglet et insérer cet onglet en dernier
...ton décodeur fonctionne mieux que le mien
A+
kjin
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87