Pb avec multisélection d'un listbox vers une feuille Excel

Abel

XLDnaute Accro
Bonjour tout le monde, et bonne année.

J'ai un soucis avec la remontée d'une multi sélection dans une feuille de calcul.

J'utilise un code de ce type :

For j = 0 To Truc - 1 'c'est le nb de ligne de mon listbox
If Lbx_Qui.Selected(j) Then
With Workbooks("fichier destination").Worksheets("feuille destination")
.Range("a" & 11 + i) = Lbx_Qui.List(j)
.Range("b" & 11 + i) = Tbx_Machin 'autre info pêchée dans mon userform
End With
i = i + 1
End If
Next j

Le problème est qu'à la première copie de la première information dans le fichier de destination, pof ! a p'us de sélection dans la listebox.
(C'est à dire au premier range(truc)=quelquechose)

Donc je retrouve bien les infos de la première ligne de ma multisélection mais pas le reste.

Une idée ? Je suis sur Excel 2003.

Merci d'avance
 

Abel

XLDnaute Accro
Re : Pb avec multisélection d'un listbox vers une feuille Excel

Re,

Bon, je suis un peu vert, là ...

En construisant un exemple à partir de mon fichier d'origine, ... ben, ... ça fonctionne.

Je vous le joint quand même.

Je prends toutes les suggestions.

Abel.
 

Pièces jointes

  • PourLeForum.xls
    78 KB · Affichages: 39
  • PourLeForum.xls
    78 KB · Affichages: 46
  • PourLeForum.xls
    78 KB · Affichages: 40

Abel

XLDnaute Accro
Re : Pb avec multisélection d'un listbox vers une feuille Excel

Re,

Oups !

Je viens de voir que j'ai laissé trainer un mot de passe...
 

Pièces jointes

  • PourLeForum.xls
    77.5 KB · Affichages: 43
  • PourLeForum.xls
    77.5 KB · Affichages: 45
  • PourLeForum.xls
    77.5 KB · Affichages: 43

Robert

XLDnaute Barbatruc
Repose en paix
Re : Pb avec multisélection d'un listbox vers une feuille Excel

Bonjour PierreJean, Abel, bonjour le forum,

Hé Abel ! fous ma gueule ? Tu protèges tes accès au code et tu demandes de l'aide. Arffff ! j'suis 'achement content de te revoir quand même... Ton post ma fait faire un petit voyage dans le temps vite fait... J'en suis revenu plein de nostalgie...

[Édition]
Évidemment tu as trouvé moyen de rectifier avant que je poste. J'suis sûr que tu l'as fait exprès pour me faire passer pour une trume épaisse...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Pb avec multisélection d'un listbox vers une feuille Excel

Bonjour le fil, bonjour le forum,

Oui en effet là ça marche... N'aurais-tu pas du code sur la textbox Tbx_Intervention qui ferait perdre la sélection dans la listbox Lbx_Qui ou une macro événementielle Change sur l'onglet Formulaire ?
 

Abel

XLDnaute Accro
Re : Pb avec multisélection d'un listbox vers une feuille Excel

Re,

Vi vi ! Robert.
J'étais au coin du bois sachant bien que tu allais tomber dans la chausse trappe à Robert.
Marche bien, hein !!!

Oui j'ai de l'événementiel avec du Change sur la listbox.
Je teste les sélections au fur et à mesure des clicks dans la liste.
Certaines entrées ne doivent pas pouvoir être sélectionnées.
Mais je ne veux pas trier ma liste avant de la mettre dans ma liste.

Mais ma multisélection fonctionne tout de même.
J'explore cette piste à travers un autre exemple.

A+
 

Abel

XLDnaute Accro
Re : Pb avec multisélection d'un listbox vers une feuille Excel

pierrejean, Robert, tous ...

Un nouveau fichier en exemple.
Avec une ou deux fonctions de plus se rapprochant de mon original.

Ca marche toujours ...

A+
 

Pièces jointes

  • PourLeForum2.xls
    83 KB · Affichages: 60

Robert

XLDnaute Barbatruc
Repose en paix
Re : Pb avec multisélection d'un listbox vers une feuille Excel

Bonjour le fil, bonjour le froum,

D'abord le fait d'enregistrer l'onglet uniquement sur un autre classeur, je trouve ça étrange. J'imagine qu'à la fin tu veux un classeur sans macro...

Ensuite tu boucle sur l'événement Change de la ListBox :
Private Sub Lbx_Qui_Change()
Dim k As Integer
k = Lbx_Qui.ListIndex
If Lbx_Qui.List(k, 1) <> "A" And Lbx_Qui.Selected(k) Then
MsgBox "Bien essayé ! Mais ..." & Chr(10) & Chr(10) & Lbx_Qui.List(k, 0) & _
" n'y a pas droit", vbExclamation
Select_ZO = Select_ZO - 2
Lbx_Qui.Selected(k) = False
End If
End Sub

Ne serait-il pas convenable d'utiliser soit Application.EnableEvents soit une variable boléenne test ?
Code:
Option Explicit
Private test As Boolean


Private Sub Lbx_Qui_Change()
Dim k As Integer

If test = True Then Exit Sub
k = Lbx_Qui.ListIndex
If Lbx_Qui.List(k, 1) <> "A" And Lbx_Qui.Selected(k) Then
    test = True
    MsgBox "Bien essayé ! Mais ..." & Chr(10) & Chr(10) & Lbx_Qui.List(k, 0) & _
    " n'y a pas droit", vbExclamation
    Select_ZO = Select_ZO - 2
    Lbx_Qui.Selected(k) = False
End If
End Sub
 

Abel

XLDnaute Accro
Re : Pb avec multisélection d'un listbox vers une feuille Excel

Robert,

Oups, oublié le flag dans l'exemple. Bien vu Robert.

Dans la vraie vie, l'onglet devient un formulaire qui va vivre sa vie ailleurs. En fait, je supprime le bouton dans l'onglet.
Il reste un petit bout de code dans l'onglet mais ça ne me dérange pas.

On progresse mais ... marche toujours dans l'exemple et toujours pas dans la vraie vie ...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Pb avec multisélection d'un listbox vers une feuille Excel

Bonjour le fil, bonjour le forum,

Ouaip... Difficile d'aller de l'avant puisque ça fonctionne avec les exmples... As-tu essayer de repartir d'un fichier vierge, copier/coller les données de l'original, les codes etc. et retenter avec cette nouvelle base ?
 

Abel

XLDnaute Accro
Re : Pb avec multisélection d'un listbox vers une feuille Excel

Re,

J'ai trouvé !!!! (enfin, j'espère que c'est ça et qu'il n'y a rien de planqué derrière).

Dans la base de ma vraie vie, les données qui alimentent la listbox sont issues de formules ...
Et pas dans l'exemple.

Il y avait plus que ça comme grosse différence.

Bon, ben, il n'y a plus qu'à repenser mon fichier.

Merci de m'avoir accompagné Robert. Tes questions et remarques m'ont permis indirectement de trouver cette piste.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 848
Messages
2 092 786
Membres
105 533
dernier inscrit
TAF