Macro VBA utilisant le nom du fichier excel

Fermé
M4L3K1T - 2 juil. 2009 à 15:56
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 2 juil. 2009 à 16:27
Bonjour,
C'est une des premières fois que j'utilise les macros dans Excel et jusqu'à présent je trouver toutes les réponses à mes questions sur ce forum. A mon tour maintenant de poster un message.

Voilà, j'ai un fichier excel par entreprise. Le nom du fichier est donc en deux parties "grille d'entretien" puis le nom de l'entreprise. J'ai crée une macro sur le fichier "grille d'entretien.xls" pour copier certaines informations vers un autre tableau. Ainsi je pourrait regrouper tous mes fichiers excel dans un seul et traiter les informations ensembles.
Cela donne cela :

Range("C3").Select
Selection.Copy
Windows("Compilation.xls").Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows("Grille entretien.xls").Activate
Range("C5:C29").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Compilation.xls").Activate
Range("C4").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("C3:C28").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight
End Sub

Je viens de réaliser que lorsque que je remplirais ma grille d'entretien et que je la nommerais "grille entretien X.xls" pour la reconnaitre alors ma macro ne fonctionnera plus.

Comment puis-je revenir vers mon fichier "grille entretien" pour ma deuxième copie sachant que le nom du fichier sera variable.

Comme ça doit se voir, j'ai utiliser l'enregistreur de macro d'excel et je n'ai pas écrit ces lignes moi même. Il y a donc peut être un moyen d'éviter les " Windows("Compilation.xls").Activate ".

Merci par avance de votre aide
A voir également:

1 réponse

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
2 juil. 2009 à 16:27
Bonjour,

Si j'ai bien compris, cette macro se trouve dans le classeur "Grille entretien.xls" et va copier des données du classeur "Grille entretien.xls" vers le classeur "Compilation.xls". Ensuite le fichier "Grille entretien.xls" est enregistré avec un nouveau nom ("Grille entretien X.xls"). Dans le nouveau fichier "Grille entretien X.xls" la macro ne fonctionnera pas. Pour qu'elle fonctionne il faut remplacer dans la macro ci-dessus tous les : "Windows("Grille entretien.xls").Activate " par "ThisWorkbook.Activate".

ThisWorkbook désigne le classeur qui contient la macro.

;o)
0