xalee
Nouveau membre
Bonjour à tous,
Tout d'abord désolé de demander de l'aide en créant un Nième topic sur le sujet, mais là je suis réellement dans une impasse...
Je travaille sur un classeur d'inventaire faunistique qui se compose comme ceci:
- la première feuille me sert de recherche
- les autres regroupent les données à raison d'une feuille par année (Excel en Bdd ça n'est pas bien et je m'en excuse)
Toutes les feuilles (y compris "Recherche") ont la même structure:
Les données sont entrées dans le range B10:AH5000 de chaque feuille
Chaque ligne correspond à un individu et regroupe l'ensemble des éléments qui le caractérise
Chaque colonne correspond à un critère de classification (genre, espèce, taillle, mâle ou femelle, plante hôte, département....)
Je souhaite donc regrouper toutes les données de chaque feuille selon un critère précis pouvant être un mot (par exemple genre ou espèce), un chiffre (par exemple département), ou les deux (par exemple la référence CHR2010A21) sur ma feuille de recherche à partir de A10. Autrement dit regrouper par exemple toutes les data d'une même espèce.
Grand débutant en VBA, j'ai essayé des tas de programmes divers récupérés sur le net en essayant de les adapter sans succés... Dans un premier temps je pensais à un UserForme regroupant plusieurs critères mais rien à faire je nage.
Le code qui se rapproche le plus de ma recherche, je l'ai trouvé sur ce site. Par contre pour l'adapter mes neurones s'embrasent...
Bref à défaut d'avoir le programme complet, surtout que j'aimerai comprendre son fonctionnement, pourriez-vous me donner une piste?
Jusque là j'ai réussi à adapter toutes les macro dont j'ai besoin, mais celle-là me donne des suées.
Merci d'avance pour votre patience (et votre aide...)
Tout d'abord désolé de demander de l'aide en créant un Nième topic sur le sujet, mais là je suis réellement dans une impasse...
Je travaille sur un classeur d'inventaire faunistique qui se compose comme ceci:
- la première feuille me sert de recherche
- les autres regroupent les données à raison d'une feuille par année (Excel en Bdd ça n'est pas bien et je m'en excuse)
Toutes les feuilles (y compris "Recherche") ont la même structure:
Les données sont entrées dans le range B10:AH5000 de chaque feuille
Chaque ligne correspond à un individu et regroupe l'ensemble des éléments qui le caractérise
Chaque colonne correspond à un critère de classification (genre, espèce, taillle, mâle ou femelle, plante hôte, département....)
Je souhaite donc regrouper toutes les données de chaque feuille selon un critère précis pouvant être un mot (par exemple genre ou espèce), un chiffre (par exemple département), ou les deux (par exemple la référence CHR2010A21) sur ma feuille de recherche à partir de A10. Autrement dit regrouper par exemple toutes les data d'une même espèce.
Grand débutant en VBA, j'ai essayé des tas de programmes divers récupérés sur le net en essayant de les adapter sans succés... Dans un premier temps je pensais à un UserForme regroupant plusieurs critères mais rien à faire je nage.
Le code qui se rapproche le plus de ma recherche, je l'ai trouvé sur ce site. Par contre pour l'adapter mes neurones s'embrasent...
Code:
Option Explicit 'là ça va
Option Compare Text 'ça aide aussi
Sub Recherche()
Dim mot As Variant 'est-ce le bon choix?
Dim feuille As Worksheet 'Dois-je entrer toutes les feuilles ici?
Dim cellule As Range
Dim ligne As Range
Dim cible As Range
mot = Application.InputBox("élément recherché:")
Set feuille = Worksheets 'ça commence à buger dès que j'essaye de paramétrer la recherche sur plusieurs feuilles (Sheets seulement?)
Set cible = Worksheets("Recherche").Range("A10") 'à compter de A10
For Each ligne In feuille.UsedRange.Rows 'là je comprends "pour chaque ligne de la feuille (définie en début de code)"
For Each cellule In ligne.Cells 'je lis "pour chaque cellule de la ligne testée"
If InStr(cellule.Text, mot) > 0 Then' Je lis si le nombre de mot trouvé est supérieur à 0
ligne.Copy Destination:=cible '"La ligne est copié vers la cible" (définie au début du code)
Set cible = cible.Offset(1) '"une fois collée; on descend d'une ligne" peut être me goure-je
'// Pas la peine de continuer à chercher dans cette ligne
Exit For
End If
Next
Next
ActiveSheet.Next.Cells.Columns.AutoFit 'là je ne comprends pas
ActiveSheet.Next.Select 'là non plus
End Sub
Bref à défaut d'avoir le programme complet, surtout que j'aimerai comprendre son fonctionnement, pourriez-vous me donner une piste?
Jusque là j'ai réussi à adapter toutes les macro dont j'ai besoin, mais celle-là me donne des suées.
Merci d'avance pour votre patience (et votre aide...)