Taches répétitives

Henriett

XLDnaute Occasionnel
Bonjour,

J' ai un petit-grand problème avec excel.
En effet, j' ai des dizaines de fichiers excel dans lesquels je dois toujours effectuer les même taches.
J' aimerais savoir s' il existe un moyen pour que quand, par exemple je sélectionne une plage de cellules (A1 B7 dans la feuil3)dans un fichier(ou classeur) ,"témoin" ou premier, eh bien dans tous les autres fichiers excel que j' aurais choisis, cet même selection se fera (A1 B7 dans la feuil3). Et si je veux copier cette même plage et la coller dans la feuil6 par exemple, eh bien chaque fichier prendra chacun sa plage de cellules(A1 B7 dans la feuil3) pour la coller dans sa propre feuil6.
Enfin bref, c' est juste pour savoir s' il existe un genre de programmation ou de quelque chose à faire dans excel pour que ça marche.

J' espère que quelqu' un me comprendra.:)

Cordialement,
 

JNP

XLDnaute Barbatruc
Re : Taches répétitives

Re :p,
Exigeante :p !
VB:
Sub RechercheMulti()
Dim Classeur As Workbook, Feuille As Worksheet, AChercher As String
Dim Cellule As Range, firstAddress As String, CompteRendu As String
AChercher = InputBox("Mot à chercher ?", "Recherche dans les classeurs ouverts")
Open "C:\temp\Résultat recherche.txt" For Output As #1
For Each Classeur In Workbooks
For Each Feuille In Classeur.Worksheets
On Error Resume Next
With Feuille.Range("A1:A500")
Set Cellule = .Find(AChercher, LookIn:=xlValues, LookAt:=xlPart)
If Not Cellule Is Nothing Then
firstAddress = Cellule.Address
Do
Print #1, Classeur.Name & " : " & Feuille.Name & " : " & Cellule.Address
Set Cellule = .FindNext(Cellule)
Loop While Not Cellule Is Nothing And Cellule.Address <> firstAddress
End If
End With
On Error GoTo 0
Next
Next
Close #1
End Sub
en vérifiant que tu a bien un dossier "temp" au premier niveau du C: (sinon, tu le crée), la macro t'enregistrera un fichier "Résultat recherche.txt" qui comprendra toutes les valeurs ;).
Bonne journée :cool:
 
Dernière édition:

Henriett

XLDnaute Occasionnel
Re : Taches répétitives

Bonsoir,

C 'est parfait. Et si je veux spécifier un seul nom de feuille (car actuellement la recherche s' ffectue dans toutes les feuilles) dans laquelle je veux effectuer ma recherche, où dois-je modifer le nom de cette feuille dans la macro ?

Cordialement,
 

JNP

XLDnaute Barbatruc
Re : Taches répétitives

Re :p,
Très très exigeante :D...
En supprimant la ligne For Each Feuille...Next
et en enlevant Feuille.Name dans le Print.
Le nom de la bonne feuille en rouge ci-dessous.
VB:
Sub RechercheMulti()
Dim Classeur As Workbook, Feuille As Worksheet, AChercher As String
Dim Cellule As Range, firstAddress As String, CompteRendu As String
AChercher = InputBox("Mot à chercher ?", "Recherche dans les classeurs ouverts")
Open "C:\temp\Résultat recherche.txt" For Output As #1
For Each Classeur In Workbooks
On Error Resume Next
With Sheets("Feuil1").Range("A1:A500")
Set Cellule = .Find(AChercher, LookIn:=xlValues, LookAt:=xlPart)
If Not Cellule Is Nothing Then
firstAddress = Cellule.Address
Do
Print #1, Classeur.Name & " : " & Cellule.Address
Set Cellule = .FindNext(Cellule)
Loop While Not Cellule Is Nothing And Cellule.Address <> firstAddress
End If
End With
On Error GoTo 0
Next
Close #1
End Sub
Bonne nuit :cool:
 
Dernière édition:

Henriett

XLDnaute Occasionnel
Re : Taches répétitives

Bonjour,

Je réouvre ce sujet car j' aimerais pouvoir effectuer une recherche d' un même mot sur plusieurs classeurs excel sans avoir à tous les ouvrir (car j' en ai une bonne centaine et que ma mémoire vive n' est que de 4 Go ).

J' ai essayé de "Call" la Macro Recherche Multi dans la MacroTraitement mais pour chaque fichier, il m' est demandé de saisir le mot que je souhaite rechercher.

