Code VBA pour espacer nom/prénom/matricule
Résolu
The_boss_68
Messages postés
959
Date d'inscription
Statut
Membre
Dernière intervention
-
The_boss_68 Messages postés 959 Date d'inscription Statut Membre Dernière intervention -
The_boss_68 Messages postés 959 Date d'inscription Statut Membre Dernière intervention -
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
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
-
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-
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- 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:A20Private 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
-
-
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