XL 2013 Fusionner des lignes sur une colonne en fonction de la valeur

Leché

XLDnaute Junior
Bonjour,

Je souhaiterai avoir une macro permettant de fusionner un nombre x de ligne (dans la même colonne) en fonction du nombre de fois où la valeur qu’elle contient est présente. (A défaut d'avoir les connaissances nécessaires pour le faire moi même)

A savoir, les lignes sont déjà triées c’est-à-dire qu’il n’y a pas de ligne à récupérer puis à coller en dessous de la cellule ciblée pour la fusionner.

Je vous joins un exemple avec l’état actuel (en jaune) et l’état souhaité (en vert)

Cela ne doit toucher que les valeurs présentes en colonne A et en colonne B

Si vous avez des pistes sur ce sujet..

Cordialement,
 

Pièces jointes

  • Exemple.xlsx
    9.8 KB · Affichages: 37

fanch55

XLDnaute Barbatruc
Bonsoir,
C'est facile de vous fournir une macro permettant de fusionner les lignes de l'exemple que vous avez fourni.
Cependant, vous devrez accepter de ne plus pouvoir faire de tri ou d'exploiter de tableau .
En fait, une telle opération devrait se faire sur une autre feuille pour affichage uniquement .
Est-ce vraiment cela votre objectif ?
 

Leché

XLDnaute Junior
Bonsoir ,
Je n'ai pas besoin de faire des tris , cependant je peux être éventuellement amener a faire des modifications de texte. Le but final étant de faire une nomenclature de divers produits avec des liens hypertextes sur certaines cellules (mais pas celles qui seront fusionnés ; dans les colonnes d'a côté)

Bonne soirée,
 

fanch55

XLDnaute Barbatruc
Pour l'exemple fourni :
VB:
Option Explicit
Sub test_fusion()
     Fusionne 1
     Fusionne 2
End Sub
Sub Fusionne(C As Integer)
Dim I As Integer, L As Integer
Dim Dc As String, Df As String
Application.DisplayAlerts = False

    With Sheets("Exemple")
         L = .Cells(Rows.Count, C).End(xlUp).Row
         Dc = vbNullString
         For I = 2 To L + 1
            .Cells(I, C).Select
            If .Cells(I, C) <> .Cells(I - 1, C) Then
                If Dc <> vbNullString Then
                    With .Range(Dc, Df)
                        .Select
                        .Merge
                        .HorizontalAlignment = xlCenter
                        .VerticalAlignment = xlCenter
                    End With
                End If
                Dc = .Cells(I, C).Address
            End If
            Df = .Cells(I, C).Address
         Next
    End With

End Sub
 

Leché

XLDnaute Junior
Bonjour,

Après essai sur l'excel servant d'exemple c'est TOP.
Sur mon cas réel , le code bloque sur la ligne suivante :
1602134756879.png

Me donnant le visuel ci-dessous ( colonne de gauche OK , celle de droite manque le fusionnement des cellules)

1602134805661.png


Cordialement,
 

Leché

XLDnaute Junior
Pour l'exemple fourni :
VB:
Option Explicit
Sub test_fusion()
     Fusionne 1
     Fusionne 2
End Sub
Sub Fusionne(C As Integer)
Dim I As Integer, L As Integer
Dim Dc As String, Df As String
Application.DisplayAlerts = False

    With Sheets("Exemple")
         L = .Cells(Rows.Count, C).End(xlUp).Row
         Dc = vbNullString
         For I = 2 To L + 1
            .Cells(I, C).Select
            If .Cells(I, C) <> .Cells(I - 1, C) Then
                If Dc <> vbNullString Then
                    With .Range(Dc, Df)
                        .Select
                        .Merge
                        .HorizontalAlignment = xlCenter
                        .VerticalAlignment = xlCenter
                    End With
                End If
                Dc = .Cells(I, C).Address
            End If
            Df = .Cells(I, C).Address
         Next
    End With

End Sub


De plus , est-il possible de :

--> Surligner une ligne sur 2 ( du moins un ensemble de ligne avec le même numéro qui vient d'être fusionné) afin de mieux visualiser l’ensemble (comme sur la seconde photo ci-dessus : soit de A3 à la dernière cellule en G et de K3 a dernière cellule non vide en L)

--> Mettre une police et une taille (de A3 à la dernière cellule pleine en L)

Cordialement,
 

fanch55

XLDnaute Barbatruc
Fichier à tester ...

--> Surligner une ligne sur 2 ( du moins un ensemble de ligne avec le même numéro qui vient d'être fusionné) afin de mieux visualiser l’ensemble (comme sur la seconde photo ci-dessus : soit de A3 à la dernière cellule en G et de K3 a dernière cellule non vide en L)
Je ne vois pas de seconde photo illustrant la demande .
--> Mettre une police et une taille (de A3 à la dernière cellule pleine en L)
pareil ..

Si un problème existe encore, fournir un vrai fichier exemple .
 

Pièces jointes

  • Leché Exemple.xlsm
    21.6 KB · Affichages: 3

Leché

XLDnaute Junior
Bonjour,

Si joint l'excel avec les cellules tel que le réel.
La macro bloque toujours au même moment lors du fusionnage des cellules. Le fait d'avoir fusionner sur la première colonne, la formule présente dans la seconde colonne (recherchev) devient N#A , et donc n'est plus considéré comme similaire a celle de la ligne supérieur..

Merci pour tout
 

Pièces jointes

  • EXEMPLE LECHE.xlsm
    29.1 KB · Affichages: 5

fanch55

XLDnaute Barbatruc
Ok vu,
Effectivement, le rechercheV n'aime pas les cellules fusionnées .
Ci-joint fichier corrigé ( ==> on traite la colonne 2 avant la 1 )
+ modification du module pour s'adapter a un tableau non unique .
 

Pièces jointes

  • Leché Exemple 2.xlsm
    34.9 KB · Affichages: 10

Leché

XLDnaute Junior
Bonjour,

Merci pour ton retour,
Peux-t-on rajouter une ligne de code afin de supprimer automatiquement toutes les lignes après la dernière ligne remplis ? Dans mon fichier exemple , je n'avais mis que la tableau , mais en réalité , les formules sont tirés jusqu'à la ligne 300/400, car le nombre de ligne est censé varier entre deux projets différents..

Cordialement,
 

Leché

XLDnaute Junior
Bonsoir,
Les formules présentes dans les colonnes B et J sont tirés jusqu'au lignes 150. Elles sont déjà présentes a l'ouverture du fichier (modèle Excel ; donc elles le seront toujours)
Je les ai tiré plus loins car je ne sais jamais exactement le nombre de ligne que je vais avoir dans le rendu final :)
 

Leché

XLDnaute Junior
Bonjour,
Je reviens vers vous concernant cette même demande. J'ai une erreur de macro qui apparaît lors de la création des liens hypertextes. Voir l'erreur sur la PJ1 (ERROR 10).

Cependant sur mon fichier ou les liens doivent être crées, tout est OK sauf une cellule (voir PJ2 ERROR 20) , après une courte analyse, il s'avère que ce plan est un plan PDF, et non format TIF (comme je l'avais précisé lors de la demande) , est-ce lié ? Si oui , que dois-je modifier pour associer aussi bien des fichiers TIF et PDF ?

Merci pour votre disponibilité,
Cordialement,
 

Pièces jointes

  • error 10.PNG
    error 10.PNG
    23.2 KB · Affichages: 16
  • error 20.PNG
    error 20.PNG
    8.2 KB · Affichages: 17

Discussions similaires

Réponses
3
Affichages
309

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 678
dernier inscrit
arno12345678