VBA chemin d'accés
Fermé
Karl
-
6 mai 2009 à 14:31
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 6 mai 2009 à 16:40
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 6 mai 2009 à 16:40
A voir également:
- VBA chemin d'accés
- Acces rapide - Guide
- Chaque fichier en ligne sur le web a un chemin d’accès sur un serveur. ✓ - Forum Réseau
- Comment faire pour trouver un chemin d'accès ✓ - Forum Windows
- Incompatibilité de type vba ✓ - Forum Programmation
- Accès refusé - Guide
2 réponses
Si tu connais le dossier, tu peux récupérer successivement le nom de chaque fichier par la commande Dir()
Une fois que tu as le nom, c'est gagné, non ?
Exemple (dans cet exemple je parcours tous les fichiers *.htm d'un dossier) :
Sub Toto()
' --------------------------------------------------------
' Répertoire des fichiers à modifier
Rep = "C:\Documents and Settings\x\Mes documents\Site\"
' Type des fichiers à modifier
Ext = "*.htm"
' Littéral source
Sour = "xxx"
' Littéral cible
Cibl = "zzz"
' --------------------------------------------------------
Fic = Dir(Rep + Ext)
Do While Fic <> ""
Documents.Open FileName:=(Rep + Fic), Format:=wdOpenFormatText
Selection.Find.Text = Sour
Selection.Find.Replacement.Text = Cibl
If Selection.Find.Execute = True Then
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.Save
End If
ActiveDocument.Close
Fic = Dir()
Loop
ActiveDocument.Close
End Sub
Une fois que tu as le nom, c'est gagné, non ?
Exemple (dans cet exemple je parcours tous les fichiers *.htm d'un dossier) :
Sub Toto()
' --------------------------------------------------------
' Répertoire des fichiers à modifier
Rep = "C:\Documents and Settings\x\Mes documents\Site\"
' Type des fichiers à modifier
Ext = "*.htm"
' Littéral source
Sour = "xxx"
' Littéral cible
Cibl = "zzz"
' --------------------------------------------------------
Fic = Dir(Rep + Ext)
Do While Fic <> ""
Documents.Open FileName:=(Rep + Fic), Format:=wdOpenFormatText
Selection.Find.Text = Sour
Selection.Find.Replacement.Text = Cibl
If Selection.Find.Execute = True Then
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.Save
End If
ActiveDocument.Close
Fic = Dir()
Loop
ActiveDocument.Close
End Sub
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
6 mai 2009 à 16:40
6 mai 2009 à 16:40
Bonjour,
Il existe la fonction InStr() qui permet de vérifier si une chaine est contenu dans une autre chaine. La fonction retourne un Long qui correspond à la postion de la chaine à chercher. Si la fonction retourne 0, c'est que la chaine n'a pas été trouvée.
La syntaxe est : ret = InStr([start], [chaine1],[chaine2])
start = facultatif, donne la position d'où démarre le test.
chaine1 = obligatoire, chaine a tester
chaine2 = obligatoire, chaine rechercher.
exemple:
;o)
Il existe la fonction InStr() qui permet de vérifier si une chaine est contenu dans une autre chaine. La fonction retourne un Long qui correspond à la postion de la chaine à chercher. Si la fonction retourne 0, c'est que la chaine n'a pas été trouvée.
La syntaxe est : ret = InStr([start], [chaine1],[chaine2])
start = facultatif, donne la position d'où démarre le test.
chaine1 = obligatoire, chaine a tester
chaine2 = obligatoire, chaine rechercher.
exemple:
chaine1 = "Bonjour tout le monde" chaine2 = "Bonjour" ret = InStr(1, chaine1, chaine2) If ret <> 0 Then 'Si ret est différent de 0, la chaine a été trouvé msgBox "Bonjour, également" else 'Sinon ret = 0, la chaine n'a pas été trouvée msgBox "Malpoli ..." End If
;o)
6 mai 2009 à 16:25
En plus clair je dois ouvrir un fichier excel stocké dans une dossier connu.
Le nom du fichier est de type :
argument1argument2argument3.xls
________..________..________
connu........connu......inconnu
Il faudrait donc que je n'ai pas besoin de préciser l'argument3 dans le chemin du fichier à ouvrir (l'argument 3 est la date de création du fichier, il n est pas possible que si on ne précise pas la date, le dossier contienne 2 fichiers identiques).
6 mai 2009 à 16:36