Boucle sur nom de listbox

carlos

XLDnaute Impliqué
Supporter XLD
Bonjour le forum
G plusieurs listbox sur un USF ;Listbox1 à listbox11 qui fon la meme chose .
Est il possible d'attribuer une boucle sur :

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

Jusqu'a ...

Private Sub ListBox11_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

pour n'avoir qu'une seule procedure au lieu de 11

Merci
 

Creepy

XLDnaute Accro
Bonjour le Forum, Carlos,

Pourquoi les 11 listbox font la même chose une seule t'aurait pas suffit du coup ?

Bref Tu ne peux pas faire un sub pour les 11 il faut faire autant de sub que de controles.

Par contre tu crées dans un module ta fonction et tu l'appelles à chaque fois :

Exemple
A mettre dans une module

Function TEST()
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 Function

et dans tes 11 procédures :
Call TEST

Et voila le tour est joué !

@+

Creepy
 

carlos

XLDnaute Impliqué
Supporter XLD
Bonjour Creepy , Pascal76 et le forum

G tenté ta proposition Creepy mais je n'ai point réussi à la mettre en pratique : 'Argument non falcutatif'

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)
TEST
End Sub

dans un module

Function TEST(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 Function

PASCAL76

En ce qui concerne ta remarque Pascal , je ne connais pas du tout les modules de classe , es ce que ca peut me permettre de resoudre mon probleme ??
je cherche des infos sur ce site

Merci
 

PascalXLD

XLDnaute Barbatruc
Modérateur
RE

Oui Carlos cela permettrait de répondre à ta question

Mais dans ton cas le tout est de savoir exactement ce que tu veux car pour le mettre en place cela demande quelques notions et cela te prendra plus de temps que de taper 11 fois tes lignes de code

J'avais touché un peu au module dans classe dans le jeu MasterMind qui est en téléchargement

Tu verras c'est assez simple à décortiquer
 

Hervé

XLDnaute Barbatruc
Bonjour tout le monde

En pièce jointe, un exemple de module de classe avec des listbox.

salut
[file name=Classlistbox.zip size=12756]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classlistbox.zip[/file]
 

Pièces jointes

  • Classlistbox.zip
    12.5 KB · Affichages: 61

carlos

XLDnaute Impliqué
Supporter XLD
Re bonsoir , creepy , Pascal76 , Hervé et le forum

J'ai bien avancé sur vos propositions respectives et je joints le fichier de Hervé .J'ai rajouté entre les listbox la possibilité de Faire un glisser coller .Ca marche plutot bien sauf que la macro CLEAn ne marche pas ????
Elle ne permet pas de remove l'item déplacé .

Merci [file name=Classlistbox_20051025163426.zip size=13334]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classlistbox_20051025163426.zip[/file]
 

Pièces jointes

  • Classlistbox_20051025163426.zip
    13 KB · Affichages: 54

Hervé

XLDnaute Barbatruc
re carlos, le fil, le forum

J'ai pas bien compris pourquoi tu voulais passer par une macro indépendante.

Alors j'ai fait comme je le sentais :unsure:

code à remplacer :

Private Sub Listb_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
       
If listb.Value <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp; MyDataObject.SetText listb.Value
&nbsp; &nbsp; &nbsp; &nbsp; Effect = MyDataObject.StartDrag
&nbsp; &nbsp; &nbsp; &nbsp; listb.RemoveItem (listb.ListIndex)
'ajouter ceci
&nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
End If
End Sub

salut
 

carlos

XLDnaute Impliqué
Supporter XLD
BRAVO HERVE , Merci PASCAL76

Pourquoi je suis passé par une macro indépendante ?


A vrai dire je n'ai fait que reprendre un superbe code de thierry dans lequel il utilisait cette formule .

J'ai fait avec les moyens du bord ..Car je ne comprend pas toujours tout ce que je réutilise grace à vous mais au moins ca me fait avancé tres vite dans mes projets .

Ton code me permet de simplifier mes procedures et l'idée de PASCAL76 m'a permit de passer par un module de classe tres intéressant.


Merci à tous pour l'aide que vous m'apportez tous les jours

Carlos
 

carlos

XLDnaute Impliqué
Supporter XLD
bonsoir

Voici le fichier completé pour assurer le glisser deplacer d'une listbox vers une autre

Merci

Carlos [file name=Classlistbox_20051025184711.zip size=13823]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classlistbox_20051025184711.zip[/file]
 

Pièces jointes

  • Classlistbox_20051025184711.zip
    13.5 KB · Affichages: 144

Discussions similaires

Réponses
29
Affichages
913

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16