Données listbox vers feuil1

Fermé
Corgol Messages postés 2 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 19 septembre 2008 - 18 sept. 2008 à 23:21
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 - 21 sept. 2008 à 08:57
Bonjour,
Bonjour,

Etant debutant dans vb excel , j'aurai besoin de vos connaissances pour me depanner un peu sur les deux points suivants:

1. Dans ma listbox j'ai mis les donnees d'une feuille de fichier excel, feuil2, cellule B1:B200. J'aimerai faire apparaitre ces donnees dans la feuil1 dans la cellule A27 àA79 et de la cellule A113 a A157 , je voudrais que ces données se mettent les unes en dessous des autres après sélection dans ma listbox par la commande CommandButton1_Click()
Pour l’instant ça me recopie toutes les données de la liste boxe dans la feuil1, il m’est impossible de sélectionner les lignes que je veux

Voici le code

Private Sub CommandButton1_Click()
If UserForm1.Visible = True Then
End If
Dim element_select As Boolean
Dim nb_elements, i As Integer
element_select = False
nb_elements = UserForm1.ListBox1.ListCount
'Vérifie si un élément est sélectionné
'le 1er item (élément) est indexé à zéro, raison pour laquelle la boucle for démarre à zéro
For i = 0 To nb_elements - 1
If UserForm1.ListBox1.Selected(i) = True Then
element_select = True
Exit For
End If
Next
'sélectionne la cellule devant recevoir la 1ère valeur
Range("A27").Select

'Ecriture des valeurs sélectionnés dans la feuille Excel
For i = 0 To nb_elements - 1
'affecte à la cellule active la valeur sélectionnée de la colonne un de la ListeBox
'l'index des colonnes commançant à zéro, on utilise la valeur 0
ActiveCell.Value = ListBox1.List(i, 0)
'se déplace d'une cellule vers le bas
ActiveCell.Offset(1, 0).Select

Next i
End Sub


Merci

3 réponses

Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
21 sept. 2008 à 08:57
A quel niveau se trouve l'erreur ? (c'est la ligne qui est surlignée en jaune quand tu cliques sur Déboguer)
0
Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
19 sept. 2008 à 10:13
Bonjour Corgol,
tu peux tout à fait faire dans une seule et même boucle la vérification qu'au moins un élément est sélectionné ET écrire les éléments sélectionnés à la suite de ta liste.
Ci-dessous une suggestion à partir du code que tu fournis.
I.
Private Sub CommandButton1_Click()
Dim element_select As Boolean
Dim nb_elements As Integer, i As Integer
   
element_select = False
nb_elements = UserForm1.ListBox1.ListCount

'Vérifie si un élément est sélectionné ; si oui, cet élément est écrit _
à la fin de la liste sur la feuille
For i = 0 To nb_elements - 1
    If ListBox1.Selected(i) = True Then
        element_select = True
        Range("A27").End(xlDown).Offset(1, 0).Value = ListBox1.List(i)
    End If
Next i

'Message d'alerte si aucun élément sélectionné ; auquel cas _
la procédure est arrêtée pour permettre de faire une sélection
If element_select = False Then
    MsgBox "aucune sélection"
    Exit Sub
End If

'Sinon, le formulaire est déchargé et fermé
Unload Me

End Sub
-1
Corgol Messages postés 2 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 19 septembre 2008
19 sept. 2008 à 18:04
Désolé ça ne marche pas, j'ai le code d'erreur 1004,
erreur d'exécution'1004';
erreur définie par l'application ou par l'objet


Merci d'avance
-1