Formulaire VBA et tableau vierge

Bonjour,

Est-ce que quelqu'un pourrait me dire pourquoi mon formulaire fonctionne bien SEULEMENT si j'ai deux lignes minmum avec des données inscrites dans mon tableau???

J'aimerais bien que la macro fonctionne avec un tableau vierge! Je vous laisse le codage:

Private Sub CommandButton1_Click()
'Saisie de la location dans la base de donnée
Dim ligne As Long
ligne = Sheets("Liste").[a2].End(xlDown).Row + 1

Sheets("Liste").Range("a" & ligne) = TextBox1_ND
Sheets("Liste").Range("b" & ligne) = TextBox2_NF
Sheets("Liste").Range("c" & ligne) = TextBox3_PR
Sheets("Liste").Range("d" & ligne) = CDate(TextBox4_DDN)
Sheets("Liste").Range("e" & ligne) = ComboBox1_REF
Sheets("Liste").Range("f" & ligne) = ComboBox2_RV
Sheets("Liste").Range("g" & ligne) = ComboBox3_CLASS
Sheets("Liste").Range("h" & ligne) = ComboBox4_PRIO
Sheets("Liste").Range("i" & ligne) = CDate(TextBox5_DRD)
Sheets("Liste").Range("k" & ligne) = CDate(TextBox6_CV)
Sheets("Liste").Range("l" & ligne) = CDate(TextBox7_BIO)
Sheets("Liste").Range("p" & ligne) = TextBox8_NOTES

If ComboBox4_PRIO.Value = 3 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 30, CDate(TextBox5_DRD))
End If

If ComboBox4_PRIO.Value = 4 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 90, CDate(TextBox5_DRD))
End If

If ComboBox4_PRIO.Value = 5 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 300, CDate(TextBox5_DRD))
End If

If ComboBox4_PRIO.Value = 6 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 360, CDate(TextBox5_DRD))
End If

If ComboBox4_PRIO.Value = 7 Then
Sheets("Liste").Range("j" & ligne) = DateAdd("d", 540, CDate(TextBox5_DRD))
End If

Unload Me
End Sub

Bonsoir

Un exemplaire anonymisé de votre fichier serait le bienvenu

Crdlt

image

Très simple comme tableau...C'est pour gérer une liste d'attente, tout simplement.

Bonjour, on ne voit pas les numéros de ligne sur l'image. cependant pourquoi commencer le calcul de la variable à partir de A2 ?

Si le tableau commence en sur la ligne 2 alors c'est A1 ..... +1

ligne = Sheets("Liste").[A1].End(xlDown).Row + 1

Si je mets A1, ça me donne erreur d'execution 1004!

Dans ce cas au lieu de partir du haut et de chercher la première ligne non vide.... on part du bas :

ligne = Sheets("Liste").Range("A65536").End(xlUp).Row + 1

ok merci beaucoup!!!!

Rechercher des sujets similaires à "formulaire vba tableau vierge"