Incrémenter une référence dans un formulaire Excel

Bonsoir à Tous,

je sais que le sujet à déjà été traité dans plusieurs forum mais je n'arrive pas a trouvé la bonne solution.

dans le fichier ci joint j'ai un formulaire et je souhaiterai qu'a son ouverture il incrémente automatiquement la référence qui se trouve en "A2" dans la TextBoxAff ( N° Aff) .

En effet, après l’insertion des données dans la feuille GAZ 33, il y a un tri qui vient mettre la ligne qui vient de se crée en ligne 2 et donc la dernière référence est toujours en "A2".

en espérant votre aide

Bonne soirée

Francis

23incrementation.xlsm (23.87 Ko)

Salut fmas,

Private Sub UserForm_Initialize()
'
Dim sItem$
'
sItem = Worksheets("GAZ 33").[A2]
Me.TextBoxAff.Text = Replace(Left(sItem, 4) & CStr(Val(Right(sItem, 5)) + 0.01), ",", ".")
'
End Sub

A+

Merci beaucoup Curulis57

impeccable. 3 jours que je cherchais!!!

puis je abuser, ce n'est pas dans le sujet mais je viens de m’apercevoir que j'ai une erreur dans la MsgBox.

Après avoir cliqué sur le bouton j'ai la MsgBox qui monte, si je clique sur oui, tout se passe bien mais si je clique sur NON, j'ai le message suivant " erreur 1004, la méthode 'range' de l'objet '_Global' a échoué et cette ligne se met en jaune;

" Range("A" & L).Value = TextBoxAff ' N° aff"

il doit manquer qq chose dans la procédure du Msg mais je n'arrive pas à trouver.

Private Sub BtCreer_Click()
    Dim L As Integer
    If MsgBox("Confirmez-vous l'insertion de ce nouveau dossier ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
    L = Sheets("GAZ 33").Range("A" & Rows.Count).End(xlUp).Row + 1
    End If

'Pour placer le nouvel enregistrement à la première ligne non vide du tableau
        Range("A" & L).Value = TextBoxAff            ' N° aff
        Range("B" & L).Value = TextBoxClient         ' Client
        Range("C" & L).Value = TextBoxTelBu         ' tel bureau
        Range("D" & L).Value = TextBoxVille          ' Ville

     Dim j As Long
     Dim i As Integer
        Set Ws = Sheets("GAZ 33")   ' correspond au nom de l'onglet dans le fichier excel
     With Me.TextBoxAff
        For j = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
        Next j

' Trie sur la colonne A (Cells 2,1) ou A2
    Dim x As Integer
    x = Cells(2, 1).End(xlDown).Row
    Range("A2:N" & x).Select
                'Mettre Ascending pour ordre A à Z et Descending pour ordre Z à A
        Selection.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
' Efface les donnée de la feuille formulaire
        Unload Me
        Unload UserForm1
        Sheets("Boutons").Select

     End With

End Sub

en te remerciant par avance et te souhaitant une bonne journée

Salut fmas,

Private Sub BtCreer_Click()
'
Dim L%
'
If MsgBox("Confirmez-vous l'insertion de ce nouveau dossier ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
    With Sheets("GAZ 33")
        L = .Range("A" & Rows.Count).End(xlUp).Row + 1
        'Pour placer le nouvel enregistrement à la première ligne non vide du tableau
        .Range("A" & L).Value = Me.TextBoxAff.Text            ' N° aff
        .Range("B" & L).Value = Me.TextBoxClient.Text         ' Client
        .Range("C" & L).Value = Me.TextBoxTelBu.Text         ' tel bureau
        .Range("D" & L).Value = Me.TextBoxVille.Text          ' Ville
        ' Trie sur la colonne A (Cells 2,1) ou A2
        'Mettre Ascending pour ordre A à Z et Descending pour ordre Z à A
        .Range("A2:N" & L).Sort Key1:=.Range("A2"), Order1:=xlDescending, Orientation:=xlTopToBottom
    End With
End If
' Efface les donnée de la feuille formulaire
Unload UsfForm1
Worksheets("Boutons").Activate
'
End Sub

A+

encore MERCI pour tes 2 réponses.

j'ai vérifié l'incrémentation un peu plus loin et je rencontre un problème à partir du passage de .09

voici le résultat:

N Aff ordre de saisie

2Q9B99.1 6

2Q9B99.09 5

2Q9B99.08 4

2Q9B99.07 3

2Q9B99.06 2

2Q9B99.05 1

2Q9B99.04 0 point de départ

2Q9B0.01 7

2Q9B0.01 8

après le 2Q9B99.09; il passe à 2Q9B99.1 puis à 2Q9B0.01 et naturellement reste bloqué à ce chiffre puis la cellule A2 est toujours la même 2Q9B99.1

d'autre part, si je souhaite passer à 3 chiffre apres le . je remplace ta formule

Me.TextBoxAff.Text = Replace(Left(sItem, 4) & CStr(Val(Right(sItem, 5)) + 0.01), ",", ".")

par celle ci ?

Me.TextBoxAff.Text = Replace(Left(sItem, 5) & CStr(Val(Right(sItem, 5)) + 0.001), ",", ".")

?

le code doit 2Q9B99 reste fixe.

bonne journée

Salut fmas,

oops, je n'avais pas poussé les tests très loin, dirait-on...

Pour deux "décimales"...

sItem = Worksheets("GAZ 33").[A2]
Me.TextBoxAff.Text = Replace(Left(sItem, 4) & Format(CStr(Val(Right(sItem, 5)) + 0.01), "00.00"), ",", ".")

Pour 3 "décimales"...

sItem = Worksheets("GAZ 33").[A2]
Me.TextBoxAff.Text = Replace(Left(sItem, 4) & Format(CStr(Val(Right(sItem, 6)) + 0.001), "00.000"), ",", ".")

MAIS, ATTENTION, quand tu voudras changer de système, tu DEVRAS créer toi-même, manuellement le n° du premier dossier.

Ex : de 2Q9B99.04, créer 2Q9B99.041

A+

MERCI Curulis57,

Impécable.

ok pour faire la modif en cas de passage à 3 décimales.

Rechercher des sujets similaires à "incrementer reference formulaire"