copier plusieurs fois une listbox dans une feuille excel

  • Initiateur de la discussion Initiateur de la discussion fabian123
  • Date de début Date de début

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 !

fabian123

XLDnaute Occasionnel
Bonjour,

voici mon problème, j'ai une listbox de deux colonnes (une avec des articles et l'autre leur prix.)

Cette listbox se trouve sur un userform.

Je souhaiterais, en cliquant sur un bouton, transférer le contenu de cette listbox dans une feuille excel... j'ai trouvé un code me permettant de le faire, mais lorsque je transfère à nouveau le contenu, il écrase le précédent... hors je souhaiterais qu'il vienne se placer sous le transfert précédent avec une ligne vide entre les deux...

je ne sais pas comment faire...

je vous laisse mon code, en esperant que vous pourrez m'aider!
merci d'avance

Private Sub CommandButton3_Click()

With ListBox2
Sheets("Feuil1").Range(Cells(1, 1), Cells(.ListCount, 1)) = .List

End With
ListBox2.Clear
End Sub
 
Re : copier plusieurs fois une listbox dans une feuille excel

Bonjour le Forum, Fabian123,

Il faut determiner la première ligne vide de ton tableau comme ceci :

Code:
Sub CommandButton3_Click()
Dim Fin_Ligne As Integer
Fin_Ligne = Sheets("Feuil1").Range("A65535").End(xlUp).Row + 1
With ListBox2
   Sheets("Feuil1").Range(Cells(Fin, 1), Cells(Fin + .ListCount, 1)) = .List
End With
ListBox2.Clear
End Sub

@+

Creepy
 
Re : copier plusieurs fois une listbox dans une feuille excel

Salut, merci pour la réponse rapide!

j'ai essayé le code que tu m'as donné, mais ça ne fonctionne pas...

il fait des trucs bizarre!

il affiche l'article en repartant de la cellule A1 et en le rajoutant sur la cellule suivante...

mais il ecrase toujours les données précédemment enregistrées...

en fait ce que je souhaiterais faire est la chose suivante:

la listbox2 correspond a des articles (et leurs prix) sorti du stock. le total s'affiche dans un label. je souhaiterais que l'utilisateur, quand il cliquera sur le bouton transfère la vente sur la feuille excel, et passe ainsi à la vente suivante, qu'il validera et qui viendra donc se transférer sous la première (et pas sur!😀) j'aimerais aussi qu'il y ai une ligne vide entre les deux, afin de pouvoir isoler chaque vente)

encore une fois, merci de t'attarder sur mon problème!
 
Re : copier plusieurs fois une listbox dans une feuille excel

re!

j'ai un peu regardé, en fait j'avais mal retranscrit une ligne!!😀😛😀

