Code VBA pour espacer nom/prénom/matricule

Résolu/Fermé
The_boss_68 Messages postés 925 Date d'inscription dimanche 15 novembre 2015 Statut Membre Dernière intervention 23 avril 2024 - 22 nov. 2015 à 20:26
The_boss_68 Messages postés 925 Date d'inscription dimanche 15 novembre 2015 Statut Membre Dernière intervention 23 avril 2024 - 23 nov. 2015 à 20:05
Bonjour à tous,

Dans une plage donnée ex: de A1 à A20 je recherche une petite macro me permettant d'automatiser un écart de 5 espaces entre le Nom le prénom et le matricule
Exemple: Durand-----François-----07524125
Ps: Les petits tirets représentent les espaces

Merci de votre aide

Cordialement



2 réponses

via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
Modifié par via55 le 22/11/2015 à 20:37
Bonjour

Pourquoi une macro pour si peu ? Tu peux facilement dans une colonne mettre en ligne 1 la formule
=SUBSTITUE(A1;" ";" ") et l'étirer vers le bas
Copier ensuite la plage de cette colonne et la coller en colonne A par collage spécial Valeurs uniquement

Cdlmnt
Via

"L'imagination est plus importante que le savoir." A. Einstein
0
Bonjour via55

Ok! ta formule est bonne, mais moi il me faut absolument un code vba pour faire fonctionner mon truc dans de bonne conditions, en fait j'utilise déjà une formule en décaler a ce niveau là, donc une formule en + pour moi serait ingérable
Merci de t'impliquer

Cordialement
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703 > The_boss_68
22 nov. 2015 à 21:01
Re

Alors il suffit d'appliquer la formule dans une macro à l'intérieur d'une boucle sur les lignes,
Exemple avec boucle sur les lignes 1 à 20
Sub espacer()
For n = 1 To 20
Range("A" & n) = Application.WorksheetFunction.Substitute(Range("A" & n), " ", "     ")
Next
End Sub


Cdlmnt
Via
0
The_boss_68 Messages postés 925 Date d'inscription dimanche 15 novembre 2015 Statut Membre Dernière intervention 23 avril 2024 174 > via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024
22 nov. 2015 à 21:17
Re

J'ai testé votre macro, effectivement elle fonctionne mais le problème je n'arrive pas à l'automatiser il faut que j'appuis chaque fois sur exécuter la macro, pour espacer les noms/prénoms/matricule, alors je ne sais pas pourquoi j'ai ce problème.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703 > The_boss_68 Messages postés 925 Date d'inscription dimanche 15 novembre 2015 Statut Membre Dernière intervention 23 avril 2024
Modifié par via55 le 22/11/2015 à 23:04
Re,

C'est normal
Pour l'automatiser il faut un fait déclencheur :
- un double-clic dans la cellule à modifier
- la modification d'une valeur dans une cellule
et en fonction de ce fait déclencheur mettre la macro appropriée non pas dans un module mais dans le worsheet de la feuille concernée

Il faut également déterminer quelle plage de cellule doit être concernée par la macro (pour qu'elle ne se déclenche pas dans d'autres lignes ou colonnes de la feuille)

Exemple de macro lors d'une entrée dans une cellule de la plage A1:A20
Private Sub Worksheet_Change(ByVal Target As Range)
' colonne autorisée pour modification
col = 1
' 1ere ligne autorisée pour modification
lig1 = 2
' dernière ligne autorisée pour modification
lig2 = 20
'nombre d'espaces dans la chaine de la cellule
nde = Len(Target.Value) - Len(Application.WorksheetFunction.Substitute(Target.Value, " ", ""))
' si valeur modifiée est dans bonne colonne et bonnes lignes et avec un nombre d' espace inférieur à 10 (sinon la modification s'applique en boucle infinie après le 1er changement)
If Target.Column = col And Target.Row >= lig1 And Target.Row <= lig2 And nde < 10 Then
Range("A" & Target.Row) = Application.WorksheetFunction.Substitute(Range("A" & Target.Row), " ", "     ")
End If
End Sub


Ouvrir editeur VBA - Double clic sur la feuille concernée dans l'arborescence à gauche - Copier-coller la macro dans la page blanche - Modifier si nécessaire les n°s de colonne et de lignes autorisées en début de macro
0
The_boss_68 Messages postés 925 Date d'inscription dimanche 15 novembre 2015 Statut Membre Dernière intervention 23 avril 2024 174
23 nov. 2015 à 20:05
Bonjour à tous

En fait je voulais remercier très sincèrement via55 pour son implication dans mon projet et le félicite pour sa macro qui fonctionne au top chez moi sur mon fichier.

Salutation

The_boss_68
0