Cherche une Macro excel : casse tete

benny -  
 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,
A voir également:

1 réponse

Utilisateur anonyme
 
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 ?
0