Problème sur l'ajout d'une ligne dans un tableau
Bonjour à tous,
Commençant le VBA, je bloque sur l'ajout d'une ligne à l'enregistrement de mon formulaire. J'ai un tableau reprenant toutes les infos du formulaire, mais à l'enregistrement, au lieu de passer à la ligne suivante, il se remet sur la dernière ligne et efface donc le précédant ajout.
Auriez-vous une idée du problème ?
Ma première colonne étant en chiffre, je me demande si ce ne serait ça qui bloque. Mais je n'ai pas trouver quoi faire...
Voici le code en question :
Private Sub ButtonEnregistrer_Click()
'message pour que tout les champs soient remplis
If TBDate = "" Or TBNom = "" Or TBCodePostal = "" Or TBTel = "" Or TBMail = "" Or TBComp1 = "" Or TBComp2 = "" Or TBComp3 = "" Or TBDip1 = "" Or TBDip2 = "" Or TBComm = "" Or ComboBox1 = "" Then
MsgBox ("Merci de remplir tous les champs")
Else
Range("A9").Select
Selection.End(xlDown).Select ' position sur la première ligne non vide
Selection.Offset(1, 0).Select ' décale d'une ligne vers le bas
' indique où doivent être saisie les informations
ActiveCell = TBDate.Value
ActiveCell.Offset(0, 1).Value = TBNom
ActiveCell.Offset(0, 2).Value = TBCodePostal
ActiveCell.Offset(0, 3).Value = TBTel
ActiveCell.Offset(0, 4).Value = TBMail
ActiveCell.Offset(0, 5).Value = TBComp1
ActiveCell.Offset(0, 6).Value = TBComp2
ActiveCell.Offset(0, 7).Value = TBComp3
ActiveCell.Offset(0, 8).Value = TBDip1
ActiveCell.Offset(0, 9).Value = TBDip2
ActiveCell.Offset(0, 10).Value = ComboBox1 'Qualif
ActiveCell.Offset(0, 11).Value = TBComm
End If
End Sub
Merci d'avance pour le coup de pouce !
Bonjour Samath,
Essaye ça !
Private Sub ButtonEnregistrer_Click()
'message pour que tout les champs soient remplis
If TBDate = "" Or TBNom = "" Or TBCodePostal = "" Or TBTel = "" Or TBMail = "" Or TBComp1 = "" Or TBComp2 = "" Or TBComp3 = "" Or TBDip1 = "" Or TBDip2 = "" Or TBComm = "" Or ComboBox1 = "" Then
MsgBox ("Merci de remplir tous les champs")
Else
Dim L As Long
L = Range("A10000").End(xlUp).Row + 1
' indique où doivent être saisie les informations
Range("A" & L) = TBDate.Value
Range("B" & L).Value = TBNom
Range("C" & L).Value = TBCodePostal
Range("D" & L).Value = TBTel
Range("E" & L).Value = TBMail
Range("F" & L).Value = TBComp1
Range("G" & L).Value = TBComp2
Range("H" & L).Value = TBComp3
Range("I" & L).Value = TBDip1
Range("J" & L).Value = TBDip2
Range("K" & L).Value = ComboBox1 'Qualif
Range("L" & L).Value = TBComm
End If
End SubCordialement,
IB
Bonjour le fil, bonjour le forum,
En prenant le code du pote Iron, si tu veux partir de haut, remplace :
L = Range("A10000").End(xlUp).Row + 1par :
L = IIf(Range("A10").Value = "", 10, Range("A9").End(xlDown).Row + 1)Bonjour et merci à IronBoule et ThauThème pour vos réponses.
Le code fonctionne !
Si d'autres personnes passent par là, il y avait juste une petite inversion sur la première ligne de range:
Range("A" & L).Value = TBDate
et non
Range("A" & L) = TBDate.Value
Merci encore pour le sauvetage !!