Un petit programme sous excel

Résolu/Fermé
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 - 29 sept. 2008 à 14:40
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 - 1 oct. 2008 à 09:42
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
A voir également:

6 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
30 sept. 2008 à 09:26
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
-1
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
30 sept. 2008 à 14:03
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.
-1
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
30 sept. 2008 à 15:44
bonjour


Comme tu as mis la macro dans un module, faut qualifier la feuille en modifiant cette ligne
For lig = 1 To ActiveSheet.UsedRange.Rows.Count
-1
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
1 oct. 2008 à 08:38
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...
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
1 oct. 2008 à 08:58
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.
-1
Qhes Messages postés 176 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 21 mai 2014 29
1 oct. 2008 à 09:42
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 :)
-1