|
|
|
|
[VBA excel] nombre de caractères
Dernière réponse le 16 jui 2007 à 14:53:42 schont, le 12 jui 2007 à 09:24:09Bonjour,
Je voudrais générer via excel des codes à 12 chiffres ni plus ni moins. Le code à 12 chiffres est composé de plusieurs valeurs ajoutées à la suite : dans la cellule du code j'utilise la fontion "=concatener(...)" qui reprend les informations de plusieurs autres cellules (n° de dossier, référence produit, n° client) le problème est que les chiffres qui composent ces informations varient de 3 à 5 caractères chacun quand tout va bien j'ai 12 chiffres pour mon code sinon j'en ai 9 ou 15 ...
L'idée serait qu'un code en vba réajuste le tout lorsqu'il n'y a pas assez de chiffres il complète avec des "0" et quand il y en a trop il supprime les derniers pour arriver à 12.
Je ne m'y connais pas trop en VB donc si quelqu'un peut m'aider ...
Merci
Configuration: Windows XP Internet Explorer 6.0
Bonjour Schont,
Sub Macro1()
MacroFormatCode "A1", "A2", "A3", "B1"
' A1, A2 et A3 contiennent les codes, B1 le résultat sur 12 chiffres
End Sub
Sub MacroFormatCode(Cell1 As String, Cell2 As String, Cell3 As String, CellR As String)
' Cell1=cellule contenant le 1er code
' Cell2=cellule contenant le 2àme code
' Cell3=cellule contenant le 3ème code
' CellR=cellule contenant le code à 12 chiffres
Dim Code As String
' Concaténation du code
Code = Range(Cell1) & Range(Cell2) & Range(Cell3)
' Mise au format texte de la cellule du code
Range("b1").NumberFormat = "@"
' Définit le code en fonction de sa longueur
Select Case Len(Code)
Case Is < 13
Range(CellR) = Format(Code, "000000000000")
Case Else
Range(CellR) = Left$(Code, 12)
End Select
End Sub
Cordialement. Papou |
Répondre à schont
|
Merci ca marche très bien, mais (oui je sais ya toujours un "mais" avec moi ...) je dois utiliser ce code pour de nombreux produits et donc l'utiliser sur de nombreuses lignes, je suis débutant en macro donc si j'utilise mal le code il faut me le dire : actuellement je copie la macro dans Visual Basic je modifie les cellules par celles que j'utilise par exemple A3, B3, C3 pour les infos et D3 pour le résultat, je met une petite icone au bout de chaque ligne et je lui affecte la macro puis je clique et hop ca marche.
|

