Cherche une Macro excel : casse tete
benny
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Mon problème est le suivant. J'ai un fichier excel dont les données se presentent de la manière suivante:
009 00
10
11
12
007 12
23
24
35
87
Et voici comment je voudrais que les donnees soient presentées:
000900
000910
000911
000912
000913
000712
000723
000724
000735
000787
Il faudrait également supprimer systematiquement l'espace 009 00 => 00900=> et rajouter systematiquement un 0 devant
=>000900
Merci d'avance mes amis.
Cordialement,
Mon problème est le suivant. J'ai un fichier excel dont les données se presentent de la manière suivante:
009 00
10
11
12
007 12
23
24
35
87
Et voici comment je voudrais que les donnees soient presentées:
000900
000910
000911
000912
000913
000712
000723
000724
000735
000787
Il faudrait également supprimer systematiquement l'espace 009 00 => 00900=> et rajouter systematiquement un 0 devant
=>000900
Merci d'avance mes amis.
Cordialement,
A voir également:
- Cherche une Macro excel : casse tete
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
1 réponse
Bonjour Benny,
Pour ton casse-tête, voici une solution qui consiste à :
- parcourir tes cellules (en colonne)
- Mesurer le nombe de caractères,
- Si le nombre de caractères est sup à 3, on retient les 3 premiers, puis on met en forme la cellule
- Si le nombre est inf ou égal à trois, on met les caractères retenus, puis la suite mise en forme.
Attention : pour que ça marche, la première cellule visitée doit être de type 009 00, ou 009 12...
En code, ça donne ça :
Private Sub CommandButton1_Click()
Dim Adr As String
Dim EnTête As String
Dim It As Long
For It = 1 To 10000 '(Mettre à la place de 10000 le nombre de lignes à mettre en forme)
Adr = "A" & It '(Mettre à la place de A la colonne à mettre en forme)
Select Case Len(Range(Adr).Value)
Case 0
Exit For 'sort de la procédure si rencontre une cellule vide
Case Is > 3
EnTête = Left(Range(Adr).Value, 3) 'retient l'en-tête
End Select
Range(Adr).Value = "'0" & EnTête & Right(Range(Adr).Value, 2)
Next It
End Sub
Pas trop casse-tête, non ?
Pour ton casse-tête, voici une solution qui consiste à :
- parcourir tes cellules (en colonne)
- Mesurer le nombe de caractères,
- Si le nombre de caractères est sup à 3, on retient les 3 premiers, puis on met en forme la cellule
- Si le nombre est inf ou égal à trois, on met les caractères retenus, puis la suite mise en forme.
Attention : pour que ça marche, la première cellule visitée doit être de type 009 00, ou 009 12...
En code, ça donne ça :
Private Sub CommandButton1_Click()
Dim Adr As String
Dim EnTête As String
Dim It As Long
For It = 1 To 10000 '(Mettre à la place de 10000 le nombre de lignes à mettre en forme)
Adr = "A" & It '(Mettre à la place de A la colonne à mettre en forme)
Select Case Len(Range(Adr).Value)
Case 0
Exit For 'sort de la procédure si rencontre une cellule vide
Case Is > 3
EnTête = Left(Range(Adr).Value, 3) 'retient l'en-tête
End Select
Range(Adr).Value = "'0" & EnTête & Right(Range(Adr).Value, 2)
Next It
End Sub
Pas trop casse-tête, non ?