Macros Excel
Fermé
lolo75
-
19 avril 2011 à 17:14
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 22 avril 2011 à 11:42
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 22 avril 2011 à 11:42
A voir également:
- Macros Excel
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
1 réponse
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 776
Modifié par Patrice33740 le 20/04/2011 à 00:37
Modifié par Patrice33740 le 20/04/2011 à 00:37
Bonjour,
Voici une macro qui répond à ton problème, il faudra l'adapter à ton besoin :
Cordialement
Patrice
Voici une macro qui répond à ton problème, il faudra l'adapter à ton besoin :
Option Explicit Sub Test() Dim wshResultat As Worksheet 'Feuille résultat Dim rngDestination As Range 'Ligne de destination des données Dim strCherche As String 'Mot cherché Dim wsh As Worksheet 'Feuille analysée Dim cel As Range 'Cellule trouvée contenant le mot cherché Dim adr As String 'Adresse de la première cellule trouvée 'Affectation de la feuille de destination Set wshResultat = ThisWorkbook.Worksheets("Feuil1") 'Affectation de la ligne de destination Set rngDestination = wshResultat.Rows(1) 'Affectation du mot cherché strCherche = "Patrice" 'Analyser chaque feuille du classeur... For Each wsh In ThisWorkbook.Worksheets '... sauf la feuille résultat If wsh.Index <> wshResultat.Index Then 'Chercher le mot Set cel = wsh.UsedRange.Find(strCherche) 'Si le mot est trouvé ... If Not cel Is Nothing Then '... relever l'emplacement (l'adresse) de la première cellule trouvée. adr = cel.Address 'Répeter les opérations suivantes ... Do ' - Copier la ligne trouvée vers la ligne de destination rngDestination.Value = cel.EntireRow.Value ' - Affecter la prochaine destination à la ligne suivante Set rngDestination = rngDestination.Offset(1) ' - Chercher le mot suivant sur la feuille Set cel = wsh.UsedRange.Find(strCherche, cel) '... tant qu'on n'est pas revenu sur le premier emplacement trouvé. Loop While adr <> cel.Address End If End If Next wsh End Sub
Cordialement
Patrice
20 avril 2011 à 10:57
La formule fonctionne jusqu'à " rngDestination.Value = cel.EntireRow.Value "
J'obtiens une eereur 1004.
As-tu une idée?
Merci beaucoup
20 avril 2011 à 15:55
20 avril 2011 à 16:22
22 avril 2011 à 11:42