Ajouter une ligne tant qu'on clic sur un bouton

Bonjour,

Je possède un formulaire avec un bouton "Ajout ligne" qui permet d'ajouter une ligne en fin.

J'aimerais lui passer une instruction comme :

tant qu'on clic sur le bouton, ajoute une ligne.

Pour l'instant j'ai écrit ceci :

Private Sub WPLCat_Click()
    principal = 9
    ligneCourante = principal
    While (WPLCat_Click() = True)
        Range("A" & ligneCourante & ":D" & ligneCourante).Select
        Selection.Copy
        ligneCourante = ligneCourante + 1
        Range("A" & ligneCourante & ":D" & ligneCourante).Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
    Wend
End Sub

Mais bien évidemmentça ne fonctionne pas. Auriez-vous une idée?

Bonjour,

pas sur d'avoir compris, regarde peut être ceci, à adapter à ton fichier :

Option Explicit
Private Sub CommandButton1_Click()
Static l As Long
Range("A9:D9").Copy
Cells(l + 10, 1).Resize(, 4).PasteSpecial Paste:=xlPasteFormats
l = l + 1
End Sub

bonne journée

@+

Merci c'est ce que je cherchais.

Mais je suis maintenant confronté à un autre problème.

Lorsque je clique sur mon bouton qui m'ajoute une ligne, j'ai également un userForm qui s'affiche me permettant de saisir les valeurs que je veux dans la range ("A" & l & ":D" & l)

Cependant, je n'arrive pas à récupérer les valeurs pour les afficher sur ma feuille.

Re,

Lorsque je clique sur mon bouton qui m'ajoute une ligne

bah... le code proposé n'ajoute pas de ligne mais copie le format des 4 cellules de la ligne 9...

j'ai également un userForm qui s'affiche me permettant de saisir les valeurs que je veux dans la range ("A" & l & ":D" & l)

là pas tout compris... et vois pas trop le rapport avec le bouton...

Oui le code recopie le format et c'est ce que je veux.

Mais en fait, j'ai donc mon bouton qui fait deux choses :

1) il recopie le format

2) Il appelle un nouveau formulaire

Ce nouveau formulaire est composé de quatre champs que je remplis manuellement. Une fois remplis, je clique sur "OK", mon formulaire disparaît et mes données sont censées être enregistrées respectivement dans : A9, B9, C9 et D9 la première fois, La deuxième fois les données sont stockées dans A10, B10 etc...

J'ai écrit cette fonction :

Dim l As Long

Private Sub OKWPL_Click()
    Cells(l + 9, 1).Select 'Sélection à partir de la 9ème ligne
    Range("A" & l) = TextBox1.Value 'Stockage des données des Textboxs dans la cellule adéquate
    Range("B" & l) = TextBox2.Value
    Range("C" & l) = TextBox3.Value
    Range("D" & l) = TextBox4.Value
    l = l + 1 'passage à la ligne suivante
    Unload Me
End Sub

Mais elle ne fonctionne pas. Auriez-vous une idée?

Re,

en supposant que tu ais une ligne de titre, cela devrait faire l'affaire :

range("A65536").End(xlUp)(2) = TextBox1.Value

même punition pour les autres colonnes....

Waouh merci à toi !

J'aimerais tout de même ce que fait le code car je ne comprends pas trop pourquoi tu as écrit cela? Une explication ou deux?

Re,

on part de la ligne 65536 et on remonte pour trouver la première cellule non vide... le (2) pour préciser la cellule suivant par rapport à celle trouvée...

Un grand merci à toi !

Rechercher des sujets similaires à "ajouter ligne tant clic bouton"