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

Mon userform ne renvoie pas les info

  • Initiateur de la discussion Initiateur de la discussion aziz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

aziz

XLDnaute Occasionnel
Bonjour à tous,
Pour mon userform ne renvoie pas les infos demandées ?
merci pour votre aide.


Private Sub UserForm1_Initialize() 'à l'initialisation de l'UserForm
Dim x As Integer 'déclare la variable x (incréemt)
With Me.ListBox1 'prend en compte la ListBox1
.AddItem Sheets("Base client").Cells(2, 2) 'ajoute la valeur de la 3 lignes de la 3 colonnes
.Column(1, .ListCount - 1) = Sheets("Base client").Cells(2, 5)
.Column(2, .ListCount - 1) = Sheets("Base client").Cells(2, 6)
.Column(3, .ListCount - 1) = Sheets("Base client").Cells(2, 7)
.Column(4, .ListCount - 1) = Sheets("Base client").Cells(2, 8)


End With 'fin de la prise en compte de la ListBox1

'boucles sur toutes les cellules éditées de la colonne C de l'onglet "Feuil2"
For x = 2 To Sheets("Base client").Range("C65536").End(xlUp).Row

If Sheets("Base client").Cells(x, 10) <> "" And Sheets("Base client").Cells(x, 10) < 50 Then
With Me.ListBox1 'prend en compte la ListBox1
.AddItem Sheets("Base client").Cells(x, 2)
.Column(1, .ListCount - 1) = Sheets("Base client").Cells(x, 5)
.Column(2, .ListCount - 1) = Sheets("Base client").Cells(x, 6)
.Column(3, .ListCount - 1) = Sheets("Base client").Cells(x, 7)
.Column(4, .ListCount - 1) = Sheets("Base client").Cells(x, 8)


End With 'fin de la prise en compte de la ListBox1
End If
Next x 'prochaine cellule de la boucle
'alimentation de la ComboBox1
Me.ComboBox1.List = Sheets("Base client").Range("A1:A" & Sheets("Base client").Range("A65536").End(xlUp).Row).Value
End Sub
 

Pièces jointes

Re : Mon userform ne renvoie pas les info

Bonsoir aziz,

cela ne fonctionne pas
Ben oui mais bon ... qu'est-ce qui ne fonctionne pas?

Si, après avoir enlevé le '1' comme suggéré, tu obtiens un message d'erreur, c'est peut-être parce que ton code mentionne (à la fin de la Sub UserForm_Initialize), un ComboBox1 ... qui ne semble pas exister 😕

Si j'ôte le '1' et que je mets en commentaire la ligne concernant cette Combobox1, le UserForm est "garni", lorsqu'il s'affiche ...
 
Re : Mon userform ne renvoie pas les info

Bonjour Modeste et au forum,
j'ai réussi par contre est ce possible de classer du plus grand au plus petit ?
en fonction : Réunion dans combien de jours = colonne I

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim x As Integer 'déclare la variable x (incréemt)

'***************************
'alimentation de la ListBox1
'***************************
'boucles sur toutes les cellules éditées de la colonne C de l'onglet "Feuil2"
For x = 2 To Sheets("Base client").Range("C65536").End(xlUp).Row

If Sheets("Base client").Cells(x, 10) <> "" Then
With Me.ListBox1 'prend en compte la ListBox1

.AddItem Sheets("Base client").Cells(x, 1)
.Column(1, .ListCount - 1) = Sheets("Base client").Cells(x, 2)
.Column(2, .ListCount - 1) = Sheets("Base client").Cells(x, 3)
.Column(3, .ListCount - 1) = Sheets("Base client").Cells(x, 4)
.Column(4, .ListCount - 1) = Sheets("Base client").Cells(x, 5)
.Column(5, .ListCount - 1) = Sheets("Base client").Cells(x, 10)

End With 'fin de la prise en compte de la ListBox1
End If
Next x 'prochaine cellule de la boucle
'alimentation de la ComboBox1

End Sub
 

Pièces jointes

Re : Mon userform ne renvoie pas les info

bonjour aziz ,Modeste🙂

regarde du cote de QuickSort


Code:
Sub Tri(a, ColTri, gauc, droi)
   ref = a((gauc + droi) \ 2, ColTri)
   g = gauc: d = droi
   Do
    Do While a(g, ColTri) > ref: g = g + 1: Loop
    Do While ref > a(d, ColTri): d = d - 1: Loop
    If g <= d Then
     For k = LBound(a, 2) To UBound(a, 2)
     temp = a(g, k): a(g, k) = a(d, k): a(d, k) = temp
     Next k
     g = g + 1: d = d - 1
    End If
    Loop While g >= d
    If g > droi Then Call Tri(a, ColTri, g, droi)
    If gauc > d Then Call Tri(a, ColTri, gauc, d)
End Sub
 
Re : Mon userform ne renvoie pas les info

