Déplacement non controlé de mes ListBox [Résolu]

Messages postés
31
Date d'inscription
jeudi 22 juillet 2010
Dernière intervention
14 février 2017
- 30 juin 2013 à 02:29 - Dernière réponse :
Messages postés
31
Date d'inscription
jeudi 22 juillet 2010
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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
31
Date d'inscription
jeudi 22 juillet 2010
Dernière intervention
14 février 2017
- 4 juil. 2013 à 12:47
1
Merci
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

Merci dammex 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de dammex
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 30 juin 2013 à 07:22
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
- 30 juin 2013 à 10:41
0
Merci
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 !
Commenter la réponse de MarcPL
- 30 juin 2013 à 17:11
0
Merci
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.
Commenter la réponse de Utilisateur anonyme
Messages postés
31
Date d'inscription
jeudi 22 juillet 2010
Dernière intervention
14 février 2017
- 1 juil. 2013 à 15:36
0
Merci
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
Commenter la réponse de dammex
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 1 juil. 2013 à 17:05
0
Merci
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.
Commenter la réponse de ucfoutu
- 1 juil. 2013 à 17:06
0
Merci
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.
Commenter la réponse de Utilisateur anonyme
Messages postés
31
Date d'inscription
jeudi 22 juillet 2010
Dernière intervention
14 février 2017
- 1 juil. 2013 à 17:27
0
Merci
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
Commenter la réponse de dammex
- 1 juil. 2013 à 17:51
0
Merci
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.
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.