VBA Syntaxe 35 18 5 devient 35 18 05

Bonjour à tous,

Dans une plage, chaque cellule contient 3 chiffres,

pour ceux < 10, j'ai besoin d'écrire 05 au lieu de 5 (par exemple)

exemple1:

remplacer 35 18 5

par 35 18 05

exemple2:

remplacer 27 3 48

par 27 03 48

exemple3:

remplacer 7 13 45

par 07 13 45

Je dois boucler sur cette plage

Quel serait le bon code, au moins pour une cellule ?

pour la boucle, je me débrouillerais.

Bonne journée

Claude.

édit: autre possibilité: 1 2 3 devient 01 02 03

bonjour à toi

sont-ce des nombres ne contenant pas d'espaces mais affichés avec une espace, ou bien du texte avec des espaces réelles ?

un truc du genre :

scinder en 3 colonnes grâce au séparateur "espace"

transformer en texte

tester si 1 caractère

si un chiffre ajouter un caractère zéro

re-combiner les 3 colonnes

re-transformer en nombre si nécessaire

ouf !

Bonjour jmd,

Ce sont de vrais espaces,

Fichier:

https://www.excel-pratique.com/~files/doc2/Doublons_Caract.xls

Voir macro "test" où je sèche

traiter une cellule me suffirait pour démarrer

merci

Claude.

re à toi

à défaut de VBA, je te donne une piste (voir les colonnes en blanc) en rajoutant un zéro là où il faut

je l'ai fait sur le 1er bloc de chiffres de la 1ere colonne, en décomposant la manoeuvre

https://www.excel-pratique.com/~files/doc2/Copie_de_Doublons_Caract.xls

à toi de le faire sur les 2 autres blocs de chiffres et sur toutes tes colonnes

(je peux te donner un nouveau coup de main)

ces colonnes que j'ai mises en blanc peuvent être déportées loin des colonnes de saisie

et au final, tu peux enregistrer une macro si tu as un travail répétitif

re,

merci jmd, cela me parait trop complexe à mettre en œuvre,

J'aurais plutôt vu quelque chose dans ce genre

https://www.excel-pratique.com/~files/doc2/Doublons_Caract2.xls

Je continue à chercher pour coder en VBA

bien que la solution soit de saisir des chiffres à deux caractères, comme je l'ai demandé

à "la meule" auteur du poste:

https://www.excel-pratique.com/forum/viewtopic.php?t=13947

encore merci

Amicalement

Claude.

Bonsoir,

une saisie à deux caractères obligatoires n'est nullement nécessaire...

un petit travail sur tableau vba, avec tri vba, couplé avec un split, voire un join, et ça devrait le faire.....

Bon courage

Bonjour cousinhub, Bonjour Nouméa,

C'est ce que je cherche à faire et ne désespère pas de trouver.

je continue de ronger mon os !

Amicalement

Claude.

bonjour,

une possibilité avec split :

Sub galopin()
Dim o As Range
On Error Resume Next
For Each o In Selection
Ln = Split(o)
For i = 0 To 2
Ln(i) = IIf(Ln(i) < 10, 0 & Ln(i), Ln(i))
Next
o = Ln(0) & " " & Ln(1) & " " & Ln(2)
Next
End Sub

A+

rien que des VBAistes

et bonjour à Bourg en Bresse (y avait grève des trains aujourd'hui )

10t1-v4-02.xlsm (281.83 Ko)

re forum,

galopin01, merci pour ton code

que j'ai mis en application sur ce poste:

https://www.excel-pratique.com/forum/viewtopic.php?t=13947

poste où il reste un problème !

celui-ci est résolu, merci à tous

Amicalement

Claude.

Rechercher des sujets similaires à "vba syntaxe devient"