Recherche dans plusieurs feuilles

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
 
R

Robert

Guest
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
 
J

J-P

Guest
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
 

Discussions similaires

Réponses
10
Affichages
289

Statistiques des forums

Discussions
312 750
Messages
2 091 653
Membres
105 014
dernier inscrit
tibo4481