Un petit programme sous excel
Résolu
Qhes
Messages postés
180
Statut
Membre
-
Qhes Messages postés 180 Statut Membre -
Qhes Messages postés 180 Statut Membre -
Bonjour,
Je ne suis pas douée du tout en informatique. Je viens tout juste d'apprendre qu'il y avait des choses nommées macro pouvant réaliser des programme sous excel.
Je ne savais pas avant ce matin ni que ca existait ni que votre forum existait...
j'ai une liste de 15 000 lignes sous excel
en colonne A il y a un code a 9 caractère (qu'on va nommer code A)
en colonne B il y a un autres code a 6 ou 8 caractère (qu'on va nommer code B)
Le code de la colonne a peut etre répété deux ou trois fois avec des code en colonne B diférents.
Le truc qui serait vraiment génial ca serait que dès qu'il y a deux code A et A1
dans la colonne B correspondant on ajoute un alt+esp et qu'on ecrive le code B1 en dessous du code B ou vice versa.
Exemple :
A06200119 - ZUA035
A06200119 - ZUA036
A06200121 - ZUA037
A06200122 - ZUA038
A06200122 - ZUA045
A06200125 - ZUA055
A06200125 - ZUA065
A06200126 - ZUA066
Ca devrait donner :
A06200119 - ZUA035
- ZUA036
A06200121 - ZUA037
A06200122 - ZUA038
- ZUA045
A06200125 - ZUA055
- ZUA065
A06200126 - ZUA066
Je ne suis pas douée du tout en informatique. Je viens tout juste d'apprendre qu'il y avait des choses nommées macro pouvant réaliser des programme sous excel.
Je ne savais pas avant ce matin ni que ca existait ni que votre forum existait...
j'ai une liste de 15 000 lignes sous excel
en colonne A il y a un code a 9 caractère (qu'on va nommer code A)
en colonne B il y a un autres code a 6 ou 8 caractère (qu'on va nommer code B)
Le code de la colonne a peut etre répété deux ou trois fois avec des code en colonne B diférents.
Le truc qui serait vraiment génial ca serait que dès qu'il y a deux code A et A1
dans la colonne B correspondant on ajoute un alt+esp et qu'on ecrive le code B1 en dessous du code B ou vice versa.
Exemple :
A06200119 - ZUA035
A06200119 - ZUA036
A06200121 - ZUA037
A06200122 - ZUA038
A06200122 - ZUA045
A06200125 - ZUA055
A06200125 - ZUA065
A06200126 - ZUA066
Ca devrait donner :
A06200119 - ZUA035
- ZUA036
A06200121 - ZUA037
A06200122 - ZUA038
- ZUA045
A06200125 - ZUA055
- ZUA065
A06200126 - ZUA066
Configuration: Windows XP Internet Explorer 6.0
6 réponses
-
bonjour
Si j'ai compris ta question tu peux essayer cette macro dans ta feuille concernée ou dans un module (mode d'emploi)Public Sub regroupe() Dim lig As Long For lig = 1 To UsedRange.Rows.Count If Cells(lig, 1) = Cells(lig + 1, 1) Then Cells(lig, 2) = Cells(lig, 2) & Chr(10) & Cells(lig + 1, 2) Rows(lig + 1).Delete If Cells(lig + 1, 1) = "" Then Exit For lig = lig - 1 End If Next lig End Sub -
Je viens d'ajouter la macro au fichier et ca bog
voila le lien avec la modif au cas ou ca peux aider a comprendre
http://www.cijoint.fr/cjlink.php?file=cj200809/cijXOaRp7A.xls
Vraiment merci de m'aider. -
bonjour
Comme tu as mis la macro dans un module, faut qualifier la feuille en modifiant cette ligneFor lig = 1 To ActiveSheet.UsedRange.Rows.Count
-
Tu es absoluement génial :)
Merci beaucoup
Dis, est ce que c'est possible de modifier la macro pour que ca fonctionne si la colonne A se trouve en colonne B et la colonne B se trouve en colonne F?
C'est fou tout ce qu'on peu faire avec Excel... enfin tout ce que certains peuvent faire... c'est pas donné a tout le monde... -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
bonjour
L'adressage que j'ai utilisé Cells(lig, 1) permet bien sûr de le faire.
le 1 est le numéro de colonne et donc si tu veux la même chose paramétré tu peux faire ainsi :Public Sub regroupe() Dim lig As Long Const col1 = 2 ' colonne B Const col2 = 6 ' colonne F For lig = 1 To ActiveSheet.UsedRange.Rows.Count If Cells(lig, col1) = Cells(lig + 1, col1) Then Cells(lig, col2) = Cells(lig, col2) & Chr(10) & Cells(lig + 1, col2) Rows(lig + 1).Delete If Cells(lig + 1, col1) = "" Then Exit For lig = lig - 1 End If Next lig End Sub
Il suffit de changer au début le numéro de colonne et cela fonctionne où tu veux. -
Euh... je viens de m'apercevoir que je ne t'avais pas encore dit bonjour...
Donc euh... bonjour...
Désolé...
Mais MERCIIIII beaucoup ca marche c'est génialement formidable :)