Déplacement non controlé de mes ListBox

Résolu
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 - 30 juin 2013 à 02:29
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 - 4 juil. 2013 à 12:47
Bonjour à tous,

Je suis actuellement en train de développer un programme en VBA mais je rencontre quelques difficultés sur mes Listbox. Je m'explique....

J'ai plusieurs ListBox présentes dans mon fichier. Via un glisser-déposer, il m'est possible de remplir plusieurs ListBox à partir d'une ListBox générale reprenant l'ensemble de mes données.

Le problème est que lorsque je glisse et dépose un item de ma ListBox générale vers ma ListBox2, cette dernière (ListBox2) se décale de quelques milliimètres vers le bas... j'ai beau regardé sur le net mais aucune solution apportées...

Merci beaucoup

9 réponses

dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 1
4 juil. 2013 à 12:47
Je voudrai faire deux remarques avant de poursuivre ce sujet.

@ucfoutu
Il est vrai que mon premier message manquait de contenu. Je penserai dans l'avenir à fournir un extrait de code dès ma première question pour au moins vous aiguiller dans votre analyse.

@Cmarcotte
Tout en restant poli, je n'ai pas du tout aimé le ton de vos réponses. Si mes questions vous semble bêtes, rien de vous oblige à y répondre!!! Pour information, vous verrez que vos ébauches de solution ne corrigent pas mon problème. Si vous m'auriez demandé un peu plus d'information sur mon code général, vous auriez probablement mieux cerné mon problème !!! De plus, un débutant comme moi ne sait pas forcément cerner quelles informations vous avez besoin pour en retour nous venir en aide. En regardant votre profil, j'aurai pu croire que vous auriez un peu plus de patience et d'humilité envers d'autres n'ayant peut être pas votre compétence en programmation vba, mais en ayant très certainement d'autres!!!

Pour en revenir au sujet : la solution au déplacement inexpliqué de mes Listbox se trouve à l'adresse d'un autre forum...

http://forum.zebulon.fr/resolu-excel-vba-listbox-et-zoom-t139797.html

J'espère tout de même que les administrateurs ne m'en tiendront pas rigueur, et qu'ils me permettront de continuer sur leur site.

Merci
1
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 juin 2013 à 07:22
Bonjour,
Les causes peuvent être multiples, mais toutes résultant de tes propres instructions. Et sans voir à la fois ton code et ta "construction", on ne pourrait que faire des hypothèses à l'infini, hein ...
Ce qui devrait mieux te faire maintenant comprendre la raison du point 8 du règlement de ce forum.
Cet aspect avait pourtant été rappelé à ton attention lors de ta
discussion précédente
Pour mémoire :
Prends l'habitude (indispensable si l'on veut rester sérieux) de présenter ici ton code par copier/coller strict du code que tu as écrit. Ce n'est manifestement pas le cas.
Je ne verrai le reste qu'après l'observation de cette discipline.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
MarcPL Messages postés 172 Date d'inscription jeudi 8 décembre 2011 Statut Membre Dernière intervention 21 juillet 2013 2
30 juin 2013 à 10:41
Bonjour,

préciser la version d'Excel, c'est bien aussi !

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
0
Utilisateur anonyme
30 juin 2013 à 17:11
J'avais bien une parade (2 lignes se texte), mais comme tu te fous du règlement, la voici en abrégé : propriétés Top et Left et événement afterupdate.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 1
1 juil. 2013 à 15:36
Bonjour à tous,

Désolé, je n'avais pas pas jugé nécessaire de mettre le code de mes ListBox car je pensais que le problème venait simplement d'une propriété mal paramétrée des ListBox...

Du coup, je vous joins le code. La ListBox7 est celle générale, celle dans laquelle je récupère les items et la ListBox1 est celle qui reçoit l'item sélectionné.

'*** LISTBOX GENERALE
Private Sub ListBox7_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim MyDataObject As DataObject
If Button = 1 Then
Set MyDataObject = New DataObject
Dim Effect As Integer
phase = ListBox7.Value
If IsNull(phase) Then Exit Sub
MyDataObject.SetText ListBox7.Value
Effect = MyDataObject.StartDrag
End If
End Sub


'*** LISTBOX A REMPLIR
Private Sub ListBox1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As Long, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
Cancel = True
Effect = 1
End Sub
Private Sub ListBox1_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As Long, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
Effect = 1
ListBox1.AddItem Data.GetText
ListBox1.Height = 68.25
ListBox1.Width = 237.75

Ligne = 11
j = 22
Worksheets("Sauvegarde données").Range("A11:A50").ClearContents
Range("M22:M25").ClearContents
If ListBox1.ListCount > 0 Then
For i = 0 To ListBox1.ListCount - 1
Worksheets("Sauvegarde données").Cells(Ligne, 1) = Worksheets("Feuille de route").ListBox1.List(i)
Cells(j, 13) = ListBox1.List(i)
Ligne = Ligne + 1
j = j + 1
Next
End If
End Sub

Cmarcotte, tu pourrais m'en dire un peu plus?

Pour information, j'utilise Excel 2010.

Merci
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
1 juil. 2013 à 17:05
1) Ce ne sont pas (je viens d'essayer) tes instructions de glisser-déposer qui dont responsables (aucun déplacement constaté chez moi !)
la cause est donc à chercher ailleurs dans ton code.
2) que viennent faire ces 2 lignes :
ListBox1.Height = 68.25
ListBox1.Width = 237.75

dans le glisser/déposer ? Tu n'as pas à redimensionner sans cesse ainsi. A ne faire qu'une seule fois, au lancement de ton appli.
3) sur quoi (feuille ou userform) sont ces listboxes ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Utilisateur anonyme
1 juil. 2013 à 17:06
Cmarcotte, tu pourrais m'en dire un peu plus?


Ouvre ton aide et regarde les propriétés et les événements de la Listbox.

Et puis SaveSettings pour les garder dans le registre. Et getsettings pour les récupérer.
0
dammex Messages postés 31 Date d'inscription jeudi 22 juillet 2010 Statut Membre Dernière intervention 14 février 2017 1
1 juil. 2013 à 17:27
Les lignes

ListBox1.Height = 68.25
ListBox1.Width = 237.75

me permettaient de renseigner la taille exacte de ma ListBox. Car lorsque j'utilisais le glisser-deposer, la largeur de la ListBox s'adaptait automatiquement.

OK Cmarcotte, j'ai déjà regardé les propriétés... par contre je vais regarder Savesetting et getssings.

Merci encore
0
Utilisateur anonyme
1 juil. 2013 à 17:51
OK Cmarcotte, j'ai déjà regardé les propriétés... par contre je vais regarder Savesetting et getssings.


Décidément. Quand tu as enregistré la valeur des deux propriétés dans le registre, soit manuellement, soit avec savesettings au début du programme, tu peux utiliser l'événement change du ListBox pour les remettre.
0
Rejoignez-nous