CommandButton dans cellules suivante sur la même ligne

schedal1

XLDnaute Nouveau
Bonjour,

Je suis débutant en programmation VBA et j'ai déjà fait quelques petits fichiers pour mon plaisir mais je bute sur celui-là.
J'ai un UserForm avec deux CommandButton et je voudrais que lors du premiers clic sur un bouton la valeur s'affiche en A1. Puis lorsque je clic à nouveau sur un des deux la valeur s'affiche en B1. et ainsi de suite à chaque clic.
J'ai réussi à obtenir cette effet sur les colonnes avec les valeurs qui s'affichent en A1,A2, A3.... Mais par souci de lisibilité car les données sont relues par la suite je préférerais les lignes.

Alors est ce possible?

Merci par avance
 

Etienne2323

XLDnaute Impliqué
Re : CommandButton dans cellules suivante sur la même ligne

Salut schedal1,
tout d'abord, bienvenue sur le forum. Voici une possibilité pour répondre à ton besoin.

VB:
Option Explicit

Private Sub CommandButton1_Click()
Dim DL As Long
Dim Valeur

DL = Cells(65536, 1).End(xlUp).Row
If Cells(DL, 1).Value = "" Then
    DL = 1
Else
    DL = DL + 1
End If

Cells(DL, 1).Value = Valeur

End Sub

Cordialement,

Étienne

Edit : Salut tototiti :)
 

schedal1

XLDnaute Nouveau
Re : CommandButton dans cellules suivante sur la même ligne

En fait j'ai encore une question. Je voudrais finalement arrreter ma liste à la colonne Z, je mets donc dans le code de tototiti Z à la place de XFD1 mais par contre j'aimerais continuer ma liste à la ligne suivante donc continuer en B2 puis finir en Z2 et recommencer en B3... et ainsi de suite sans limite. En fait à chaque fois que j'arrive à la colonne Z j'aimerais continuer sur la ligne suivante.

Avez vous une idée. Merci par avance
 

tototiti2008

XLDnaute Barbatruc
Re : CommandButton dans cellules suivante sur la même ligne

Re,
Bonjour Etienne :)

En supposant qu'il n'y ait que ces données dans la feuille
à tester

Code:
Dim Lig As Long, Col As Long
    Lig = Range("A" & Rows.Count).End(xlUp).Row
    Col = Cells(Lig, Columns.Count).End(xlToLeft).Column + 1
    If Col > 26 Then
        Lig = Lig + 1
        Col = 1
    End If
    If Range("A1").Value = "" Then
        Range("A1").Value = "toto"
    Else
        Cells(Lig, Col).Value = "toto"
    End If
 

Discussions similaires

Statistiques des forums

Discussions
312 247
Messages
2 086 584
Membres
103 247
dernier inscrit
bottxok