Garder mise en forme d'une variable en concatenation sous VBA

  • Initiateur de la discussion Initiateur de la discussion toinou1
  • 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 !

toinou1

XLDnaute Nouveau
Bonjour,

Je suis en train de me faire un code VBA pour incrementer des numero uniques (references) a chaque nouvelle ligne d'une table.

Mon seul probleme vient du fait que le format de la reference doit etre du style :

FA-0058-2011

Cependant, meme en mettant en forme la cellule de base qui sert de variable, je n'arrive pas a reproduire cette mise en forme dans la concatenation en VBA.

Je me retrouve avec

FA-58-2011

Le code est ci dessous, et vous trouverez un fichier exemple en piece jointe.

Comme je suis un gros newbie de VBA, il existe peut etre qqchose de tout bete, je n ai rien trouve sur le net.

Sub test2()
Dim Invoice_Ref
Dim Year
Dim Month
Sheets("Sheet3").Select
Invoice_Ref = Range("C7")
Year = Range("D7")
Month = Left(Range("E7"), 3)
Sheets("Sheet2").Select
Range("Table2").Select
ActiveCell.Offset(0, 1).Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = "FA-" & Invoice_Ref & Year
Sheets("Sheet3").Select
Range("C7").Select
ActiveCell.Value = (ActiveCell.Value + 1)
Sheets("Sheet2").Select


End Sub


MERCI
 

Pièces jointes

Re : Garder mise en forme d'une variable en concatenation sous VBA

Bonjour,

petite remarque au passage, year et month sont déjà des fonctions natives de vba..; déconseillé de les utiliser compte nom de variable ou nom d'objet....

bonne soirée
@+
 
Re : Garder mise en forme d'une variable en concatenation sous VBA

Bonsoir,
peut-être comme ceci :
Code:
Sub test2()
Dim Invoice_Ref
Dim Year
Dim Month
Sheets("Sheet3").Select
Invoice_Ref = Range("C7")
Year = Range("D7")
Month = Left(Range("E7"), 3)
Sheets("Sheet2").Select
Range("Table2").Select
ActiveCell.Offset(0, 1).Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = "FA-" & Format(Invoice_Ref, "0000") & "-" & Year
Sheets("Sheet3").Select
Range("C7").Select
ActiveCell.Value = (ActiveCell.Value + 1)
Sheets("Sheet2").Select
End Sub
A+
Edit : bonsoir Philippe
 
- 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

Discussions similaires

Réponses
7
Affichages
732
Retour