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