Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 [Résolu par thebenoit] Problème de recherche avec les Tag's

Lone-wolf

XLDnaute Barbatruc
Bonjour à toutes et à tous

Suite à l'insertion de nouvelles colonnes, je n'arrive plus à afficher correctement les données dans le formulaire 1 suite à une recherche, malgré que dans les propriétés des contrôles les Tag sont corrects.

Par la même occasion, dans le formulaire 2, inclure dans le bouton "Modifications" une macro qui aille chercher, suite à la sélection d'une ligne dans la ListBox (Doublons), la ligne exacte après modifications dans les Textbox's.
 

Pièces jointes

  • LOCATION.zip
    453.2 KB · Affichages: 45

Lone-wolf

XLDnaute Barbatruc
Re

Voilà j'ai modifier le code de recherche du formulaire 1. J'aimerais quand même que quelqu'un vienne à mon secours concernant ma 2ème demande. Je ne sais pas comment faire pour modifier la ligne de la feuille "Factures" suite au choix de la ligne de la ListBox. Je m'explique

Je choisi le nom dans la ComboBox
Les lignes(doublons) s'affiche dans la ListBox
Je sélectionne une des lignes où les données viennent s'afficher dans les TextBox's.
J'y apporte les modifications et en cliquant sur le bouton, la ligne de la feuille se modifie en conséquence.

J'éspère que c'est plus claire.
 

thebenoit59

XLDnaute Accro
Bonjour Lone-Wolf.

Pour ta première demande :
Code:
Private Sub CmdRecherche_Click()
Dim ctrl As Control, i%, j%
Set ws = Sheets("enregistrement clients")
With ws
    'Numéro de ligne.
    i = WorksheetFunction.Match(Me.ComboBox1.Text, .Columns(4), 0)
    'On boucle les contrôles.
    For Each ctrl In Controls
        If ctrl.Tag <> "" Then
            j = Val(ctrl.Tag)
            ctrl.Value = .Cells(i, j).Value
        End If
    Next ctrl
End With
    'Adaptation des formats.
With Me
    .TextBox7.Value = Format(.TextBox7.Value, "00 00 00 00 00")
    .TextBox8.Value = Format(.TextBox8.Value, "00 00 00 00 00")
    .TextBox12.Value = Format(.TextBox12.Value, "0")
    .TextBox13.Value = Format(.TextBox13.Value, "0")
    .TextBox14.Value = Format(.TextBox14.Value, "### €")
    .TextBox15.Value = Format(.TextBox15.Value, "### €")
End With
End Sub

Pour la seconde, à ajouter dans la procédure de modifications :
Code:
Dim i%, Ligne%, Critère$, c, d As Object

'Recherche de la ligne sélectionnée.
With Me.ListBox1
    For i = 0 To .ListCount - 1
        If .Selected(i) Then
            For j = 0 To 4
                Critère = Critère & .List(i, j)
            Next j
            Exit For
        End If
    Next i
End With

If Critère = "" Then MsgBox "Aucune ligne sélectionnée": Exit Sub

Set d = CreateObject("scripting.dictionary")

With Sheets("reception factures")
    For i = 2 To .[a65000].End(xlUp).Row
        For j = 3 To 7
            d(i) = d(i) & .Cells(i, j).Value
        Next j
    Next i
End With

For Each c In d.Keys
    If d(c) = Critère Then Ligne = c: Exit For
Next c
 

Lone-wolf

XLDnaute Barbatruc
Re

Je viens de télécharger le fichier. Pour le formulaire 1, il n'y a pas de problème. Pour le 2ème, je regarderais plus tard. Il faut que je sort, devoirs familiaux.

Dans tous les cas, merci pour ton aide.

A+
 

Lone-wolf

XLDnaute Barbatruc
Bonjour thebenoit

Dans le formulaire2, comme tu as pu le voir, la listbox affiche les doubons. Pour faciliter la recherche, j'ai rajouté une textbox qui devrait afficher le numéro de la ligne (colonne A). Tu voudrait bien modifier le code pour que, quand je clique sur l'une des lignes, le numéro vienne s'afficher?

D'avance, merci pour ton aide.
 

Pièces jointes

  • Lone Wolf.xlsm
    3.5 MB · Affichages: 53

Lone-wolf

XLDnaute Barbatruc
Bonsoir à toutes et à tous

je suis toujours dans l'impasse concernant ma demande du post #2. Cerait-il possible de me donner un coup de main?

En PJ le nouveau fichier que j'ai reprogrammé. Merci d'avance.
 

Pièces jointes

  • Lone.xlsm
    3.6 MB · Affichages: 79

Lone-wolf

XLDnaute Barbatruc
Bonjour thebenoit

Genial! Tu me sauve des tourments. Merci mille fois.

En attentand que l'on réponde, j'ai essaié comme ceci

VB:
With ListBox1
Set plage = ActiveSheet.Range("a2:m" & Range("m65536").End(xlUp).Row)
For i = 0 To .ListCount - 1
If .Selected(i) Then Set rw = plage.Find(.List(i, 8), , xlValues)
TxtID = rw.Offset(i - 2, -11)
Next i
End With

Mais j'avais tout faux.
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
487
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…