Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Fusion de cellules selon colonnes différente

OLANNURIEN

XLDnaute Nouveau
Bonsoir.

Tout nouveau sur le site je n'ai pas trouver de solution adaptée à mon problème. Je me permets donc de créer un nouveau post. Si la solution existe déjà n'hésitez pas à mettre le lien correspondant.
Je vous expose mon problème :

Nous traitons de grands volumes de données et, après manipulation, ces résultats sont classés sur Excel pour pouvoir les traiter avec une colonne identifiant et plusieurs colonnes de résultats ou observations.
Pour faciliter le traitement de ces informations et nous faire gagner un temps précieux, je souhaiterais fusionner des cellules d’observations et fonction d’un même identifiant.

Par exemple, dans le fichier joint je voudrais fusionner les cellules des colonnes D, E et F lorsqu’elles ont le même identifiant en colonne A (en conservant le même nombre de ligne donc !).

Merci d’avance pour votre aide.

Environnementalement.
 

Pièces jointes

  • Extrait_XML.xlsx
    13 KB · Affichages: 10

patricktoulon

XLDnaute Barbatruc
re

si j'ai ajouté un sheets c'est par ce que dans ton exemple tu l'a fait j'aurais pu faire sans

pour le version d'eric
ajoute la precision du sheets sur le quel tu veux agir c'est mieux
il n'est pas forcé que le sheets soit actif quand la macro est lancée
VB:
Sub fusion()
    Dim datas, lig As Long, nblig As Long, col As Long
   With Sheets(1)
   datas = .[A2].Resize(.Cells(Rows.Count, 1).End(xlUp).Row - 1).Value
    Application.DisplayAlerts = False
    For lig = 1 To UBound(datas)
        nblig = Application.CountIf(.Columns(1), datas(lig, 1))
        If nblig > 1 Then
            For col = 4 To 6
                .Cells(lig + 1, col).Resize(nblig).MergeCells = True
            Next col
        End If
        lig = lig + nblig - 1
    Next lig
End With
End Sub
 

job75

XLDnaute Barbatruc
Bonjour à tous,

Il paraît nécessaire de commencer la macro en défusionnant les cellules et en faisant un tri sur la colonne A :
VB:
Sub Fusion()
Dim deb&, i&
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With [A1].CurrentRegion
    .UnMerge 'défusionne
    .Sort .Cells(1), xlAscending, Header:=xlYes 'tri sur colonne A
    deb = 2
    For i = 3 To .Rows.Count + 1
        If .Cells(i, 1) <> .Cells(i - 1, 1) Then
            With Range(.Cells(deb, 3), .Cells(i - 1, 3))
                .Offset(, 1).Merge
                .Offset(, 2).Merge
                .Offset(, 3).Merge
            End With
            deb = i
        End If
    Next
End With
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Extrait_XML(1).xlsm
    21.7 KB · Affichages: 5

eriiic

XLDnaute Barbatruc
Je me suis posé la question, au moins pour le tri.
Comme il annonce que c'est fourni par un outil, il y a tout lieu de penser que c'est livré brut. Trié et non fusionné comme sur le modèle.
 

OLANNURIEN

XLDnaute Nouveau
Effectivement eriiiic a raison. Le prétraitement nous permets d'aboutir au classeur TTMT_ITV. Toutes les anomalies sont répertoriées et listées en fonction du tronçon, de la rue, ..... et des renvois permettent d'identifier les grandes familles de problèmes et de travaux à réaliser. nous devons faire le traitement final en définissant, pour chaque tronçon, le type d'intervention qui sera réellement effectué.
 

Discussions similaires

Réponses
4
Affichages
341
Réponses
4
Affichages
402
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…