Formule pour dernière ligne
Ne pas oublier les points.
derLigne = [b].[/b]Range("A" & [b].[/b]Rows.Count).End(xlup).Row + 1Autre proposition :
derLigne = .Cells.Find("*",,,,xlbyrows,xlprevious).Row + 1thebenoit59 a écrit :Ne pas oublier les points.
derLigne = [b].[/b]Range("A" & [b].[/b]Rows.Count).End(xlup).Row + 1Autre proposition :
derLigne = .Cells.Find("*",,,,xlbyrows,xlprevious).Row + 1
Merci pour votre réponse, j'ai essayé et cela ne marche pas.
En capture d'écran la formule entière, peut-être qu'il faut rajouter quelque chose.
Ta dernière ligne n'est jamais utilisée.
Essaye pour la colonne A :
.Cells(derLigne, "A").value = TextBox1Bonjour,
Private Sub Button1_Click()
Dim derLigne As Long
With Sheets("BASE DE DONNEE")
derLigne = .Range("A" & .Rows.Count).End(xlUp).Row + 1derLigne est une variable...
Ton code est conçu pour un bouton de type ActiveX, renommé par toi "Button1" (puisque leur nom générique par défaut est "CommandButton") et être placé dans le module de la feuille où il se trouve.
Cette feuille devrait être autre que "BASE DE DONNEES" (dans la mesure où se référer à une feuille dans son propre module peut utiliser le mot-clé Me pour ce faire...)
Mettre la feuille de référence sous bloc With est une excellente façon de faire, mais il convient à la suite de raccorder les expressions qui le doivent à cet objet référent, à l'intérieur du bloc : soit placer un point devant .Range... de façon à cibler la colonne A de BASE DE DONNEES, et non de la feuille active, et accessoirement devant .Rows.Count (d'une importance relative car toutes les feuilles ont le même nombre de lignes... mais la précision accélèrera l'exécution).
Cordialement.
edit : Il se trouve donc dans un module de Userform, ce qui confirme bien l'interprétation...
Une image de ton code ne permet pas de l'utiliser : le copier et coller sous balise Code serait plus adéquat !
Une boucle serait plus rationnelle qu'une longue énumération, toujours fastidieuse...
thebenoit59 a écrit :Ta dernière ligne n'est jamais utilisée.
Essaye pour la colonne A :
.Cells(derLigne, "A").value = TextBox1
J'ai une erreur d’exécution 1004
Erreur définie par l'application ou par l'objet
Il faudrait avoir un fichier modèle pour voir d'où provient l'erreur.
MFerrand a écrit :Bonjour,
Private Sub Button1_Click() Dim derLigne As Long With Sheets("BASE DE DONNEE") derLigne = .Range("A" & .Rows.Count).End(xlUp).Row + 1derLigne est une variable...
Ton code est conçu pour un bouton de type ActiveX, renommé par toi "Button1" (puisque leur nom générique par défaut est "CommandButton") et être placé dans le module de la feuille où il se trouve.
Cette feuille devrait être autre que "BASE DE DONNEES" (dans la mesure où se référer à une feuille dans son propre module peut utiliser le mot-clé Me pour ce faire...)
Mettre la feuille de référence sous bloc With est une excellente façon de faire, mais il convient à la suite de raccorder les expressions qui le doivent à cet objet référent, à l'intérieur du bloc : soit placer un point devant .Range... de façon à cibler la colonne A de BASE DE DONNEES, et non de la feuille active, et accessoirement devant .Rows.Count (d'une importance relative car toutes les feuilles ont le même nombre de lignes... mais la précision accélèrera l'exécution).
Cordialement.
edit : Il se trouve donc dans un module de Userform, ce qui confirme bien l'interprétation...
Une image de ton code ne permet pas de l'utiliser : le copier et coller sous balise Code serait plus adéquat !
Une boucle serait plus rationnelle qu'une longue énumération, toujours fastidieuse...
Merci beaucoup pour ces explications.
Est-ce que Me dit se placer a la place de Sheets ?
Bien Cordialement
thebenoit59 a écrit :Il faudrait avoir un fichier modèle pour voir d'où provient l'erreur.
Le voici :
bonjour,
une proposition de correction
Private Sub Button1_Click()
Dim derLigne As Long
With Sheets("BASE DE DONNEE")
derLigne = .Range("A" & .Rows.Count).End(xlUp).Row + 1
.Range("A" & derLigne).Value = TextBox1
.Range("B" & derLigne).Value = TextBox2
.Range("C" & derLigne).Value = TextBox3
.Range("D" & derLigne).Value = TextBox4
.Range("E" & derLigne).Value = TextBox5
.Range("F" & derLigne).Value = TextBox6
.Range("G" & derLigne).Value = TextBox7
.Range("H" & derLigne).Value = TextBox8
.Range("I" & derLigne).Value = TextBox9
.Range("J" & derLigne).Value = TextBox10
.Range("K" & derLigne).Value = ComboBox1
.Range("L" & derLigne).Value = ComboBox2
.Range("M" & derLigne).Value = ComboBox3
.Range("N" & derLigne).Value = TextBox11
.Range("O" & derLigne).Value = TextBox12
.Range("P" & derligne).Value = TextBox13
End With
MsgBox ("ENREGISTRER")
Unload Me
End Subh2so4 a écrit :bonjour,
une proposition de correction
Private Sub Button1_Click() Dim derLigne As Long With Sheets("BASE DE DONNEE") derLigne = .Range("A" & .Rows.Count).End(xlUp).Row + 1 .Range("A" & derLigne).Value = TextBox1 .Range("B" & derLigne).Value = TextBox2 .Range("C" & derLigne).Value = TextBox3 .Range("D" & derLigne).Value = TextBox4 .Range("E" & derLigne).Value = TextBox5 .Range("F" & derLigne).Value = TextBox6 .Range("G" & derLigne).Value = TextBox7 .Range("H" & derLigne).Value = TextBox8 .Range("I" & derLigne).Value = TextBox9 .Range("J" & derLigne).Value = TextBox10 .Range("K" & derLigne).Value = ComboBox1 .Range("L" & derLigne).Value = ComboBox2 .Range("M" & derLigne).Value = ComboBox3 .Range("N" & derLigne).Value = TextBox11 .Range("O" & derLigne).Value = TextBox12 .Range("P" & derligne).Value = TextBox13 End With MsgBox ("ENREGISTRER") Unload Me End Sub
Merci beaucoup, c'est super
Bonne journée
