Incrémenter une chaine de caractère

Bonjour je souhaiterais incrémenter de 1 une chaine de caractère de type Q.A.AB.CD.01 (numéro chrono 01,02,03,.. )

merci

Bonjour,

Si VBA vous est autorisé :

Function ChaineIncrementee(ByVal ChaineAIncrementer As String) As String

Dim I As Integer, Numero As Integer
Dim TabChaine As Variant

    ChaineIncrementee = ""
    TabChaine = Split(ChaineAIncrementer, ".")
    Numero = CInt(TabChaine(UBound(TabChaine))) + 1
    For I = LBound(TabChaine) To UBound(TabChaine) - 1
        ChaineIncrementee = ChaineIncrementee & TabChaine(I) & "."
    Next I
    ChaineIncrementee = ChaineIncrementee & Format(Numero, "00")

End Function
capture

Bonjour,

Essayez ceci:

Cdlt

En voyant la réponse d'Eric (salut), je me dit que peut-être que je n'ai pas répondu de la bonne façon, alors dans le même style que la solution d'Eric, mais par formule, voici:

periquito

la formule en A2:

=GAUCHE(A1;10)& TEXTE((STXT(A1;11;NBCAR(A1)-10)*1)+1;"00")

Cdlt

Bonjour à tous !

Comment est formé le préfixe Q.A.AB.CD. ?

Si c'est le produit d'une concaténation, d'une saisie manuelle, pourriez-vous nous indiquer, via un fichier anonymisé mais représentatif le contexte ?

Bonsoir,

J'allais le dire !

image

@ bientôt

LouReeD

Bonjour à tous merci pour vos réponses je vous tiens informés cette semaine !

Merci à tous pour vos réponses et désolé pour avoir tardé...

En fait j'aurais dû commencer par là :

C'est un fichier que je dois créer pour incrémenter un numéro de devis (Q.IN.AAMM.XX) en fonction de devis déjà réalisés et archivés dans un autre onglet (on prendrai du coup le dernier chrono libre), je joins un xls de test

17test.xlsx (11.07 Ko)

Bonsoir,

votre fichier avec la solution simple énoncé plus haut par plusieurs intervenants : mise en forme personnalisée.
Il faudra peut-être gérer les anciens numéros, mais pour les nouveaux cela fonctionnera. Mais deux "digits" me semble faible pour des devis, non ?
S'il en faut plus pas grave, car si vous entrez 255 dans la cellule la numérotation passe sur trois digits.

@ bientôt

LouReeD

Bonjour le fil

@LouReeD, il est souvent mieux de lire la requête du demandeur dans le fichier

l'idée serait d'appuyer sur un bouton pour générer le numéro selon critères ci-dessus avec dernier chrono libre et de l'archiver en ligne

Et

image

De ce que je lis et ce que je connais de l'indentation des devis, voici un code

Sub NewDevis()
  Dim TabNom, sIni As String
  Dim OldAM As Integer, NewAM As Integer
  Dim OldNum As Integer, NewNum As Integer
  Dim sNumDev As String, sNewDev As String
  ' Récupérer les initiales du responsable
  TabNom = Split(Range("F12").Value, " ")
  sIni = Left(TabNom(0), 1) & Left(TabNom(1), 1)
  ' Récupérer le numéro de devis
  sNumDev = Range("F16")
  ' Récupérer AAMM
  OldAM = Mid(sNumDev, InStr(3, sNumDev, ".") + 1, 4)
  ' Récupérer le numéro
  OldNum = Right(sNumDev, 2)
  ' Définir AAMM
  NewAM = Format(Date, "YYMM")
  ' Vérifier si même période
  If OldAM = NewAM Then
    NewNum = OldNum + 1
  Else
    NewNum = "01"
  End If
  ' Nouveau devis
  sNewDev = "Q." & sIni & "." & NewAM & "." & Format(NewNum, "00")
  Range("F16").Value = sNewDev
End Sub

@Periquito,

1) plutôt que d'utiliser 2 lignes et fusionner des cellules pour avoir de la hauteur, mieux vaut augmenter la taille de la cellule

2) Votre énoncé initial (Q.A.AB.CD.01) n'a plus grand chose à voir avec le numéro (Q.IN.AAMM.XX) dans le fichier donné
Vous voudrez bien faire attention la prochaine fois SVP

A+

Merci pour vos réponses je vais tester rapidement

Bonsoir,

rapidement ? Je plaisante !
merci pour votre retour.

@ bientôt

LouReeD

Rechercher des sujets similaires à "incrementer chaine caractere"