XL 2016 Auto-incrementation d'une cellule

Don pépé

XLDnaute Occasionnel
Bien le bonjour

Alors je vous explique mon petit souci. vous allez me dire c'est pas bien compliquer mais comme je début en vb jai du mal.

alors jai creer un feuille qui me sert de bd comme ceci: id, civilite, nom, prenom ...
quand je rempli mon userform je vousdrais que sa incrémente la cellule id de +1 a chaque ajout dans la bd

merci d'avance pour votre aide ;)

Edit: mon code resemble a sa:
VB:
'Insertion des veleurs sur la feuille
    Cells(no_ligne, 1) = +1
    Cells(no_ligne, 2) = civilite
    Cells(no_ligne, 3) = TextBox_nom.Value
    Cells(no_ligne, 4) = TextBox_prenom.Value
    Cells(no_ligne, 5) = TextBox_adresse.Value
    Cells(no_ligne, 6) = TextBox_cp.Value
    Cells(no_ligne, 7) = TextBox_ville.Value
    Cells(no_ligne, 8) = TextBox_mail.Value
    Cells(no_ligne, 9) = TextBox_telephone.Value
 

Jacky67

XLDnaute Barbatruc
quand je rempli mon userform je vousdrais que sa incrémente la cellule id de +1 a chaque ajout dans la bd

Bonjour,
Ceci attribué au bouton de validation de l'userform
Code:
Dim no_ligne As Long
With Sheets("feuil1") '  adapter le nom de la feuille
no_ligne = 1 ' n° de départ, si la feuille est vide
On Error Resume Next
'recherche la première ligne vide disponible
no_ligne = .Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
On Error GoTo 0
.Cells(no_ligne, 2) = civilite 'attention si civilite n'est pas une variable il manque les guillemets "civilite"
.Cells(no_ligne, 3) = TextBox_nom.Value
'-----
'-------
End With
 

Joël GARBE

XLDnaute Nouveau
à quel endroit se situe le code ? Quand se déclenche-t-il ?

Pas uniquement quand tu "remplis" le UserForm !

Pas trop l'habitude de faire cela, mais si tu veux jeter un oeil sur une séries de tuto, dont celui qui explique comment envoyer des données d'un formulaire dans la base de données... Je pense que cela vaut la peine d'y passe un peu de temps pour bien comprendre la logique...
http://garbe.joel.free.fr/automatisation.htm#Automatisation12
 

Joël GARBE

XLDnaute Nouveau
OK,

dans ton exemple, si tu mets directement

Cells(no_ligne, 1) = no_ligne - 1

tu auras ce que tu veux (à condition de ne pas supprimer de ligne dans ta base,

Sinon, je pense que dans ton cas, cela vaut la peine que tu passes du temps sur mes tutos, car cela correspond de très près à ce que tu veux faire, et pas uniquement en y restant 5 minutes... se former demande du temps
(ce que j'en dis ne regarde que moi en passant:D)

Mais n'hésite pas à requestionner tout de même si pas encore clair pour toi...
 

Lone-wolf

XLDnaute Barbatruc
Bonjour à tous :)

Si j'ai bien compris, tu voudrais avoir ceci dans la colonne A
ligne 2 = 1
ligne 3 = 2
ligne4 = 3

Si cest ça alors

VB:
With Feuil1
lig = .Cells(rows.count, 1).End(xlup).row + 1
.Cells(lig, 1) = lig -1

'Si tu veux = 2 - 3 - 4
.Cells(lig, 1) = lig

'Si tu veux = 3 - 4 - 5
.Cells(lig, 1) = lig +1
End With
'------------------------------
Private Sub UserForm_Activate()
Dim bouton_civilite As Control

For Each bouton_civilite In Frame_civilite.Controls
  bouton_civilite.Value = ""
  Next
End Sub

Private Sub Ajouter_Click()
Dim no_ligne As Long, bouton_civilite As Control
Static civilite As String

'Choix de la civilité
  For Each bouton_civilite In Frame_civilite.Controls
  If bouton_civilite.Value Then
  civilite = bouton_civilite.Caption
  End If
  Next
  
  With Feuil1
  'no_ligne = N° de la ligne de la dernière cellule non vide de la colone +1
  no_ligne = .Cells(Rows.Count, 1).End(xlUp).Row + 1
  'Insertion des valeurs sur la feuille
  .Cells(no_ligne, 1) = no_ligne - 1
  .Cells(no_ligne, 2) = civilite
  End With
End Sub
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Dom pépé

le format code postal est érroné, 33000 Paris par exemple n'est pas 033000. Donc, aligne à droite les textboxs numériques, ensuite format personnalisé colonne code postal 0, téléphone format standart. Dans le code du boton

Cells(no_ligne, 9) = TextBox_telephone.Value
Cells(no_ligne, 9).NumberFormat = "000 000 00 00" à modifier si besoin.