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

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

  • essaisgrop.xlsm
    19.2 KB · Affichages: 107

Pierrot93

XLDnaute Barbatruc
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
@+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Garder mise en forme d'une variable en concatenation sous VBA

Re,

il est possible également de remplacer les 4 dernières lignes de code par celle-ci:
Sheets("Sheet3").[C7] = Sheets("Sheet3").[C7] + 1

à+
Philippe
 

david84

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

Discussions similaires

Réponses
2
Affichages
934

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 153
dernier inscrit
SamirN