Incrémentation référence VBA

FloFloM

XLDnaute Nouveau
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 !
 

thebenoit59

XLDnaute Accro
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
 

FloFloM

XLDnaute Nouveau
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 ?
 

thebenoit59

XLDnaute Accro
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
 

Discussions similaires

Réponses
0
Affichages
823

Statistiques des forums

Discussions
312 159
Messages
2 085 836
Membres
102 998
dernier inscrit
billABDELL