A voir également:
- Batch sur excel pour remplacer sur plusie
- Liste déroulante excel - Guide
- Remplacer sur word - Guide
- Remplacer disque dur par ssd - Guide
- Aller à la ligne sur excel - Guide
- Formule excel - Guide
7 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
13 oct. 2011 à 12:53
13 oct. 2011 à 12:53
Bonjour,
Pour être bien précis, qu'appelles tu "libellé"?
si il ya un changement sur un libelle...
Pour être bien précis, qu'appelles tu "libellé"?
si il ya un changement sur un libelle...
bonjour
un libelle est le contenu de la case
donc chaque fichier xls comporte une seule feuille et tous ils ont la même structure. et je les regroupe dans un seule dossier
merci pour votre reponse
un libelle est le contenu de la case
donc chaque fichier xls comporte une seule feuille et tous ils ont la même structure. et je les regroupe dans un seule dossier
merci pour votre reponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
13 oct. 2011 à 13:14
13 oct. 2011 à 13:14
Toujours dans un souci de précision :
un libelle est le contenu de la case
case = cellule?
Laquelle?
Toujours la même?
N'importe laquelle?
un libelle est le contenu de la case
case = cellule?
Laquelle?
Toujours la même?
N'importe laquelle?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
13 oct. 2011 à 13:33
13 oct. 2011 à 13:33
Il se trouve ou ce libellé?????
Toujours à la même place? Même cellule?
Si oui laquelle?
Toujours à la même place? Même cellule?
Si oui laquelle?
en plus ce batch doit les chercher et remplacer dans des cellules et place # .
je vais explique mieux
j'ai 100 fichier xls comporte plusieurs donnee .maintenant je veux remplacer un nom (paris) par (londres) dans 100 xls voila au lieu d 'ouvrir les 100 feuille et corriger par (chercher puis remplacer) je veux automatiquement les corriger en une seule fois.
merci de votre collaboration
je vais explique mieux
j'ai 100 fichier xls comporte plusieurs donnee .maintenant je veux remplacer un nom (paris) par (londres) dans 100 xls voila au lieu d 'ouvrir les 100 feuille et corriger par (chercher puis remplacer) je veux automatiquement les corriger en une seule fois.
merci de votre collaboration
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
13 oct. 2011 à 14:01
13 oct. 2011 à 14:01
!!!! tous les classeurs excel dans le même répertoire !!!
Le fichier qui te permet ce que tu souhaites
Le code VBA :
Le fichier qui te permet ce que tu souhaites
Le code VBA :
Sub ModifierLibelle() 'Sources pour le choix du répertoire 'et la boucle sur ses fichiers 'http://silkyroad.developpez.com/VBA/ListView/#LII-I 'http://www.developpez.net/forums/d270516/autres-langages/general-visual-basic-6-vbscript/vbscript/vos-contributions-vbscript/faq-utiliser-boite-dialogue-selection-repertoire/ Dim oShell As Object, strFileName As Object Dim oFolder As Object Dim oFolderItem As Object Dim OldLibelle As String, NewLibelle As String, NomClasseur As String Dim Trouve As Range Application.ScreenUpdating = False NomClasseur = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) OldLibelle = Sheets(1).Range("D5").Value NewLibelle = Sheets(1).Range("D6").Value If OldLibelle = "" Or NewLibelle = "" Then MsgBox "Saisie obligatoire en D5 et D6" Exit Sub End If Set oShell = CreateObject("Shell.Application") Set oFolder = oShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&, "c:\") If oFolder Is Nothing Then MsgBox "Abandon opérateur", vbCritical, "Annulation" Else For Each strFileName In oFolder.Items If oFolder.GetDetailsOf(strFileName, 2) = "Feuille de calcul Microsoft Excel" And strFileName <> NomClasseur Then Workbooks.Open oFolder.ParentFolder.ParseName(oFolder.Title).Path & "\" & strFileName With Workbooks(strFileName & ".xls") With ActiveSheet Set Trouve = .Cells.Find(OldLibelle) If Trouve Is Nothing Then Else Trouve.Value = NewLibelle End If Set Trouve = Nothing End With .Save .Close End With End If Next End If Application.ScreenUpdating = True End Sub
merci pour la reponse hhhhhhhhhhhhhh mais je ne connais pas le vba
si si possible tu me decris les etapes
desole
si si possible tu me decris les etapes
desole
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
13 oct. 2011 à 14:22
13 oct. 2011 à 14:22
Si si possible ;-))
Code commenté :
Code commenté :
Sub ModifierLibelle() 'Sources pour le choix du répertoire 'et la boucle sur ses fichiers 'http://silkyroad.developpez.com/VBA/ListView/#LII-I 'http://www.developpez.net/forums/d270516/autres-langages/general-visual-basic-6-vbscript/vbscript/vos-contributions-vbscript/faq-utiliser-boite-dialogue-selection-repertoire/ 'déclaration des variables Dim oShell As Object, strFileName As Object Dim oFolder As Object Dim oFolderItem As Object Dim OldLibelle As String, NewLibelle As String, NomClasseur As String Dim Trouve As Range 'empêche le rafraichissement de l'écran pour gagner en rapidité Application.ScreenUpdating = False 'remplissage des variables : 'NomClasseur = comme son nom l'indique... le nom de ce classeur 'OldLibelle = comme son nom l'indique, l'ancien libellé (à remplacer) 'NewLibelle = comme son nom l'indique... le nouveau libellé NomClasseur = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) 'on a inscrit l'ancien libellé en D5 OldLibelle = Sheets(1).Range("D5").Value 'on a inscrit le nouveau libellé en D6 NewLibelle = Sheets(1).Range("D6").Value 'test si les libellés (ancien et nouveau) sont bien remplis If OldLibelle = "" Or NewLibelle = "" Then 'sinon, message à l'utilisateur MsgBox "Saisie obligatoire en D5 et D6" 'et on ne fait plus rien, on sort de la procédure Exit Sub End If 'Ici, partie technique consistant à ouvrir une fenêtre Set oShell = CreateObject("Shell.Application") 'permettant le choix du répertoire ou se situent les fichiers excel Set oFolder = oShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&, "c:\") 'en cas d'annulation par l'utilisateur If oFolder Is Nothing Then 'message d'abandon MsgBox "Abandon opérateur", vbCritical, "Annulation" Else 'boucle sur tous les fichiers du répertoire 'ne tiens pas compte de l'extension donc sur TOUS les fichiers For Each strFileName In oFolder.Items 'test si : '1- le fichier est bien un fichier Excel 'oFolder.GetDetailsOf(strFileName, 2) = "Feuille de calcul Microsoft Excel" '2- le fichier n'est pas celui qui contient la macro (le mien, ce classeur ci) 'And strFileName <> NomClasseur If oFolder.GetDetailsOf(strFileName, 2) = "Feuille de calcul Microsoft Excel" And strFileName <> NomClasseur Then 'si c'est tout bon, on ouvre le classeur Workbooks.Open oFolder.ParentFolder.ParseName(oFolder.Title).Path & "\" & strFileName 'début du bloc "dans le classeur qu'on vient d'ouvrir" With Workbooks(strFileName & ".xls") 'bloc dans la feuille active (en même temps, il n'y a qu'une feuille par classeur...) With ActiveSheet 'on cherche dans toutes les cellules l'ancien libellé Set Trouve = .Cells.Find(OldLibelle) 's'il ne s'y trouve pas on fait rien If Trouve Is Nothing Then Else 's'il s'y trouve on remplace par le nouveau libellé dans la cellule '(Trouve = cellule ou on l'a trouvé) Trouve.Value = NewLibelle End If Set Trouve = Nothing 'fin du bloc feuille End With 'on enregistre les modifs .Save 'on ferme .Close 'fin du bloc classeur End With End If Next End If 'on rétablit le rafraichissement d'écran Application.ScreenUpdating = True End Sub
bonjour j ai essaye mais ca marche pas
je vais mieux expliquer
voila j'ai 100 feuille execl sur un dossier
pour chaque feuille :
date heure chaine marque libelle (intersection g4)
francois
malak
cesar
tous les feuilles sont remplis par ces libelles qui sont differentes
ce que je veux c (est un batch qui permet de changer ''cesar"" par ""shakira""
dans tous ces 100 feuilles xls
merci pour votre entiere collaboratiob
je vais mieux expliquer
voila j'ai 100 feuille execl sur un dossier
pour chaque feuille :
date heure chaine marque libelle (intersection g4)
francois
malak
cesar
tous les feuilles sont remplis par ces libelles qui sont differentes
ce que je veux c (est un batch qui permet de changer ''cesar"" par ""shakira""
dans tous ces 100 feuilles xls
merci pour votre entiere collaboratiob
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 701
13 oct. 2011 à 18:36
13 oct. 2011 à 18:36
Bonjour,
En fin de compte vous avez combien de cellule a modifier??????
En fin de compte vous avez combien de cellule a modifier??????
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 701
13 oct. 2011 à 18:48
13 oct. 2011 à 18:48
Re,
J'ai mal pose la question.
Vous avez combien de cellule a modifier par feuille excel ???
J'ai mal pose la question.
Vous avez combien de cellule a modifier par feuille excel ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
14 oct. 2011 à 08:38
14 oct. 2011 à 08:38
Bonjour,
Je reviendrais répondre sur ce sujet lorsque celui-ci sera exposé de manière claire et définitive.
Je reviendrais répondre sur ce sujet lorsque celui-ci sera exposé de manière claire et définitive.
voila j'ai 80 fichier xls tous ont cette structure :
date-chaine-agent-heure-libelle(g4)
---------------------------------jack
---------------------------------fera
----------------------------------nadal
----------------------------------shakira
ces libelles se repete dans ces 80 xls et par suite lorsque je veux remplacer ''fera'' par ''fraca'' je dois ouvrir les 80 xls et faire la modif (rechercher-remplacer)
et c'est pénible pour moi.
donc ce que je veux c'est un macro qui permet de remplacer dans ces 80 xls en même temps les fichiers xls sont stocke dans le même dossier.
date-chaine-agent-heure-libelle(g4)
---------------------------------jack
---------------------------------fera
----------------------------------nadal
----------------------------------shakira
ces libelles se repete dans ces 80 xls et par suite lorsque je veux remplacer ''fera'' par ''fraca'' je dois ouvrir les 80 xls et faire la modif (rechercher-remplacer)
et c'est pénible pour moi.
donc ce que je veux c'est un macro qui permet de remplacer dans ces 80 xls en même temps les fichiers xls sont stocke dans le même dossier.