Recherche avec Find ... Next

W

William

Guest
Salut le ShowRoom,

Je fais appel à votre assistance, car je commence sérieusement à tourner en rond...

Je fais une recherche avec Find ... Next (vouis, c'est dans le titre...)

Et j'aimerais pouvoir connaître le numéro de la ligne, pour chaque résultat positif, dans la colonne "F".

En fait, admettons que je recherche ZAZA, cette donnée peut-être en "F4" et en "F12" également...

Comment faire pour le savoir ??

Toute aide sera bien sûre bienvenue... Je prend les liens vers d'autres fils, les explications brutes, les chèques déjeuners, les carte bleue, et même une petite pièce...

A vot' bon coeur...

Merci d'avance,

William
 
W

William

Guest
Bonjour à Tous,

Voilà ce que donne le UserForm final :



Private Sub UserForm_Initialize()
TextBox1.Value = Range("L8").Value
ListBox1.Visible = False

Workbooks("Sinistres AZUR.xls").Activate
'Il s'agit du fichier sur lequel chercher les données...

Dim WS As Worksheet
Dim Plage As Range
Dim Recherche As String
Dim Ligne As Integer
Dim Plaga As Range
Dim Cell As Range
Dim Col As String

ListBox1.Visible = True
ListBox1.Enabled = False
ListBox2.Visible = True
TextBox1.Visible = True
TextBox1.Enabled = False

Label4.Visible = True

ListBox1.Clear
ListBox2.Clear


Col = "F"
Recherche = TextBox1.Value

If Recherche = "" Then
GoTo 5
End If

For Each WS In Worksheets
If WS.Name <> "Interface" Then
Ligne = Worksheets(WS.Name).Range("" & Col & "65536").End(xlUp).Row
Set Plage = Worksheets(WS.Name).Range("" & Col & "2:" & Col & Ligne)
For Each Cell In Plage
If Cell.Value = Recherche Then
ListBox1.AddItem WS.Name
ListBox2.AddItem Cell.Address
End If
Next Cell
End If
Next WS
Exit Sub

5 MsgBox "Merci d'indiquer le numéro d'immatriculation recherché.", vbExclamation, "ATTENTION !!"
Workbooks("FICHE SINISTRE.xls").Sheets("FICHE AZUR").Activate
Range("L8").Select

Exit Sub

End Sub


Private Sub ListBox2_Click()

'L'utilisateur clique sur la ligne contenant les données qu'il désire sélectionner...

'La feuille, ainsi que la cellule concernée s'affiche

Dim i As Byte
Dim Feuille As String
Dim cellule As String
For i = 0 To 9
If ListBox2.Selected(i) = True Then
H = ListBox1.List(i)
cellule = ListBox2.List(i)
End If
Next i
Sheets(H).Activate
Range(cellule).Select
End Sub

Option Explicit
Option Compare Text



Private Sub CommandButton1_Click()
'Ce bouton permet, une fois la cellule affichée, de récupérer les données se trouvant sur la même ligne...
' H, W, X, Y et Z sont définit en Public As String...

W, X, Y et Z sont les noms des feuilles dans lesquelles la donnée recherchée est susceptible de se trouver...

If H = W Then
GoTo 10
End If

If H = X Then
GoTo 20
End If

If H = Y Then
GoTo 30
End If

If H = Z Then
GoTo 40
End If

Exit Sub

10 UserForm1.Hide
Selection.Offset(0, -5).Select
fiche = Selection.Value
Workbooks("FICHE SINISTRE.xls").Sheets("FICHE AZUR").Activate
Range("D1").Value = "SINISTRE AZUR EN COURS"
Range("M1").Value = fiche
recupAZUR
Exit Sub


'La même opération est ensuite reprise pour 20, 30 et 40 et permet de connaitre, sur le fichier destination, la feuille dans laquelle se trouvent les données récupérées.... Seule la Range("D1").Value change dans la macro...

End Sub





Un TRES TRES grand MERCI à tous ceux qui m'ont permis d'obtenir ce résultat.

And a special thank to Thierry... Still the Best !


Au fait, les foromeux, faudrait quand même un jour penser à lui clouer le bec au Thierry... Et trouver quelqu'un de plus doué... (mais bon, hum, notez quand même que je suis pas volontaire...)

Courage à tous, dans vos recherches,

William
 
W

William

Guest
Thierry,

Je viens de lire ton post de 11h 56...

Effectivement, je n'ai pas demandé d'explication de texte... Mais j'ai quand même bien galéré...

J'ai "bidouillé" ton code, et ton UserForm, pour qu'il me convienne...

Si tu est intéressé, je peux t'envoyer le fichier fini dans ta BAL.

Fais moi signe...

@+

William
 
@

@+Thierry

Guest
Re Bonjour William

Oui si tu veux bien j'y jetterai un oeil ce soir en rentrant chez moi (je ne consulte pas ma BAL perso depuis le bureau)

Vite fait en regardant, je me demande si tu as vraiment besoin d'autant de Label (10,20,30,40) mais j'ai remarqué aussi dans tes autres posts que tu aimais bien cette façon de programmer.

Disons que si j'ai bien compris tu utilises ces labels uniquement pour changer "Range("D1")"... Pourquoi ne pas faire une simple variable pour D1 en fonction de la feuille sélectionnée... (Enfin faudra que je vois le fichier en réél)

Sinon une autre petite remarque les "Option Explicit" et "Option Compare Text" doivent être impérativement placées en TOP du module.

En ce qui concerne quelqu'un de plus doué que moi, ils existent déjà dans les habitués de ce forum, sans aucun doute Ti et STéphane (pour ne pas les nommer), et probablement bien d'autres.

Bon Appétit
@+Thierry
 

Statistiques des forums

Discussions
315 135
Messages
2 116 619
Membres
112 815
dernier inscrit
Pierre43