Combobox tri
Résolu/Fermé
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
-
30 mars 2009 à 16:16
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 - 26 mai 2009 à 16:32
tchulio Messages postés 161 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 9 juillet 2019 - 26 mai 2009 à 16:32
A voir également:
- Combobox tri
- Tri automatique excel ✓ - Forum Excel
- Tri a bulle en c - Forum C
- Combobox vba ✓ - Forum VB / VBA
- Tri automatique excel sans macro - Forum Excel
- Tri excel - Guide
43 réponses
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
6 avril 2009 à 14:36
6 avril 2009 à 14:36
après contrôle, ta ligne...
LigInt = 1 + Me.ListBox1.ListIndex + 1
n'es pas juste, si tu sélectionne le 4 affiche le 3 !!!!
faut ajouter 2 à la modif
LigInt = ListBox1.list(ListBox1.ListIndex ,0) + 1
LigInt = 1 + Me.ListBox1.ListIndex + 1
n'es pas juste, si tu sélectionne le 4 affiche le 3 !!!!
faut ajouter 2 à la modif
LigInt = ListBox1.list(ListBox1.ListIndex ,0) + 1
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
6 avril 2009 à 15:54
6 avril 2009 à 15:54
Bon écoute, j’ai tout analysé… Tout est nickel… Encore merci a toi pour aide précieuse !!
Bonne fin de journée-
Bonne fin de journée-
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
6 avril 2009 à 16:27
6 avril 2009 à 16:27
J'ai encore fait quelque simplfications dans ton UF Création... pas tester vu qu'il n'y a pas la feuille formulaire.
Je n'ai modifié que 2 sub pour l'exemple.
Tu peu t'en inspirer pour les autres.
https://www.cjoint.com/?eiqArC06gv
A+
Je n'ai modifié que 2 sub pour l'exemple.
Tu peu t'en inspirer pour les autres.
https://www.cjoint.com/?eiqArC06gv
A+
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
4 mai 2009 à 16:57
4 mai 2009 à 16:57
Salut excuse moi de t'ennuyer après tant de temps!
Ta macro fonctionne parfaitement. J'aurais juste une petite question.
Lorsque je clique sur un ligne de la listbox, pas de soucis tout fonctionne, mais lorsque je clique où il n'y a rien sur la listbox, là ça plante.
Il n'y aurait pas possibilité de mettre un code pour que lorsque l'on double clique, ça ne bug pas ?
Encore merci pour tout.
Ta macro fonctionne parfaitement. J'aurais juste une petite question.
Lorsque je clique sur un ligne de la listbox, pas de soucis tout fonctionne, mais lorsque je clique où il n'y a rien sur la listbox, là ça plante.
Il n'y aurait pas possibilité de mettre un code pour que lorsque l'on double clique, ça ne bug pas ?
Encore merci pour tout.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
5 mai 2009 à 13:26
5 mai 2009 à 13:26
Désolé mais les classeurs ne sont plus dispo sur Cjoint, tu peu remettre ?
A+
A+
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
7 mai 2009 à 16:52
7 mai 2009 à 16:52
Ok pas de souci, le voici:
http://www.cijoint.fr/cjlink.php?file=cj200905/cijTMrYZ6N.xls
Merci a toi!
http://www.cijoint.fr/cjlink.php?file=cj200905/cijTMrYZ6N.xls
Merci a toi!
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
8 mai 2009 à 11:27
8 mai 2009 à 11:27
Re,
Comprend pas, que l'ont clic ou double clic sur la partie vide ça donne les valeurs de la dernière ligne de la listBox ?
Ou alors explique plus en détails.
A+
Comprend pas, que l'ont clic ou double clic sur la partie vide ça donne les valeurs de la dernière ligne de la listBox ?
Ou alors explique plus en détails.
A+
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
9 mai 2009 à 16:21
9 mai 2009 à 16:21
non en fait quand on clique sur la partie vide (blanche) en dessous des données la macro plante .
Je ne sait pas si tu vois ce que je veux dire?
Par exemple mets un filtre, et tu verra que si tu clique a peine plus bas que sur la ligne de donnée ça plante. rien de bien méchant a mon avis.
Sinon juste une autre question, est ce quelqu'un peut me dire si c'est possible que dans une textbox, lorsque j'appuie sur la touche "entrer" de mon clavier; le curseur se mette a la ligne (avec multiline=yes) comme dans word quoi... merci a vous
Je ne sait pas si tu vois ce que je veux dire?
Par exemple mets un filtre, et tu verra que si tu clique a peine plus bas que sur la ligne de donnée ça plante. rien de bien méchant a mon avis.
Sinon juste une autre question, est ce quelqu'un peut me dire si c'est possible que dans une textbox, lorsque j'appuie sur la touche "entrer" de mon clavier; le curseur se mette a la ligne (avec multiline=yes) comme dans word quoi... merci a vous
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
9 mai 2009 à 17:09
9 mai 2009 à 17:09
Explique EXACTEMENT quel UF et les manip que tu fait pour que ça plante parce que je ne parvient pas à le faire planter.
2°)
A+
2°)
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
TextBox1.Text = TextBox1.Text & Chr(13)
End If
End Sub
A+
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
11 mai 2009 à 10:54
11 mai 2009 à 10:54
OK ,
Alors regarde sur le lien ci-joint, tout y est expliqué.
Merci
http://www.cijoint.fr/cjlink.php?file=cj200905/cijIEEV3Dm.bmp
Alors regarde sur le lien ci-joint, tout y est expliqué.
Merci
http://www.cijoint.fr/cjlink.php?file=cj200905/cijIEEV3Dm.bmp
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
11 mai 2009 à 12:44
11 mai 2009 à 12:44
Pas étonnant que ça plante, tu a ajouter du code, et tu l'a mis à l'envers.
TU FERME LE UF et ENSUITE tu essaye de lire la listbox ???????? GGGrrrrrrr
Inverse les 2 lignes.
A+
TU FERME LE UF et ENSUITE tu essaye de lire la listbox ???????? GGGrrrrrrr
Inverse les 2 lignes.
A+
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
11 mai 2009 à 15:03
11 mai 2009 à 15:03
Comment tu dis inverser les 2 lignes, comme cela?
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
LigInt = ListBox1.List(ListBox1.ListIndex, 0) + 1
UsF_Modification.Hide
UsF_Creation.Show
End Sub
Car ça plante aussi comme cela...
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
LigInt = ListBox1.List(ListBox1.ListIndex, 0) + 1
UsF_Modification.Hide
UsF_Creation.Show
End Sub
Car ça plante aussi comme cela...
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
11 mai 2009 à 15:04
11 mai 2009 à 15:04
Pour voir si ça plante, tu cliques sur le bouton initialiser puis là tu essaies sur la zone blanche, là on voit que ça plante... Tu vois ce que je veux dire ?
Merci a+
Merci a+
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
11 mai 2009 à 17:34
11 mai 2009 à 17:34
Ok je pense que j'ai compris, mais quand tu donne des explications il faut tout dire, a savoir..
QUAND IL N'Y A PAS DE SELECTION CA PLANTE...
et au double click, tu change le code.. maintenant tu met Hide et sur le classeur c'est Unload !!!!!
doit être
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Masquer le formulaire Modification
LigInt = ListBox1.List(ListBox1.ListIndex, 0) + 1
'UsF_Modification.Hide
Unload Me
UsF_Creation.Show
End Sub
A+
QUAND IL N'Y A PAS DE SELECTION CA PLANTE...
Private Sub ListBox1_Click() 'au clic dans la ListBox
If ListBox1.ListIndex < 0 Then Exit Sub
For Y = 1 To 9
Me.Controls("TextBox" & Y).Value = ListBox1.List(ListBox1.ListIndex, Y - 1)
Next Y
TextBox1.SetFocus
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox1.Value)
End Sub
et au double click, tu change le code.. maintenant tu met Hide et sur le classeur c'est Unload !!!!!
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Masquer le formulaire Modification
'UsF_Modification.Hide
Unload Me
LigInt = ListBox1.List(ListBox1.ListIndex, 0) + 1
UsF_Creation.Show
End Sub
doit être
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' Masquer le formulaire Modification
LigInt = ListBox1.List(ListBox1.ListIndex, 0) + 1
'UsF_Modification.Hide
Unload Me
UsF_Creation.Show
End Sub
A+
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
13 mai 2009 à 07:44
13 mai 2009 à 07:44
Salut !
effectivement en mettant ceci : If ListBox1.ListIndex < 0 Then Exit Sub
ça fonctionne parfaitement, désolé de ne pas avoir expliqué comme il le fallait depuis le début...
A mon avis il ne devrait plus y avoir beaucoup de problèmes , si ce n'est celui qui vient de m'arriver ce matin:
En fait dans la listbox, tant que les N° dans la colonne tout à gauche ( comme dans le fichier que sur ci -joint) sont consécutifs, 1 - 2 - 3 -4 , .... lorsque je double clic sur une ligne, pas de soucis, les valeurs se chargent comme il se doit dans le Usf_Création, par contre, j'utilise réelement ce programme depuis ce matin, et mes numéros ne sont pas consécutifs, ça commence à 96 - 99 - 101 - 105 ,... et là, lorsque je double clic sur un ligne, le Usf_Création se chargent mes sans les valeurs....
Il doit y avoir un petit paramètre à changer, mais je n'arrive pas à trouver d'où ça vient.....
Un grand merci si tu arrives à me donner ce dernier coup de main.......
effectivement en mettant ceci : If ListBox1.ListIndex < 0 Then Exit Sub
ça fonctionne parfaitement, désolé de ne pas avoir expliqué comme il le fallait depuis le début...
A mon avis il ne devrait plus y avoir beaucoup de problèmes , si ce n'est celui qui vient de m'arriver ce matin:
En fait dans la listbox, tant que les N° dans la colonne tout à gauche ( comme dans le fichier que sur ci -joint) sont consécutifs, 1 - 2 - 3 -4 , .... lorsque je double clic sur une ligne, pas de soucis, les valeurs se chargent comme il se doit dans le Usf_Création, par contre, j'utilise réelement ce programme depuis ce matin, et mes numéros ne sont pas consécutifs, ça commence à 96 - 99 - 101 - 105 ,... et là, lorsque je double clic sur un ligne, le Usf_Création se chargent mes sans les valeurs....
Il doit y avoir un petit paramètre à changer, mais je n'arrive pas à trouver d'où ça vient.....
Un grand merci si tu arrives à me donner ce dernier coup de main.......
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
13 mai 2009 à 08:30
13 mai 2009 à 08:30
Remplace la sub Activate de l'UF Création par
Et je t'ai pourtant déja expliquer comment remplacer tes 40 lignes par 4 lignes !!
A+
Private Sub UserForm_Activate()
Dim lig As Long
With Sheets("INTERVENTIONS")
For lig = 2 To .Cells(65536, 1).End(xlUp).Row
If .Cells(lig, 1) = LigInt Then Exit For
Next lig
Me.Cb_rnc = .Range("A" & lig)
Me.TB_soc = .Range("B" & lig)
Me.TB_NumBon = .Range("E" & lig)
Me.CB_art = .Range("D" & lig)
Me.TB_TempsInt = .Range("F" & lig)
Me.CB_cre = .Range("C" & lig)
Me.TB_Probleme = .Range("G" & lig)
Me.TB_Cause = .Range("H" & lig)
Me.col_9 = .Range("I" & lig)
Me.col_10 = .Range("J" & lig)
Me.col_12 = .Range("L" & lig)
Me.col_11 = .Range("K" & lig)
Me.col_13 = .Range("M" & lig)
Me.col_14 = .Range("N" & lig)
Me.col_15 = .Range("O" & lig)
Me.col_16 = .Range("P" & lig)
Me.col_17 = .Range("Q" & lig)
Me.col_18 = .Range("R" & lig)
Me.col_19 = .Range("S" & lig)
Me.col_20 = .Range("T" & lig)
Me.col_24 = .Range("X" & lig)
Me.col_25 = .Range("Y" & lig)
Me.col_26 = .Range("Z" & lig)
Me.col_27 = .Range("AA" & lig)
Me.col_28 = .Range("AB" & lig)
Me.col_29 = .Range("AC" & lig)
Me.col_30 = .Range("AD" & lig)
Me.col_31 = .Range("AE" & lig)
Me.col_32 = .Range("AF" & lig)
Me.col_33 = .Range("AG" & lig)
Me.col_34 = .Range("AH" & lig)
Me.col_35 = .Range("AI" & lig)
Me.col_36 = .Range("AJ" & lig)
Me.col_37 = .Range("AK" & lig)
Me.col_38 = .Range("AL" & lig)
Me.col_39 = .Range("AM" & lig)
Me.col_40 = .Range("AN" & lig)
Me.col_41 = .Range("AO" & lig)
Me.col_42 = .Range("AP" & lig)
End With
If col_42 <> "" Then c.Visible = True
End Sub
Et je t'ai pourtant déja expliquer comment remplacer tes 40 lignes par 4 lignes !!
A+
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
13 mai 2009 à 09:07
13 mai 2009 à 09:07
J'ai essayé ton code, mais toujours pareil... Lorsque je dble clic sur une ligne, rien dans l'Usf_Creation....
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
13 mai 2009 à 10:09
13 mai 2009 à 10:09
ouppps, j'ai oublier..
dans l'UF Modification...
dans l'UF Modification...
LigInt = ListBox1.List(ListBox1.ListIndex)
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
13 mai 2009 à 15:01
13 mai 2009 à 15:01
Bon c'est parfait Mr lermitte222!
Un grand merci pour toute votre aide sans laquelle je n'aurais pu aboutir!
Un grand merci pour toute votre aide sans laquelle je n'aurais pu aboutir!
tchulio
Messages postés
161
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
9 juillet 2019
1
18 mai 2009 à 16:05
18 mai 2009 à 16:05
Salut!
J'écris pour autre chose car la macro fonctionne parfaitement!
C'est juste que lorsque je veux mettre les données de mes textbox dans la feuille "Formulaire" avec le bouton éditer rapport, ça fonctionne bien mais si dans une textbox j'appuie sur "ENTER" pour aller à la ligne et que j'exporte, ben la il y a un carré qui se mets sur ma feuille (là ou j'ai appuyé sur enter...) tu vois ce que je veux dire?
Alors là quand j'imprime ma feuille ça me fait des carrés un peu partout...
Que dois je faire pour éviter celà?
Merci
J'écris pour autre chose car la macro fonctionne parfaitement!
C'est juste que lorsque je veux mettre les données de mes textbox dans la feuille "Formulaire" avec le bouton éditer rapport, ça fonctionne bien mais si dans une textbox j'appuie sur "ENTER" pour aller à la ligne et que j'exporte, ben la il y a un carré qui se mets sur ma feuille (là ou j'ai appuyé sur enter...) tu vois ce que je veux dire?
Alors là quand j'imprime ma feuille ça me fait des carrés un peu partout...
Que dois je faire pour éviter celà?
Merci
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
19 mai 2009 à 06:50
19 mai 2009 à 06:50
Re,
dans ..
Remplacer les Value par text ou par rien.
Comme tu est dans l'UF pas besoin du Me.
A+
Rappel.. remplacer tes 40 lignes par 4
Dans le Tag des textbox mettre sont N°, par ex: dans TB_soc mettre Tag à 1, CB_cre mettre tag à 2
.... col_24 mettre tag à 24 (en mode édition bien sùr)
Si il y a des TextBox autre mettre le tag à 99
pour sauver..
ou bien Autre méthode
dans ..
.Cells(LigInt, 1) = Me.Cb_rnc.Value
.Cells(LigInt, 2) = Me.TB_soc.Value
.Cells(LigInt, 3) = Me.CB_cre.Value
.Cells(LigInt, 4) = Me.CB_art.Value
.....
.....
Remplacer les Value par text ou par rien.
.Cells(LigInt, 2) = TB_soc
.Cells(LigInt, 3) = CB_cre
.Cells(LigInt, 4) = CB_art
.....
.....
Comme tu est dans l'UF pas besoin du Me.
A+
Rappel.. remplacer tes 40 lignes par 4
Dans le Tag des textbox mettre sont N°, par ex: dans TB_soc mettre Tag à 1, CB_cre mettre tag à 2
.... col_24 mettre tag à 24 (en mode édition bien sùr)
Si il y a des TextBox autre mettre le tag à 99
pour sauver..
Dim Cont as control
For Each Cont In Me.Controls
If TypeOf Cont Is MSForms.TextBox Then
N = Cont.tag
if N<99 then
Cells(Lig, N) = Cont.Object.Text
end if
End If
Next Cont
ou bien Autre méthode