mais! (parcequ'il y a un mais!)

j'ai encore un petit souci, si je n'ai qu'un ligne dans ma listbox, il me la copie deux fois dans ma feuille excel (pq?!) et quand j'ai deux articles et plus, il m'affiche '#N/A' dans la dernière cellule (pourquoi?!)

Enfin, il ne m'affiche que la première colonne de ma listbox (les articles) mais pas la seconde...

voilà... comme tu peux t'en rendre compte, je suis nul en vba, je débute et j'ai parfois du mal à m'en sortir!
 
copier plusieurs fois les données d'un userform dans une feuille excel

bonjour

moi problème ressemble à celui de fabian123 mais je n'arrive pas à adapter la macro que tu propose Creepy. Mon userform comporte 8 textbox et 3 combobox, j'ai écris une instruction pour que lorsque je clique sur mon bouton valider de mon userform, les données s'inscrive dans la ligne 4.
si je rempli à nouveau mon userform les anciennes données de la ligne 4 sont remplacées par les nouvelles. mon but étant qu'elles viennent s'incrires à la ligne suivante !!


Feuil1.Range("B4") = affaireComboBox2
Feuil1.Range("C4") = dateEmissionTextBox
Feuil1.Range("D4") = origineTextBox
Feuil1.Range("E4") = emmetteurTextBox
Feuil1.Range("F4") = libelleActionTextBox
Feuil1.Range("G4") = respActionComboBox
Feuil1.Range("H4") = delaiSouhaiteTextBox
Feuil1.Range("I4") = criticiteTextBox
Feuil1.Range("J4") = statutComboBox
Feuil1.Range("L4") = commentaireTextBox
Feuil1.Range("M4") = avancementTextBox


mon fichier est trop gros pour pouvoir le joindre même avec winzip

merci d'avance
 
Re : copier plusieurs fois une listbox dans une feuille excel

Bonjour,

vincenus33, tu peux essayer comme ça :

Code:
.../...
Dim Derlign As Long

If Range("B4") = "" Then
   Derlign = 4
Else
   Derlign = Range("[COLOR=Blue]B[/COLOR]65536").End(xlUp).Offset(1, 0).Row
End If
Feuil1.Range("B" & Derlign) = affaireComboBox2
Feuil1.Range("C" & Derlign) = dateEmissionTextBox
Feuil1.Range("D" & Derlign) = origineTextBox
Feuil1.Range("E" & Derlign) = emmetteurTextBox
.../...

Bonne soirée

Edit: Correction d'une erreur
 
Dernière édition:
Re : copier plusieurs fois une listbox dans une feuille excel

bonjour bqtr

j'ai adapté ton code comme tu me l'as dis. En partant d'une feuille vide, une fois que je valide ma userform, la ligne 4 se remplit, jusque là ok.
Quand je remplis à nouveau ma userform, c'est donc ma dernière ligne qui est remplit !! Et si je rempli à nouveau mon userform, cette dernière ligne est à nouveau remplacée!! En fait, si on image que ma feuille a déjà 21 lignes de complétées, comment faire pour que lorsque je valide mon userform, les données viennent à la ligne 22 et ainsi de suite ...

Dim Derlign As Long
If Range("B4") = "" Then
Derlign = 4
Else
Derlign = Range("A65536" & i).End(xlUp).Offset(1, 0).Row
End If
Feuil1.Range("B" & Derlign) = affaireComboBox2
Feuil1.Range("C" & Derlign) = dateEmissionTextBox
Feuil1.Range("D" & Derlign) = origineTextBox
Feuil1.Range("E" & Derlign) = emmetteurTextBox
Feuil1.Range("F" & Derlign) = libelleActionTextBox
Feuil1.Range("G" & Derlign) = respActionComboBox
Feuil1.Range("H" & Derlign) = delaiSouhaiteTextBox
Feuil1.Range("I" & Derlign) = criticiteTextBox
Feuil1.Range("J" & Derlign) = statutComboBox
Feuil1.Range("L" & Derlign) = commentaireTextBox
Feuil1.Range("M" & Derlign) = avancementTextBox

Merci😕
 
Re : copier plusieurs fois une listbox dans une feuille excel

RE bonjour,

En relisant le code je me suis aperçu qu'il y avait une erreur il faut mettre :
Derlign = Range("B65536").End(xlUp).Offset(1, 0).Row
Remplace le A par le B, milles excuses.

A+
 
Dernière édition:
Re : copier plusieurs fois une listbox dans une feuille excel

bonjour à vous

je me suis inspiré d'un fichier existant et mis en place le code suivant:

Dim i As Integer
Dim konteur As Integer
Dim NBaction As Integer

'début de programme
NBaction = 4

'comptage des cellules dans l'onglet en_cours
ActiveWorkbook.Worksheets("en_cours").Activate
For konteur = 4 To 4000
If Range(Cells(konteur, 1), Cells(konteur, 1)) <> "" Or Range(Cells(konteur, 2), Cells(konteur, 2)) <> "" Then
NBaction = NBaction + 1
End If
Next konteur

Feuil1.Range("B" & NBaction) = affaireComboBox2
Feuil1.Range("C" & NBaction) = dateEmissionTextBox
Feuil1.Range("D" & NBaction) = origineTextBox
Feuil1.Range("E" & NBaction) = emmetteurTextBox
Feuil1.Range("F" & NBaction) = libelleActionTextBox
Feuil1.Range("G" & NBaction) = respActionComboBox
Feuil1.Range("H" & NBaction) = delaiSouhaiteTextBox
Feuil1.Range("I" & NBaction) = criticiteTextBox
Feuil1.Range("J" & NBaction) = statutComboBox
Feuil1.Range("L" & NBaction) = commentaireTextBox
Feuil1.Range("M" & NBaction) = avancementTextBox


cette fois-ci quand je remplis mon userform, les lignes s'insérent à la suite des autres mais à la fin de mon tableau.
comment faire pour détecter la 1ère ligne vide du tableau (la 4 si je part d'un tableau vide ou alors la nième)!!

merci

et désolé je sais je suis un peu chiant, mais on se renseigne comme on peut
 
Re : copier plusieurs fois une listbox dans une feuille excel

Re,

Ton adaptation ne peut pas fonctionner car cette ligne est erronée :

Code:
        Derlign = Range("A65536" & i).End(xlUp).Offset(1, 0).Row

Le & i n'a rien à faire là !!!

Il faut :

Code:
        Derlign = Range("B65536").End(xlUp).Offset(1, 0).Row

A+
 
Re : copier plusieurs fois une listbox dans une feuille excel

Bonjour à tous

j'ai une nouvelle question sur mon UserForm
tous fonctionne bien mais j'aurai besoin d'ajouter un contrôle.
j'ai une instruction qui fonctionne et qui me permet de vérifier si les dates sont au format jj/mm/aaaa
si la date est incorrect la MsgBox apparait bien lorsque je clique sur la touche OK de mon userform. Elle se ferme et inscrit quand même le mauvais format de date dans la case prévue à cette effet!!

Comment faire pour que, si le format de date est incorrect et que l'on clique sur le bouton OK, la userform reste ouverte tant que la date n'a pas été modifier.

merci
 
- 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
6
Affichages
563
Réponses
2
Affichages
802
Retour