Bonjour, laetitia90
et merci beaucoup pour ton coup de main
par contre excuse moi mon ignorance, je souhaiterai comprendre ?
Tu as virer mon code et créer un nouveau ?
merci
 
Re : Mon userform ne renvoie pas les info

re tous 🙂

pour faire simple je passe par des "tablos"
plus simple & + rapide

dans la mesure ou les columns se suivent pas de 1 a 5 & 10
si tu fais que que visualiser pas de souci par contre si tu modifier , ajouter ou supprimer peut pose pb... dans la
mesure ou on met dans un certain ordre..... on peut plus utiliser listindex pour modif ect...ci dessus
en manipulant des tablos facile a construire
voila c'est tout🙂
 
Re : Mon userform ne renvoie pas les info

re tous 🙂

avec un peu explications !!

Code:
Dim t1(), t(), x As Long, k As Long, i As Long, c ' declaration variable
 Private Sub UserForm_Initialize()
   t = Feuil1.Range("a2:j" & Feuil1.Cells(Rows.Count, 1).End(3).Row)
   ' t =tableau j-utilise code name de la feuil plus simple
   x = 1 ' depart a 1
   For i = 1 To UBound(t) 'debut boucle sut tableau t
    If t(i, 9) <> "" Then 'condition
    t(i, 6) = t(i, 10) ' deplace la colonne 10 a la 6
    ReDim Preserve t1(1 To 6, 1 To x) ' redefini la mise en memoire le new tableau redim
    'la j'ai utilise preserve on pourrait sans passer .....agrandi pas la derniere dimension
   ' ci dessous envoi dans new tableau t1
    For k = 1 To 6
    t1(k, x) = t(i, k)
   Next k: x = x + 1: End If: Next i
   c = Application.Transpose(t1) 'redefini le tableau avec transpose on peut eviter d'utiliser limite a 65000ligne
   Call Tri(c, 1, LBound(c), UBound(c)) 'appel la macro tri pour mettre dans l'ordre defini le tableau c
 '  j 'ai utilise Quick sort .....autre methode de tri shell.sort ect...
   'mais Quick sort tres rapide sur beaucoup de lignes
   ListBox1.List = c 'restitution du tablo dans listbox
 End Sub


une version un peu simplifier pour eviter application transpose

Code:
Dim t1(), t(), x As Long, k As Long, i As Long
Private Sub UserForm_Initialize()
    t = Feuil1.Range("a2:j" & Feuil1.Cells(Rows.Count, 1).End(3).Row)
    Call Tri(t, 1, LBound(t), UBound(t))
     For i = 1 To UBound(t)
     If t(i, 9) <> "" Then
     x = x + 1
    t(i, 6) = t(i, 10)
    ReDim Preserve t1(1 To 6, 1 To x)
    For k = 1 To 6
    t1(k, x) = t(i, k)
    Next k: End If: Next i
    ListBox1.Column = t1
 End Sub

tu remarqueras que j-utilise pas derniere ligne du code

ListBox1.list = t1

mais ListBox1.Column = t1 evite pb ...si une seule ligne dans la box
 
Re : Mon userform ne renvoie pas les info

Merci Beaucoup pour tes explications.
par contre je souhaite classer du plus grand en haut de ma feuille et descendre vers le plus petit.
je dois inverser un signe ?
 
Re : Mon userform ne renvoie pas les info

re tous 🙂
essai comme cela il faut changer le code de tri Quick sort également je l'avais mal écrit

Code:
Dim t1(), t(), x As Long, k As Long, i As Long, c
 Private Sub UserForm_Initialize()
    t = Feuil1.Range("a2:j" & Feuil1.Cells(Rows.Count, 1).End(3).Row)
    For i = 1 To UBound(t)
    If t(i, 9) <> "" Then
     x = x + 1
    t(i, 6) = t(i, 10)
    ReDim Preserve t1(1 To 6, 1 To x)
     For k = 1 To 6
    t1(k, x) = t(i, k)
    Next k: End If: Next i
    ListBox1.Column = t1
    c = ListBox1.List
    Call Tri(c, 5, LBound(c), UBound(c))
    ListBox1.List = c
 End Sub
Sub Tri(a, ColTri, gauc, droi) ''Quick sort
  ref = a((gauc + droi) \ 2, ColTri)
  g = gauc: d = droi
  Do
  Do While a(g, ColTri) > ref: g = g + 1: Loop
  Do While ref > a(d, ColTri): d = d - 1: Loop
  If g <= d Then
   For k = LBound(a, 2) To UBound(a, 2)
   temp = a(g, k): a(g, k) = a(d, k): a(d, k) = temp
    Next k
   g = g + 1: d = d - 1
    End If
  Loop While g <= d
  If g < droi Then Call Tri(a, ColTri, g, droi)
  If gauc < d Then Call Tri(a, ColTri, gauc, d)
End Sub
Private Sub CommandButton2_Click()
 Unload Me
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
180
Réponses
10
Affichages
281
Réponses
3
Affichages
665
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
285
Réponses
10
Affichages
547
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
361
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…