[Macro Excel] Modification massive
Résolu
Seb
-
Seb -
Seb -
Bonjour,
J'ai un document excel de 1 colonne / 300 lignes (contenant plusieurs centaines de profils comme la ligne ci-dessous) ou je dois réussir à passer de ce type de ligne:
à celui-là:
En bidouillant, j'ai trouvé quelques solutions (via l'outil remplacer d'Excel)
Comme remplacer OU=UOpromo10,OU=ETUDIANTS par OU=UOpromo10 et ce pour d'autres trucs sur ma ligne
Mais le truc que j'arrive pas à faire c'est rajouter à la fin de chaque cellule du tableau: ,user,544
Et j'ai cru comprendre qu'il existait des Macros Excel pour me faciliter la vie, le problème c'est que je vois pas trop quoi rentrer dedans :o
J'ai un document excel de 1 colonne / 300 lignes (contenant plusieurs centaines de profils comme la ligne ci-dessous) ou je dois réussir à passer de ce type de ligne:
CN=genseb2,OU=UOpromo10,OU=ETUDIANTS,DC=gtr,DC=iut-gtr,DC=univ-mrs,DC=fr,genseb2,genseb2,,genseb2,\\\\mustang\\profils-promo10\\genseb2
à celui-là:
"CN=genseb2,OU=UOpromo10,DC=domain,DC=local",genseb2,genseb2,,genseb2,\\\\mustang\\profils-promo10\\genseb2,user,544
En bidouillant, j'ai trouvé quelques solutions (via l'outil remplacer d'Excel)
Comme remplacer OU=UOpromo10,OU=ETUDIANTS par OU=UOpromo10 et ce pour d'autres trucs sur ma ligne
Mais le truc que j'arrive pas à faire c'est rajouter à la fin de chaque cellule du tableau: ,user,544
Et j'ai cru comprendre qu'il existait des Macros Excel pour me faciliter la vie, le problème c'est que je vois pas trop quoi rentrer dedans :o
A voir également:
- [Macro Excel] Modification massive
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Suivi de modification word - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
7 réponses
Bonjour,
Pas besoin de macro pour cela. Supposons que tes "données" soient en colonne A, de A1 à A300, en B1 écris :
=A1 & " ,user,544 "
Formule que tu peux incrémenter vers le bas (placer la souris dans le coin inférieur droit de la cellule, cliquer lorsque l'on a le petit +, et, en maintenant le clic gauche enfoncé, "glisser" vers le bas.).
Après tu peux copier/collage spécial "valeurs" ta colonne B en Colonne A et effacer ta colonne B...
Pas besoin de macro pour cela. Supposons que tes "données" soient en colonne A, de A1 à A300, en B1 écris :
=A1 & " ,user,544 "
Formule que tu peux incrémenter vers le bas (placer la souris dans le coin inférieur droit de la cellule, cliquer lorsque l'on a le petit +, et, en maintenant le clic gauche enfoncé, "glisser" vers le bas.).
Après tu peux copier/collage spécial "valeurs" ta colonne B en Colonne A et effacer ta colonne B...
Et y'aurait pas moyen de mettre TOUT ca dans une macro?! :o
Une macro qui permettrait donc de faire:
- Remplacement de plusieurs partie du texte
- Création d'une cellule B1 de type:
- Duplication de la case B1 jusqu'en B300
Mon but final est d'avoir le moins possible d'opération à effectuer, l'idéal est de n'avoir qu'à lancer une macro :]
Une macro qui permettrait donc de faire:
- Remplacement de plusieurs partie du texte
- Création d'une cellule B1 de type:
=A1 & " ,user,544 "
- Duplication de la case B1 jusqu'en B300
Mon but final est d'avoir le moins possible d'opération à effectuer, l'idéal est de n'avoir qu'à lancer une macro :]
Salut,
Alors par macro pas besoin de passer par la colonne B :
A placer dans un module :
Alors par macro pas besoin de passer par la colonne B :
A placer dans un module :
Sub ajout_user544() Dim i As Integer, For i = 1 to 300 'de la ligne 1 à 300 ça tu modifies comme tu veux Cells(i ,1).Value = Cells(i, 1).Value & " ,user,544 " Next i End Sub
Merci!
Tu entends quoi par module? :o
Et tu saurais quelle est la syntaxe à adopter pour remplacer du texte?
Tu entends quoi par module? :o
Et tu saurais quelle est la syntaxe à adopter pour remplacer du texte?
Salut,
Insérer un module : Dans la feuille concernée par la macro, taper ALT + F11, dans la fenêtre visual basic : Insérer/module. Dans la fenêtre qui apparaît alors copier/colle rle code et refermer. Pour utiliser la procédure : ALT + F8 sélectionner 'ajout_user544" et exécuter.
Syntaxe pour remplacer un texte? Oui ok, mais remplacer quoi par quoi?
Insérer un module : Dans la feuille concernée par la macro, taper ALT + F11, dans la fenêtre visual basic : Insérer/module. Dans la fenêtre qui apparaît alors copier/colle rle code et refermer. Pour utiliser la procédure : ALT + F8 sélectionner 'ajout_user544" et exécuter.
Syntaxe pour remplacer un texte? Oui ok, mais remplacer quoi par quoi?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ah merci!
Pour remplacer:
et
Pour remplacer:
OU=UOpromo10,OU=ETUDIANTSpar
OU=UOpromo10
et
CN=genseb2par
"CN=genseb2
Tu peux utiliser la fonction Replace (ce que tu faisais avec Edition/remplacer) comme suit :
ActiveCell.Replace What="OU=UOpromo10,OU=ETUDIANTS", Replacement:="OU=UOpromo10"
par contre pour l'ajout d'une apostrophe, c'est plus délicat. Il faut procéder comme ceci :
Dim apost As String
apost = """"
ActiveCell.Replace What:="CN=genseb2", Replacement:=apost & " CN=genseb2"
ActiveCell.Replace What="OU=UOpromo10,OU=ETUDIANTS", Replacement:="OU=UOpromo10"
par contre pour l'ajout d'une apostrophe, c'est plus délicat. Il faut procéder comme ceci :
Dim apost As String
apost = """"
ActiveCell.Replace What:="CN=genseb2", Replacement:=apost & " CN=genseb2"
En bidouillant un peu j'ai fini par faire ca :]
Tu peux me dire si mes commentaires sont correctes ou si tu vois des modifications à apporter? :o
En tous cas merci, tout marche niquel et c'est vraiment puissant!
Sub Modification() Dim i As Integer ' Déclaration de la variable i en tant que chiffre Dim Ajout As String ' Déclaration de la variable Ajout en tant que chaine de caractère Dim apost As String Ajout = ",objectClass,UserAccountControl" ' Définition de la variable Ajout apost = """" Range("A1").Select ' Sélection de la case A1 ActiveCell.Value = ActiveCell.Value & Ajout ' Concaténation de ce qui est déjà présent dans la cellule avec la variable Ajout For i = 2 To 713 ' Boucle sélectionnant la ligne 2 à la ligne 713 Cells(i, 1).Value = Cells(i, 1).Value & ",user,544" ' Concaténation Cells(i, 1).Value = apost & Cells(i, 1).Value Cells(i, 1).Replace What:="OU=UOpromo10,OU=ETUDIANTS", Replacement:="OU=UOpromo10" ' Remplacement de texte Cells(i, 1).Replace What:="DC=gtr,DC=iut-gtr,DC=univ-mrs,DC=fr", Replacement:="DC=domain,DC=local" & apost Next i ' Fin de la boucle End Sub
Tu peux me dire si mes commentaires sont correctes ou si tu vois des modifications à apporter? :o
En tous cas merci, tout marche niquel et c'est vraiment puissant!