Exemple, j'ai deux fichiers :
FichierSurC.xls qui est sur C:\
FichierSurD.xls qui est sur D:\
(oui je sais j'ai beaucoup d'imagination)
Avec une macro sur FichierSurC je vais ouvrir FichierSurD puis l'atteindre pour mettre à jour la cellule A1 :
En dur ca donne :
Code :
Workbooks.Open "D:\FichierSurD.xls" Workbooks("FichierSurD.xls" ).Sheets("Feuil1" ).Cells(1, 1).Value = "Alex_94"
|
Deux solutions :
1) Tu passes en parametres dans deux variables le chemin et le nom du fichier.
Code :
Sub Alex_94() 'Nos deux variables Dim CheminFichier As String, NomFichier As String 'On les alimente CheminFichier = "D:\" NomFichier = "FichierSurD.xls" 'On ouvre le fichier avec le chemin et le document Workbooks.Open CheminFichier & NomFichier 'On va sur le fichier et on change la valeur de A1 Workbooks(NomFichier).Sheets("Feuil1" ).Cells(1, 1).Value = "Alex_94" End Sub
|
2) Tu ne passes une seule variable, et a l'aide d'une petite routine on recupere le nom du fichier à l'interieur du fullpath
Code :
Sub Alex_94() 'Une seule variable qui contient chemin et fichier Dim CheminFichier As String 'On les alimente CheminFichier = "D:\FichierSurD.xls" 'On ouvre le fichier avec le chemin Workbooks.Open CheminFichier 'ici on va inverser l'ordre des caracteres de chaine pour trouver le premier "\" qui _ nous indique le début du nom du fichier 'Declaration des variables Dim InverseCheminFichier, EmplacementAntiSlash, NomFichier 'on retourne l'ordre des caracteres InverseCheminFichier = StrReverse(CheminFichier) 'on cherche le premier \ EmplacementAntiSlash = InStr(1, InverseCheminFichier, "\", vbTextCompare) 'S'il trouve un \ If EmplacementAntiSlash <> 0 Then 'on recupere le nom du fichier à l'interieur du fullpath NomFichier = Right(CheminFichier, Len(CheminFichier) - i - 3) End If 'On va sur le fichier et on change la valeur de A1 Workbooks(NomFichier).Sheets("Feuil1" ).Cells(1, 1).Value = "Alex_94" End Sub
|
Et aucun souci les deux fonctionnent bien chez moi, et partout d'ailleurs.
Message édité par SuppotDeSaTante le 20-01-2012 à 11:27:05
---------------
Soyez malin, louez entre voisins !