Commande "range"

Résolu
Émilie -  
 Émilie -
Bonjour,
Dans une cellule excel ou j'ai un numéro de facture que je veux incrémenter à chaque ouverture j'ai mis dans VBA la prog suivante :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

Le problème maintenant est que je voudrais rajouter des lettres. Exemple mon numéro de facture pourrait être ABCD20080001. Il faudrait à ce moment que puisse extraire les quatres derniers chiffres auxquels je rajouterais la valeur 1 à chaque ouverture (comme "droite" dans excel). Est-ce que quelqu'un peut m'aider. Merci
A voir également:

1 réponse

amigo
 
Bonjour,

Remplace ta procédure par la suivante. Il faut que les quatre derniers caractères soit obligatoirement des chiffres.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
Dim facture As String, numero As String, N As Integer
    facture = Range("no_facture").Value 'initialiser facture
    N = Val(Right(facture, 4)) 'convertir 4 derniers caractères en nombre
    N = N + 1 + 10000 'ajouter 10000 pour avoir un nombre à 5 chiffres
   numero = Right(Str(N), 4) 'récuperer les 4 deriners chiffres
   facture = Left(facture, Len(facture) - 4) & numero 'recomposer facture
   Range("no_facture").Value = facture
End Sub


A+.
0
Émilie
 
Bonjour Amigo. Tout a fonctionné comme voulu. Bonne journée.
0