Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

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)

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.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…