XL 2019 PB USERFORM

GDINFO

XLDnaute Junior
Supporter XLD
Bonjour
Toujours un pb avec mes userform
Lorsque que je lance mon formulaire les cases ne se remplissent pas toutes
je me suis basé sur un précédèrent pb qui a été réglé super rapidement par un personne du forum

Je cherche mais voila je dois passé a cote du probleme

merci de votre aide
 

Pièces jointes

  • ClasseurRecherche.xlsm
    23.1 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour GDINFO,
Il y a plusieurs problèmes :
1- Le premier TextBox est TextBox6 et non TextBox1 donc il faut faire : Me.Controls("TextBox" & I + 4)
2- C'est ballot mais les textbox ne sont pas dans l'ordre par ex TextBox16 est avant TextBox15
3- Le dernier indice doit être 14 pour I pour parcouror toutes les colonnes.
Donc ça donne comme modifs :
VB:
    With Sheets("Atelier Classe")
            For I = 2 To 14
                Me.Controls("TextBox" & I + 4) = .Cells(Myvar, I)
            Next
    End With
Plus remise dans l'ordre des textbox. Voir PJ.
 

Pièces jointes

  • ClasseurRecherche.xlsm
    25.9 KB · Affichages: 3

JM27

XLDnaute Barbatruc
Bonjour
et si tu mettais tes texbox dans l'ordre, cela fonctionnerait beaucoup mieux
En plus il y a des textbox qui sont à l'extérieurs de l'userform( 1 à 5):petit cachotier !
(clic de droit sur l'userform et sélectionnet tout et tu constateras qu'il il y a des objets en haut de l'userform.
J'ai remis de l'ordre .
essayes de comprendre la macro , pour ensuite modifier.
La boucle fait"tourner" les textbox de 2 à 13
Si tu met les textbox dans le mauvais ordre tu auras des données ne correspondant pas
Et les ligne de 3 à 14
d'ou le I+1
 

Pièces jointes

  • ClasseurRecherche (1).xlsm
    22.6 KB · Affichages: 6
Dernière édition:

GDINFO

XLDnaute Junior
Supporter XLD
Bonjour GDINFO,
Il y a plusieurs problèmes :
1- Le premier TextBox est TextBox6 et non TextBox1 donc il faut faire : Me.Controls("TextBox" & I + 4)
2- C'est ballot mais les textbox ne sont pas dans l'ordre par ex TextBox16 est avant TextBox15
3- Le dernier indice doit être 14 pour I pour parcouror toutes les colonnes.
Donc ça donne comme modifs :
VB:
    With Sheets("Atelier Classe")
            For I = 2 To 14
                Me.Controls("TextBox" & I + 4) = .Cells(Myvar, I)
            Next
    End With
Plus remise dans l'ordre des textbox. Voir PJ.
Merci mais faut que je commente mes lignes pour la prochaine fois
 

GDINFO

XLDnaute Junior
Supporter XLD
Merci encore je vais essayé d'adapter a mon vrai classeur, je devrais y arrivé avec l explication
Je viens d'adapter a mon classeur ca fonctionne (grace a votre Aide)
Une question si je voulais faire la recherche non pas par ID mais par le NOM

Faudrais que le supprime le textbox dans le formulaire et que je modifie ala fois la verification et le depart de recherche

Merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
la recherche non pas par ID mais par le NOM
Il suffit de dupliquer la macro et de l'adapter en conséquence :
VB:
Private Sub TextBox7_AfterUpdate()
    Dim Myvar$
    On Error Resume Next
            Myvar = ""
            Myvar = Application.WorksheetFunction _
            .Match(TextBox7, Worksheets("Atelier Classe").Range("C1:C65536"), 0)
            If Myvar = "" Then
                MsgBox "Nom inexistant."
                On Error GoTo 0
                Exit Sub
            End If
            On Error GoTo 0
    
    With Sheets("Atelier Classe")
            For I = 2 To 14
                Me.Controls("TextBox" & I + 4) = .Cells(Myvar, I)
            Next
    End With
End Sub
 

Pièces jointes

  • ClasseurRecherche V2.xlsm
    25.2 KB · Affichages: 7

GDINFO

XLDnaute Junior
Supporter XLD
Il suffit de dupliquer la macro et de l'adapter en conséquence :
VB:
Private Sub TextBox7_AfterUpdate()
    Dim Myvar$
    On Error Resume Next
            Myvar = ""
            Myvar = Application.WorksheetFunction _
            .Match(TextBox7, Worksheets("Atelier Classe").Range("C1:C65536"), 0)
            If Myvar = "" Then
                MsgBox "Nom inexistant."
                On Error GoTo 0
                Exit Sub
            End If
            On Error GoTo 0
   
    With Sheets("Atelier Classe")
            For I = 2 To 14
                Me.Controls("TextBox" & I + 4) = .Cells(Myvar, I)
            Next
    End With
End Sub
Merci je commence a comprendre le principe
MERCI a vous de votre communication de votre savoir
Vous Super !!!
 

Discussions similaires