XL 2016 Recherche à partir du "caption" d'un "label"

Fanou31

XLDnaute Nouveau
Bonjour tout le monde,
Des semaines de recherches ne m'ont pas permis de trouver la solution au problème suivant :
Dans un premier formulaire, j'ai une listbox avec des données dont un ID.
A la sélection d'une ligne de cette listbox et au clique sur un bouton "consultation", un formulaire s'ouvre et affiche le numéro ID de la ligne sélectionnée.
A partir de cet ID (qui se trouve dans un label), je souhaite que le formulaire de consultation s'autoalimente.
Donc, sur le bouton "consultation" du premier formulaire, voici ce que j'ai saisi comme code :
VB:
Private Sub CommandButton2_Click()

If ListBox2.ListIndex = -1 Then
MsgBox "Veuillez selectionner un évènement de la liste.", vbOKOnly, attention
Exit Sub

Else: For i = 0 To (ListBox2.ListCount - 1)

consult_event.id_event = CStr(ListBox2.List(ListBox2.ListIndex, 7))
Next i
End If
consult_event.Show

End Sub

A l'initialisation du second formulaire (consult_event), voici le code que j'ai inséré :
Code:
Private Sub UserForm_Initialize()
Dim derlig As Long


Sheets("bd2").Select
rech = Me.id_event.Caption

derlig = Sheets("bd2").range("Q" & Cells.Rows.Count).End(xlUp).Row

For l = 2 To derlig
If rech = Sheets("bd2").Cells(l, 17).value Then
Me.etab.Caption = Sheets("bd2").Cells(l, 2).value
Me.cp.Caption = Sheets("bd2").Cells(l, 4)
Me.ville_etab.Caption = Sheets("bd2").Cells(l, 3).value


End If
Next l

End Sub

Autant le formulaire "consult_event" s'ouvre bien avec le numéro d'ID, autant la recherche de la ligne à partir de ce même ID ne fonctionne pas. Le formulaire reste désespérément vide.

J'espère que j'ai été clair et veuillez m'excuser de ne pas pouvoir adresser un copie du projet.

Bien cordialement.
 
Solution
Re,

Les questions de confidentialité sont aussi bidons que le discours d'un homme politique !... Il est extrêmement facile et rapide d'anonymiser un fichier Excel. L'essentiel pour nous c'est qu'il ait la même structure que le fichier original. Mais, après tout, c'est ton problème, pas le notre...

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Fanou, bonjour le forum,

La propriété Caption d'une Label renvoie une donnée de type String. Si tu as des données numériques dans la colonne 17 il faudra convertir en texte pour que l'égalité se fasse... Ton code modifié :

VB:
Private Sub UserForm_Initialize()
Dim Rech As String
Dim O As Worksheet
Dim DerLig As Long
Dim L As Long

Rech = Me.id_event.Caption
Set O = Worksheets("bd2")
DerLig = O.Range("Q" & Cells.Rows.Count).End(xlUp).Row
For L = 2 To DerLig
    If CStr(O.Cells(L, 17).Value) = Rech Then
        Me.etab.Caption = O.Cells(L, 2).Value
        Me.cp.Caption = O.Cells(L, 4)
        Me.ville_etab.Caption = O.Cells(L, 3).Value
    End If
Next L
End Sub
 

fanfan38

XLDnaute Barbatruc
Bonjour
Un fichier est TOUJOURS le bienvenu...
Pourquoi faire une boucle?
consult_event étant l'userform
id_event étant le label
VB:
consult_event.id_event.caption=listbox2.listindex+2
(ou plus en fonction de votre fichier)
donne la ligne...
Pour le reste est ce que listbox2 est pris sur la feuille bd2?
A+ François
Salut Robert...
 

Fanou31

XLDnaute Nouveau
Bonjour Robert,
Je suis scotché d'une telle rapidité. J'ai suivi tes indications :
- formatage des cellules de la colonne Q (17) en format texte
- modification des lignes de code.
Malheureusement, le résultat reste le même. J'ai saisi la logique mais je ne comprends toujours pas où ça peche.
Dans tous les cas, un grand merci de t'être penché sur mon cas.

Bien cordialement;
 

Fanou31

XLDnaute Nouveau
Bonjour
Un fichier est TOUJOURS le bienvenu...
Pourquoi faire une boucle?
consult_event étant l'userform
id_event étant le label
VB:
consult_event.id_event.caption=listbox2.listindex+2
(ou plus en fonction de votre fichier)
donne la ligne...
Pour le reste est ce que listbox2 est pris sur la feuille bd2?
A+ François
Salut Robert...
Bonjour Fanfan38,

Merci pour votre réponse.
Je préfère travailler avec un boucle tout simplement parce que la listbox n'affiche pas toutes les données. D'où mon souhait d'ouvrir un formulaire de consultation qui va chercher l'ID dans la BD2 et les affiche en intégralité.
Le listbox2 contient en effet une partie de la feuille BD2.
Je vous remercie pour votre réponse et votre aide.

Bien cordialement.
 

Fanou31

XLDnaute Nouveau
Bonjour le fil, bonjour le forum,

D'accord avec Fanfan, sans fichier !?...
Sinon es-tu bien sûre que les données sont la la colonne Q (=17) ?
Re bonjour Robert,

Je viens de vérifier à nouveau et l'ID recherché se trouve bien à la colonne Q (soit 17) de la feuille "bd2".
Je comprends que sans fichier il y a peu de possibilités, mais je ne peu pas l'envoyer, pour des raisons de confidentialité. Je continue mes recherches sur internet.
Je vous remercie quand même pour vos observations à Fanfan et toi.
Cordialement.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re,

Les questions de confidentialité sont aussi bidons que le discours d'un homme politique !... Il est extrêmement facile et rapide d'anonymiser un fichier Excel. L'essentiel pour nous c'est qu'il ait la même structure que le fichier original. Mais, après tout, c'est ton problème, pas le notre...
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, Fanou31, Fanfan38, Robert

Il est très simple (je suis d'accord avec Robert) de créer ex nihilo un classeur exemple "RGPD compliant" (grâce au fonctionnalités qu'offrent Excel)
Par exemple ce petit bout de code fait cela
VB:
Sub RGPD_for_Ever()
Randomize 1600
On Error Resume Next
With Application
Sheets.Add(after:=Sheets(Sheets.Count)).Name = "Ex_" & .Rept(Chr(.RandBetween(65, 90)), 2) & .RandBetween(1, 127)
End With
With Sheets(Sheets.Count)
.Range("A1:F1") = "=""ITEM_""&COLUMN()"
.Range("A2:F33").FormulaR1C1 = "=ADDRESS(ROW(),COLUMN(),4)"
.UsedRange = .UsedRange.Value
End With
End Sub
(Tu trouveras également sur le forum des codes VBA et/ou des classeurs qui font cela trés bien)
;)

[WTF :eek:]
Je vais donc me tourner vers un développeur de confiance.
[/WTF :eek:]

PS: C'est bien connu que ce forum n'est fréquenté que par des gens indignes de toute confiance, des malotrus de la pire espèce, il y a même surement des communistes ou des Raeliens !!!
Si j'étais moi, je me méfierai...
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 885
Membres
101 830
dernier inscrit
sonia poulaert