Excel 2010 fusion de cellules dans colonne
Résolu
JeanR
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai trouvé beaucoup de réponses similaires à mon problème sur le forum, mais aucune ne correspondant exactement. C'est pourquoi je viens quérir votre aide :)
Je souhaiterais que les cellules de ma colonne E soient fusionnées jusque chaque occurence (je sais que la fusion c'est le mal, mais je préfèrerais cette solution si possible), sachant que j'ai trouvé une solution qui marchait mais comme j'ai près de 40 000 lignes, ça fait planter Excel :/
Voila un exemple peut-être plus concret :
ABCDE
xxxx1
xxxx1
xxxx2
xxxx3
xxxx3
Avoir à la fin une fusion verticale des deux "1" et des deux "3" (sauf qu'il y aura 40 000 lignes ^^).
Merci d'avance pour votre aide, je m'excuse de ne pas maîtriser suffisamment ce logiciel, et j'ai conscience que ce sujet à été traité maintes fois !
Cordialement,
Jean R.
j'ai trouvé beaucoup de réponses similaires à mon problème sur le forum, mais aucune ne correspondant exactement. C'est pourquoi je viens quérir votre aide :)
Je souhaiterais que les cellules de ma colonne E soient fusionnées jusque chaque occurence (je sais que la fusion c'est le mal, mais je préfèrerais cette solution si possible), sachant que j'ai trouvé une solution qui marchait mais comme j'ai près de 40 000 lignes, ça fait planter Excel :/
Voila un exemple peut-être plus concret :
ABCDE
xxxx1
xxxx1
xxxx2
xxxx3
xxxx3
Avoir à la fin une fusion verticale des deux "1" et des deux "3" (sauf qu'il y aura 40 000 lignes ^^).
Merci d'avance pour votre aide, je m'excuse de ne pas maîtriser suffisamment ce logiciel, et j'ai conscience que ce sujet à été traité maintes fois !
Cordialement,
Jean R.
A voir également:
- Excel 2010 fusion de cellules dans colonne
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Formule somme excel colonne - Guide
- Liste déroulante excel - Guide
- Fusionner deux cellules excel - Guide
4 réponses
Bonjour,
d'abord merci de votre réponse !
Le fichiel est intégral, la manipulation ne sera effectivement effectuée qu'une seule fois. Seulement, Excel est effectivement obligatoire :/
d'abord merci de votre réponse !
Le fichiel est intégral, la manipulation ne sera effectivement effectuée qu'une seule fois. Seulement, Excel est effectivement obligatoire :/
Bonjour,
Bon, je met quand même ma proposition :
https://www.cjoint.com/?BIeogFNaYE7
eric
Bon, je met quand même ma proposition :
Sub fusionner() Dim lig1 As Long, lig2 As Long Application.DisplayAlerts = False Application.ScreenUpdating = False For lig1 = 2 To Cells(Rows.Count, 5).End(xlUp).Row lig2 = 0 While Cells(lig1, 5) = Cells(lig1 + lig2, 5) lig2 = lig2 + 1 Wend If lig2 > 0 Then Cells(lig1, 5).Resize(lig2, 1).Merge lig1 = lig1 + lig2 End If Next lig1 Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
https://www.cjoint.com/?BIeogFNaYE7
eric
Cela n'explique pas tout, mais apparemment à chanque changement d'occurence, la fusion ne prend pas en compte le premier de la liste.
exemple :
2
3
3
3
seuls les deux derniers 3 seront fusionnés. Je ne sais pas si je suis bien clair..
Je ne suis pas sûr de comprendre l'intégralité de votre code, mais peut-être, pour une raison obscure à mes yeux, faut-il passer à Lig1- 1 lors du .merge ?
exemple :
2
3
3
3
seuls les deux derniers 3 seront fusionnés. Je ne sais pas si je suis bien clair..
Je ne suis pas sûr de comprendre l'intégralité de votre code, mais peut-être, pour une raison obscure à mes yeux, faut-il passer à Lig1- 1 lors du .merge ?
Oui, j'avais fait une petite erreur :
car le next lig1 fait +1
eric
Sub fusionner()
Dim lig1 As Long, lig2 As Long
Application.DisplayAlerts = False
Application.ScreenUpdating = False
For lig1 = 2 To Cells(Rows.Count, 5).End(xlUp).Row
lig2 = 0
While Cells(lig1, 5) = Cells(lig1 + lig2, 5)
lig2 = lig2 + 1
Wend
If lig2 > 0 Then
Cells(lig1, 5).Resize(lig2, 1).Merge
lig1 = lig1 + lig2 - 1
End If
Next lig1
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
car le next lig1 fait +1
eric
Bonjour,
Une solution existe sur Excel, elle est relativement compliquée à mettre en place et n'est pas très souple...
Si c'est un besoin ponctuel, passer par Access peut-être une bien meilleure solution par rapport au quotient temps/qualité...
Excel est obligatoire ? Est-ce un besoin ponctuel (à la limite, la manip via Access peut s'automatiser) ?
-------------------
Cordialement,
Clément
Une solution existe sur Excel, elle est relativement compliquée à mettre en place et n'est pas très souple...
Si c'est un besoin ponctuel, passer par Access peut-être une bien meilleure solution par rapport au quotient temps/qualité...
Excel est obligatoire ? Est-ce un besoin ponctuel (à la limite, la manip via Access peut s'automatiser) ?
-------------------
Cordialement,
Clément
Finalement, la macro que j'avais trouvé et adapté (avec mon très très faible niveau) fonctionne si j'avance de 500 lignes en 500 lignes (probablement la faiblesse de puissance de mon pc), je vais donc répéter la macro 80 fois et ça ira (heureusement que je ne dois le faire qu'une fois ! ^^)
Merci encore pour votre temps et investissement,
Bonne continuation :)
Merci encore pour votre temps et investissement,
Bonne continuation :)