Incrémentation référence VBA

  • Initiateur de la discussion Initiateur de la discussion FloFloM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

FloFloM

Guest
Bonjour,

Je souhaiterais incrémenter le numéro de référence à la suite d'une autre suite de références déjà existantes que je ne veux pas effacer car il faudrait enregistrer les 1500 lignes précédentes.

Je vous transmets donc un exemple où il est possible de créer une nouvelle référence à partir d'un userform.
Mon problème est que pour un premier enregistrement à partir de l'outil userform, le format référence redémarre à F001 alors qu'il devrait poursuivre la suite logique (F006, F007...).

Merci par avance pour vos propositions !
 
Une première solution :

VB:
Private Sub WriteRecord(ByVal RecordNumber As Long)
Dim i&, ref&
 ' Ecriture de l'enregistrement
 Me.cboMember.ListIndex = -1
 RecordNumber = RecordNumber + 1
 'Recherche de la nouvelle valeur de l'enregistrement.
 With Sheets("HISTORIQUE Global")
    i = 2
    Do While .Cells(i, "A").Value <> ""
        If Left(.Cells(i, "A").Value, 1) = "F" Then ref = Replace(.Cells(i, "A").Value, "F", "")
        i = i + 1
    Loop
End With
 With rng
  With .Cells(RecordNumber, 1)
     If Len(.Value) = 0 Then ' ID
      .Value = ref + 1
     End If
    .NumberFormat = "\F000" ' Format
  End With
 
Une première solution :

VB:
Private Sub WriteRecord(ByVal RecordNumber As Long)
Dim i&, ref&
' Ecriture de l'enregistrement
Me.cboMember.ListIndex = -1
RecordNumber = RecordNumber + 1
'Recherche de la nouvelle valeur de l'enregistrement.
With Sheets("HISTORIQUE Global")
    i = 2
    Do While .Cells(i, "A").Value <> ""
        If Left(.Cells(i, "A").Value, 1) = "F" Then ref = Replace(.Cells(i, "A").Value, "F", "")
        i = i + 1
    Loop
End With
With rng
  With .Cells(RecordNumber, 1)
     If Len(.Value) = 0 Then ' ID
      .Value = ref + 1
     End If
    .NumberFormat = "\F000" ' Format
  End With
Merci beaucoup, ça semble cohérent mais je l'insère où dans mes lignes de code ?
 
VB:
Private Sub WriteRecord(ByVal RecordNumber As Long)
Dim i&, ref&
' Ecriture de l'enregistrement
Me.cboMember.ListIndex = -1
RecordNumber = RecordNumber + 1
'Recherche de la nouvelle valeur de l'enregistrement.
With Sheets("HISTORIQUE Global")
    i = 2
   Do While .Cells(i, "A").Value <> ""
       If Left(.Cells(i, "A").Text, 1) = "F" Then ref = Replace(.Cells(i, "A").Value, "F", "")
        i = i + 1
   Loop
End With
With rng
 With .Cells(RecordNumber, 1)
     If Len(.Value) = 0 Then ' ID
      .Value = "F" & Format(ref + 1, "000")
     End If
 End With
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

F
  • Question Question
Réponses
0
Affichages
993
F
P
Réponses
0
Affichages
820
pin_electronic
P
M
Réponses
3
Affichages
1 K
MarcTer
M
T
Réponses
2
Affichages
705
T
A
Réponses
1
Affichages
1 K
Retour