transfert listbox --> feuille + procd événementielle

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 !

antiphot

XLDnaute Occasionnel
Bonjour à toutes et à tous

Dans le fichier (ci-joint), j'ai une listbox avec un commandbutton "Transfert". Si un item est selectionné et qu'une cellule de la feuil1 est selectionnée, l'item est copié sur la feuil1
En doublecliquant sur la cellule indiquant: Code interne: xxx xxx un msgbox doit apparaître.

Hors cela ne fonctionne pas. Après avoir vérifié mon code, je ne vois pas ou est le problème !

Merci aux personnes bienveillantes qui voudront bien m'éclairer

Philippe

Ci-joint les macros qui interviennent ds le processus:

'Code ds usf

Private Sub CommandButton3_Click()
Dim strTransf1 As String, strTransf2 As String

If ListBox1.ListIndex = -1 Then Exit Sub
If ListBox1.Selected(ListBox1.ListIndex) = True Then
If ActiveCell & ActiveCell.Offset(1, 0) <> "" Then
MsgBox ("Attention les cellules destinataires ne sont pas vides")
Exit Sub
End If
If MsgBox("Hello" & Chr(10) & "Désirez vous continuer ?", vbYesNo) = vbYes Then
strTransf1 = ListBox1.List(ListBox1.ListIndex)
strTransf2 = ListBox1.Column(1, ListBox1.ListIndex)

ActiveCell = strTransf2
ActiveCell.Offset(1, 0) = "Code: " & strTransf1
Else: Exit Sub
End If
End If
End Sub
------------------------------------------------------------------------------------
'code ds module standard

Sub ouvre_cmdmat_recettes()
Dim c As Range
For Each c In Sheets("listedossiers").Range("L1:L" & Sheets("listedossiers").Range("L65536").End(xlUp).Row)
If ActiveCell.Value <> "" Then
If c = Right(ActiveCell, 7) Then
MsgBox ("Ici la macro continue")
End If
End If
Next c
End Sub
---------------------------------------------------------------------------------------
'code ds feuil1

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ouvre_cmdmat_recettes
End Sub
 

Pièces jointes

Dernière édition:
Re : transfert listbox --> feuille + procd événementielle

Macro corrigée en fonctions des données:

1 - Colonne L et non I dans la Feuille "Listedossiers"

2 - Right(ActiveCell,8) et non Right(ActiveCell,7)

3 - Dans ce genre de procédure il est parfois utile de vérifier les valeurs des variables (Debug.print MaVariable) et des indices de lignes et colonne en cours d'execution.

Sub ouvre_cmdmat_recettes()
Dim c As Range
For Each c In Sheets("listedossiers").Range("l1:l" & Sheets("listedossiers").Range("l65536").End(xlUp).Row)
If ActiveCell.Value <> "" Then
If c = Right(ActiveCell, 8) Then
MsgBox ("Ici la macro continue")
End If
End If
Next c
End Sub
 
Re : transfert listbox --> feuille + procd événementielle

Bonjour Hasco

Désolé nos messages se sont croisés. Concernant la plage, c'est une erreur de transcription de ma part pour le fichier exemple. Par contre je ne saisis pas bien pourquoi je dois mettre
Right(ActiveCell,8) et non Right(ActiveCell,7) puisque j'ai bien trois zéros, un espace, et trois chiffres ce qui fait sept ?

".... Dans ce genre de procédure il est parfois utile de vérifier les valeurs des variables (Debug.print MaVariable) et des indices de lignes et colonne en cours d'execution...."

Peux-tu être plus explicite stp ?
 
Re : transfert listbox --> feuille + procd événementielle

Pourquoi Right(ActiveCell,8) et non Right(ActiveCell,7) ?

tout simplement parcequ'en vérifiant les valeurs retournées par la fonction
Right(ActiveCell,7) cela donnait : 00 005 et non 000 005

Pour vérifier les valeurs tu peux inclure soit un msgbox MaVariable dans ton code, le temps de le debuguer ou un Debug.print MaVariable qui affichera la valeur désirée dans le volet exécution de l'éditeur VBA. Troisième solution:

Dans l'éditeur VBA: Affichage/Fenêtre espion Puis clic-droit dans le volet espion qui s'affiche et: Ajouter un espion auquel tu donne le nom de ta variable et tu lance l'éxécution de la procédure

Bon courage
 
Re : transfert listbox --> feuille + procd événementielle

Merci du tuyau. Effectivement c'est bien utile !
Par contre , concernant mon appli, j'ai tjs un pb. la macro fonctionne pour certains item de la listbox et pas pour d'autres ? j'avoue que cela me dépasse !
 
- 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
10
Affichages
661
Réponses
15
Affichages
784
Réponses
7
Affichages
449
Retour