Boucle sur nom de listbox

  • Initiateur de la discussion Initiateur de la discussion carlos
  • 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 !

carlos

XLDnaute Impliqué
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
 
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
 
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
 
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
 
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

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
 
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
 
- 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
41
Affichages
572
Réponses
10
Affichages
775
Retour