Y aurait-il une modification à faire dans la MacroRecherche Multi pour que je n' ai pas à saisir le mot à rechercher pour chaque fichier ? Par exemple, nommer le chemin où se trouve tous les fichiers que je souhaite traiter.

Cordialement,
 

JNP

XLDnaute Barbatruc
Re : Taches répétitives

Bonsoir Henriett :),
Tu peux jeter par exemple un œil à ce fil qui permet de lister tous les fichiers d'un répertoire et ses sous répertoires. Il suffit (... :p) de le coupler avec une fonction Open et Close pour ouvrir tous les classeurs, les soumettre à la recherche et les refermer :D...
Essaie, et si tu n'y arrives pas, ben, reviens vers nous ;)
Bonnne nuit :cool:
 

head_tatty

XLDnaute Nouveau
Re : Taches répétitives

Bonsoir JNP,

J' ai regardé sur le fil et je dois t' avouer qu' il y a beacoup de mots que je ne connais pas...:confused:

J' ai essayé de rajouter l' emplacement de mes fichiers à la macro recherchemulti :

Sub RechercheMulti()
Dim Classeur As Workbook, Feuille As Worksheet, AChercher As String
Dim Cellule As Range, firstAddress As String, CompteRendu As String
AChercher = InputBox("Mot à chercher ?", "Recherche dans les classeurs ouverts")
Open "C:\temp\Résultat recherche.txt" For Output As #1
For Each Classeur In Workbooks
Set wbk = Workbooks.Open("C:\Users\user\Documents\Nouveau dossier\" & Fich)
For Each Feuille In Classeur.Worksheets
On Error Resume Next
With Feuille.Range("A1:A500")
Set Cellule = .Find(AChercher, LookIn:=xlValues, LookAt:=xlPart)
If Not Cellule Is Nothing Then
firstAddress = Cellule.Address
Do
Print #1, Classeur.Name & " : " & Feuille.Name & " : " & Cellule.Address
Set Cellule = .FindNext(Cellule)
Loop While Not Cellule Is Nothing And Cellule.Address <> firstAddress
End If
End With
On Error GoTo 0
Next
Next
Close #1
End Sub
mais ça ne marche pas.

Bonne nuit,
 

JNP

XLDnaute Barbatruc
Re : Taches répétitives

Re :),
J' ai essayé de rajouter l' emplacement de mes fichiers à la macro recherchemulti :
mais ça ne marche pas.
Si seulement c'était si simple :p...
En pièce jointe, un fichier modifié. Seule obligation, ne pas le mettre dans le dossier à scanner :D...
Les macros pourraient certainement être un peu simplifiées, mais bon, ça fonctionne :rolleyes:...
Bonne journée :cool:
 

Pièces jointes

  • Recherche multi New.xlsm
    24 KB · Affichages: 74

JNP

XLDnaute Barbatruc
Re : Taches répétitives

Re :),
Attention, à corriger dans Recherche ET dans ListeFichier
For Each Feuille In Classeur.Worksheets
On Error Resume Next
With Feuille.Cells.SpecialCells(xlCellTypeConstants)
Set Cellule = .Find(AChercher, LookIn:=xlValues, LookAt:=xlPart)
If Not Cellule Is Nothing Then
firstAddress = Cellule.Address
Do
Workbooks("Recherche multi New.xlsm").Sheets("Résultat recherche").Cells(I, 1) = Dossier.Name
Workbooks("Recherche multi New.xlsm").Sheets("Résultat recherche").Cells(I, 2) = Classeur.Name
Workbooks("Recherche multi New.xlsm").Sheets("Résultat recherche").Cells(I, 3) = Feuille.Name
Workbooks("Recherche multi New.xlsm").Sheets("Résultat recherche").Cells(I, 4) = Cellule.Address
Workbooks("Recherche multi New.xlsm").Sheets("Résultat recherche").Cells(I, 5) = Cellule.Text
I = I + 1
Set Cellule = .FindNext(Cellule)
Loop While Not Cellule Is Nothing And Cellule.Address <> firstAddress
End If
End With
On Error GoTo 0
Next
A supprimer
A remplacer par Sheets("Feuil1").Range("A1:B100") par exemple.
Mais ça ne veux dire que ça ne prendra que la Feuil1 de tous les classeurs et dans cette feuille que A1 à B100 :rolleyes:...
Bon courage :cool:
 
Dernière édition:

Discussions similaires

Réponses
24
Affichages
1 K

Statistiques des forums

Discussions
312 299
Messages
2 086 989
Membres
103 420
dernier inscrit
abdel665