ListBox VBA - Copier-Coller

Hades60250

XLDnaute Nouveau
Bonjour à toutes & tous!

Nouveau sur le forum je me permet déjà de vous demander de l'aide concernant une base de données que je suis en train (d'essayer:D) de dévellopper.

Voilà le décor: j'ai créé une base de données contenant des coordonnées d'entreprises. Dans ce fichier, j'ai un UserForm dans lequel j'ai mis une ListBox. Le Rowsource du ListBox est renseigné dans l'outil propriété.
Je souhaite en fait que l'utilisateur puisse sélectionner plusieurs entreprises dans ce ListBox et au moment ou il appuie sur le bouton "Soumission", que les données soient collées dans un autre classeur.

"Liste" est la feuille dans laquelle je pompe les données
"Comparatif chantier .xls" est le fichier de destination

Voilà le code:

Private Sub UserForm12_Initialize()
Me.ListBox1.List = Sheets("Liste").Value
Me.ListBox1.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub Soumission_Click()
'Déclaration des variables utilisées
Dim i As Byte
Dim ligne As Long

ligne = 1
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) = True Then
Excel.Workbooks("Comparatif chantier .xls").Sheets("Liste des ets").Cells(ligne, 1) = Me.ListBox1.List(i)
Excel.Workbooks("Comparatif chantier .xls").Sheets("rListe des ets").Cells(ligne, 2) = Me.ListBox1.List(i, 1)
ligne = ligne + 1
End If
Next i
End Sub

Et naturellement...... ça marche pô! ça plante sur la ligne For i (message d'erreur = dépassement de capacité).

Est ce qu'une ou plusieurs âmes charitables pourraient apporter de l'eau à mon moulin???
Petite précision: je suis vraiment très novice en VBA, je navigue à taton sur ce fichier depuis 3 mois...

Merci par avance!
 

Hades60250

XLDnaute Nouveau
Re : ListBox VBA - Copier-Coller

Bonjour

Ci joint le fichier

A tester

JP

Bonjour JP & le forum

Tout d'abord bonne année 2010, la santé avant tout et le reste suivra!

Désolé de ne pas avoir répondu à ton message, j'ai eu quelques petites déconvenues avec mon accès internet. Je viens donc d'enregistrer le fichier et de le tester.

J'ai un bug sur la ligne With Workbooks("Comparatif chantier.xls").Sheets("liste des ets")

Le message est "Erreur d'exécution 9: l'indice n'appartient pas à la sélection"
 

Hades60250

XLDnaute Nouveau
Re : ListBox VBA - Copier-Coller

Bonjour JP & le forum!

Je reviens après avoir trouvé une solution à partir des infos de JP:

Avec le code initial, pour une raison inconnue, j'avais toujours un message 'l'indice n'appartient pas à la sélection'.... j'ai donc adapté le code de JP avec une ou deux modifications:

- Je transfert les infos de la listbox dans la feuille récup
- Dans la feuille recup j'ai apposé des recherches V pour aller chercher les infos de chaque société (adresses, contacts, etc)
- Dans la feuille chantier je mets tout cela en forme pour exporter dans un nouveau classeur.

Voici le code:

Private Sub Soumission_Click()

Dim i As Long
Dim Ligne As Long
Dim data1 As Variant


With ThisWorkbook.Sheets("recup").Range("A:A").ClearContents
End With

Ligne = 1
With ThisWorkbook.Sheets("recup")
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
data1 = Me.ListBox1.List(i)
.Cells(Ligne, 1) = data1
Ligne = Ligne + 1

End If
Next i

MsgBox ("Vous devez à présent sauvegarder votre sélection de sous traitants")
Unload Me

ThisWorkbook.Sheets("chantier").Copy
Application.Dialogs(xlDialogSaveAs).Show

End With
End Sub

Il fallait également que dans la feuille chantier, on puisse ajouter des entreprises par la suite, j'ai donc créé des listes dans la colonne 'raison sociale' en utilisant la variable DECALER.

Je ne sais pas si j'ai été clair dans mes explications, en tout cas sans l'aide de JP et du forum je n'aurais jamais réussis, donc UN GRAND MERCI à vous!

Seb.
 

Discussions similaires

Réponses
4
Affichages
213
Réponses
17
Affichages
837

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 179
dernier inscrit
BERSEB50