Bonjour,
Pourquoi ne pas séparer les éléments ?
Une valeur (Le compteur) est une chose, la manière dont il est présenté (le format) en est une autre et pour combiner les deux, on utilisera la concaténation du compteur et du format choisi.
Exemple avec Excel où le compteur se trouve en cellule A1 et le format en cellule B1
Exemple simple
Exemple avec date formatée ne faisant apparaître que le mois de la date d'aujourd'hui
="Fact " & A1 & " " & TEXTE(AUJOURDHUI();"mmm")
Cette concaténation donnera Fact 1 nov.
Oui mais je souhaite que le mois en abrégé commence par une majuscule soit Fact 1 Nov
="Fact " & A1 & " " & NOMPROPRE(TEXTE(AUJOURDHUI();"mmm"))
Traduction en VBA.
Il suffit de lire la cellule où se trouve la formule qui formate mon numéro de facture
1 2 3 4 5
| Sub t()
Dim InvoiceNumberText As String
InvoiceNumberText = ThisWorkbook.Worksheets("Parameter").Range("B1").Value
MsgBox InvoiceNumberText
End Sub |
On aurait pu évidement simplifier le code par
MsgBox ThisWorkbook.Worksheets("Parameter").Range("B1").Value
ou encore mieux en nommant la cellule B1 par exemple (NumFactText)
MsgBox Range("NumFactText").Value
Avantage d'utiliser une cellule d'excel ayant la formule formatant le classeur plutôt que le traduire en VBA :
- Nombre de lignes de code limité
- Maintenance aisée sans toucher au code VBA
Reste maintenant à utiliser une fonction VBA pour incrémenter le compteur mais ça c'est une autre question.
Partager