Formulaire VBA

Bonjour à tous,

J'ai fais un fichier excel avec des formulaire qui remplissent les lignes sur les feuilles quand je clique sur le bouton nouveau. Cependant j'aimerais que lorsque je clique sur ce dernier et en plus d'ajouter les infos remplies dans le formulaire, cela ajoute sur la ligne correspondante a la colonne A un numéro automatique. j'ai cherche sur differents sites et forum mais rien de precis. Je fais donc appel a des connaisseurs.

Voici le code de mon bouton:

Private Sub CommandButton3_Click()

Dim L As Integer

If MsgBox("Etes-vous certain de vouloir INSERER ce nouveau contact ?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message

L = Sheets("Suivi2").Range("a65536").End(xlUp).Row + 1 'Permet de se positionner sur la dernière ligne de tableau NON VIDE

Sheets("Suivi2").Range("B" & L).Value = ComboBox1 'Insère la donnée de la liste déroulante dans la colonne A

Sheets("Suivi2").Range("C" & L).Value = TextBox1 'Insère la donnée de la textbox1 dans la colonne B

'et à suivre....

Sheets("Suivi2").Range("D" & L).Value = TextBox2

Sheets("Suivi2").Range("E" & L).Value = TextBox3

Sheets("Suivi2").Range("F" & L).Value = TextBox4

Sheets("Suivi2").Range("H" & L).Value = TextBox5

Sheets("Suivi2").Range("I" & L).Value = TextBox6

Sheets("Suivi2").Range("K" & L).Value = TextBox7

Sheets("Suivi2").Range("L" & L).Value = TextBox8

Sheets("Suivi2").Range("M" & L).Value = TextBox9

Sheets("Suivi2").Range("N" & L).Value = TextBox10

End If

' Affiche une boîte de message

MsgBox ("Conducteur inséré dans fichier sélectionné") 'Vous informant que le présent contact est insérer dans votre tableau Excel.

Unload Me ' Vide et ferme l'Userform ( formulaire)

UserForm2.Show 'Affiche le formulaire

End Sub

Si la ligne précédente est déjà rempli tu peux faire un truc du style

Sheets("Suivi2").Range("A" & L).Value = Sheets("Suivi2").Range("A" & L-1).Value + 1

Et si tu n'as rien sur la première ligne tu rajoute un petit test pour être sur que ca marche tout le temps du style

If L = 2 then               'J'imagine que ta première ligne est une ligne de titre
      Sheets("Suivi2").Range("A" & L).Value = 1
else
      Sheets("Suivi2").Range("A" & L).Value = Sheets("Suivi2").Range("A" & L-1).Value + 1
End If  

Et quand tu publie un code dans un message utilise la balise code, ca permet d'avoir un code plus facile à lire

A part ça y a moyen d'alleger ton code ! en utilisant Cells au lieu de range dans une boucle for

bonjour

avec numérotation

A+

Maurice

Private Sub CommandButton3_Click()
Dim L As Integer

If MsgBox("Etes-vous certain de vouloir INSERER ce nouveau contact ?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message
With Sheets("Suivi2")

L = .Range("a65536").End(xlUp).Row + 1 'Permet de se positionner sur la dernière ligne de tableau NON VIDE
.Range("A" & L).Value = Application.Max(.Columns(1)) + 1
.Range("B" & L).Value = ComboBox1 'Insère la donnée de la liste déroulante dans la colonne A
.Range("C" & L).Value = TextBox1 'Insère la donnée de la textbox1 dans la colonne B
'et à suivre....
.Range("D" & L).Value = TextBox2
.Range("E" & L).Value = TextBox3
.Range("F" & L).Value = TextBox4
.Range("H" & L).Value = TextBox5
.Range("I" & L).Value = TextBox6
.Range("K" & L).Value = TextBox7
.Range("L" & L).Value = TextBox8
.Range("M" & L).Value = TextBox9
.Range("N" & L).Value = TextBox10
End If
End With
' Affiche une boîte de message
MsgBox ("Conducteur inséré dans fichier sélectionné") 'Vous informant que le présent contact est insérer dans votre tableau Excel.
Unload Me ' Vide et ferme l'Userform ( formulaire)
UserForm2.Show 'Affiche le formulaire
End Sub

re

a oui pour le nombre de ligne pour être compatible sur toutes les version mettre:

L = .Range("A" & Rows.Count).End(xlUp).Row + 1

A+

Maurice

Ça fonctionne. Merci a tous depuis le temps que je galère avec ça.

Super.

Ok je cela va être fais. Merci encore

Rechercher des sujets similaires à "formulaire vba"