Recherche dans plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion J-P
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

J-P

Guest
Bonjour, je désir savoir comment faire une recherche d'un texte sélectionné dans une ComboBox dans plusieurs feuilles et une fois la cellule trouvé, inscrire les données saisies d'autres ComboBox, TextBox... dans les autres cellules de la même ligne. Merci pour votre aide.
Sur une feuille, c'est OK, mais pour faire la recherche sur plusieurs feuilles, aidez-moi. Voilà déjà la prog pour une recherche sur une feuille:

Function recherche(colonne) As Integer

x = 7
While Feuil1.Cells(x, 1) <> UserForm1.ComboBox1.Value
x = x + 1
Wend

recherche = x

End Function
 
Bonsoir J-P, bonsoir le forum,

Je sais pas faire avec des fonction alors j'ai fait comme je sais...

La macro ci-dessous recherche la valeur de la ComboBox1 dans toutes les cellules (éditées) de la colonne A de chaque feuille. Quand elle la trouve, elle place les données du TextBox1 et du TextBox2 dans les cellules adjacentes. Tu adapteras à tes besoins...

Sub Macro1()
Dim f As Byte 'déclare la variable f
Dim cel As Range 'déclare la variable cel
Dim plage As Range 'déclare la variable plage
'boucle 1 : sur toutes les feuilles du classeur
For f = 1 To Sheets.Count
Sheets(f).Select 'sélectionne la feuille
'définit la variable plage (cellules non vides de la colonne A)
Set plage = Sheets(f).Range("A1:A" & Sheets(f).Range("A65536").End(xlUp).Row)
'boucle 2 : sur toutes les cellules de la plage
For Each cel In plage
'condition : si la cellule est égale à la ComboBox1
If cel.Value = UserForm1.ComboBox1.Value Then
cel.Select 'pas nécessaire, ça dépend si tu veux voir le résultat de suite
'place dans la première cellule à droite le contenu de TextBox1 (à adapter)
cel.Offset(0, 1).Value = UserForm1.TextBox1.Value
'place dans la deuxième cellule à droite le contenu de TextBox2 (à adapter)
cel.Offset(0, 2).Value = UserForm1.TextBox2.Value
Exit Sub 'sort de la procédure
End If 'fin de la condition
Next cel 'prochaine cellule de la plage (boucle 2)
Next f 'prochaine feuille du classeur (boucle 1)
End Sub

À plus,

Robert
 
Merci Robert, cela m'a aidé.
voilà donc ce que j'ai fait:
Sub Recherche()
Sheets("Feuil1").Select
Sheets("Feuil1").Unprotect
Columns("A:A").Select
Selection.ClearContents 'Efface le contenu de la colonne A
x = 1
q = "Feuil2"
While Feuil2.Cells(x, 1) <> "" 'Recherche dans toutes les cellules contenant du texte
If Sheets(q).Cells(x, 1) = Userform1.ComboBox1.Value Then
y = x
Sheets("Feuil1").Unprotect
Sheets("Feuil1").Cells(x, 1) = Userform1.ComboBox1.Value 'inscrit la valeur choisie
x = x + 1
Else
x = x + 1
End If
Wend
'recherche dans une autre feuille
x = 1
t = "Feuil3"
While Feuil3.Cells(x, 1) <> ""
If Sheets(t).Cells(x, 1) = Userform1.ComboBox1.Value Then
z = x
Sheets("Feuil1").Unprotect
Sheets("Feuil1").Cells(x, 1) = Userform1.ComboBox1.Value
x = x + 1
Else
x = x + 1
End If

Wend

End Sub



Salut
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
41
Affichages
907
Retour