Transfert des données de la feuille vers le userform

Bonjour à tous,

Pourriez vous m'aider pour que me informations se trouvant sur la feuille se retrouvent dans l'UserForm?

Merci par avance,

Mon fichier:

https://www.cjoint.com/c/EIBjlmgm2fi

Bonjour

il y déjà bcp de morceaux de codes qui ne me semble pas etre opérationnel pour ton userform....

déjà dans un premier temps, pour pouvoir travailler correctement il faudrait renommer tes listebox, combobox, label, .... comme il faut

par exemple box1, box2 et ainsi de suite pour que cela corresponde a l'ordre de tes colonnes.

par exemple

combobox1 renommé en box1 (car 1e colonne)

textbox2 renommé en box5 (car 5e colonne de ton tableau BDD

renommer tes boutons commandbutton1,.... en bouton_modifier bouton_imprimer,.....

cela simplifierais au niveau des sub car on saurait sur quoi on travail.

et pour finir je te conseil d'aller voir ce post

https://forum.excel-pratique.com/excel/en-panne-de-solutions-pour-formulaire-vba-userform-t54253-10.html?hilit=userform

pour lequel j'ai fait quelque chose de similaire nouveau /supprimer/mettre a jour une personne

Bon dimanche

Fred

Bonjour Fred2406,

Je viens de suivre tes conseils, j'ai renommé les TextBox, ComBobox.... en Box1, 2.....

Par contre toujours impossible de trouver une solution pour récupérer les infos de ma feuille sur mon userForm.

Pourriez-vous m'aider?

https://www.cjoint.com/c/EIBpiaLlZHi

Bonjour Jean-Marie

Il y avait longtemps.... je n'arrive pas à ouvrir ton fichier....Peux-tu nous le fournir sous forme fichier compressé => .Zip

Merci

A te relire

Bonjour et1000lio,

effectivement cela fait longtemps... (d'autres occupations)

Voila je te re transmets mon fichier au format ZIP.

https://www.cjoint.com/c/EIBrWJhm2Li

Merci beauoup

bonsoir

une proposition

Fred

Edit le bon fichier c'est mieux

https://www.cjoint.com/c/EIBsWzpF3vl

Bonsoir Fred2406,

Super ta proposition, juste encore...

  • Peux ton supprimer les doublons dans la ComboBox1 où Box1
  • Peux tu m'expliquer ton travail?

Merci

Re alors 3 choses

initilise la liste Box 1 sans doublons a présent en utilisant une colonne intermédiare ZZ

Sub init_listing_recherche()
Ws.Range("A:A").Copy Ws.[ZZ1]
Ws.Range("ZZ:ZZ").RemoveDuplicates Columns:=Array(1), Header:=xlYes
If Ws.Range("ZZ65536").End(xlUp).Row = 2 Then
Me.Box1.AddItem Ws.[ZZ2]
Else
Me.Box1.List = Range("ZZ2:ZZ" & Ws.Range("ZZ65536").End(xlUp).Row).Value
End If
Ws.[ZZ:ZZ].Delete
End Sub

lors d'un changement sur le box1

Private Sub Box1_Change()
Dim j As Long
Dim i As Byte
  'init toutes les autres box avec rien
  For i = 2 To 31
Controls("Box" & i) = ""
Next
  If Me.Box1.ListIndex = -1 Then Exit Sub
'efface la liste des item dans la liste des prenoms (Ajout de maintenant )
Do While Box2.ListCount > 0
    Box2.RemoveItem (0)
Loop
'creation de la liste deroulante des prenoms
  With Me.Box2
    For j = Me.Box1.ListIndex + 2 To NbLignes
      If Ws.Range("A" & j) = Me.Box1 Then
        .AddItem Ws.Range("B" & j)
        .List(.ListCount - 1, 1) = j
      End If
    Next j
  End With
End Sub

lors sur changement d'un prenom

Private Sub Box2_Change()
Dim Ligne As Long
Dim i As Integer

  'Nettoyage 'Lance le programme Nettoyage
  If Me.Box2.ListIndex = -1 Then Exit Sub
'recupere la ligne ou se trouve la personne ligne tu nom + un declage de ligne de prenom eventuel + 2 car la BDD commence a la ligne 2
  Ligne = Me.Box1.ListIndex + Me.Box2.ListIndex + 2
'remplissage des autres box  
For i = 3 To 31
    Me.Controls("box" & i) = Ws.Cells(Ligne, i)
  Next i

End Sub

derniere chose que j'ai été obliger de changer dans ton code :

dans pricate box6 change :

If Box6 = "" Then Exit Sub

If CLng(Box6) * 1 > 1000 Then

Attention ne marchera que si la ta base de donnée est triée par ordre alphabétique au niveau des noms puisque suppression des les noms en doublons....

Edit nouvelle version du fichier

https://www.cjoint.com/c/EIBtGXZzyQl

fred

Merci Fred2406,

Je regarde dès demain (Pas de VBA sur tablette)

Je suppose dons qu'il existe un code pour faire le tri par ordre croissant?


Merci Fred2406,

Je regarde dès demain (Pas de VBA sur tablette)

Je suppose donc qu'il existe un code pour faire le tri par ordre croissant?

Bonjour pour le tri par ordre croissant des noms :

ajoute cette ligne :

Ws.Range("A1:AE" & Ws.[A65536].End(xlUp).Row).Sort Key1:=Ws.[A1], Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

au debut de la sub

Sub init_listing_recherche()

fred

Bonjour Fred2406, bonjour à tous,

Merci pour tes informations cela fonctionne parfaitement. voilà un sujet résolu grâce à toi.

dans ce cas

Merci

Fred

fred2406 a écrit :

Bonjour pour le tri par ordre croissant des noms :

ajoute cette ligne :

Ws.Range("A1:AE" & Ws.[A65536].End(xlUp).Row).Sort Key1:=Ws.[A1], Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

au debut de la sub

Sub init_listing_recherche()

fred

Il semblerai qu'il y ai un petit soucis. Lorsque je rentre de nouvelles informations seules les noms et prénom sont enregistrés.

Losque tu demande de rentrer au début de la sub..

Sub init_listing_recherche()

de quelle sub s'agit-il? mon erreur viens peut être de là

Pardon Fred,

Je ne sais pas pourquoi mais maintenant tout fonctionne correctement, à nouveau un grand

Rechercher des sujets similaires à "transfert donnees feuille userform"