Données listbox vers feuil1

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
Configuration: Windows XP
Internet Explorer 7.0


Merci

3 réponses

  1. A quel niveau se trouve l'erreur ? (c'est la ligne qui est surlignée en jaune quand tu cliques sur Déboguer)
    0
    1. 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
      1. 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