Fonsion de plusieurs celulles avec conditions ds plusieurs colon

Résolu
Cabrina Messages postés 273 Statut Membre -  
Cabrina Messages postés 273 Statut Membre -
Bonjour,

Je voudrais fusionner plusieurs cellules dans un tableau de 7 colonnes

Exemple à partir de mon fichier joint:

Je voudrais avoir une fusion sur les cellules de B1 à B6 et par exemple également de D64 à D98 et E3 à E7

En fait quand il y a la même référence dans plusieurs cellules que cela me les fusionne avec la référence qu'il y a dans la première.

Sachant que c'est un tableau de production donc les fusions changeront toutes les semaines.

Ci-joint mon fichier:

https://www.cjoint.com/c/FLClouM7xht

Configuration: Configuration: Configuration: Windows 7 / Internet Explorer 10.0

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    moi je trouve qu'il faut faire ceci, tu es d'accord?
    il faut fusionner colonne 2 de 3 à 6
    il faut fusionner colonne 2 de 7 à 10
    il faut fusionner colonne 2 de 11 à 22
    il faut fusionner colonne 2 de 23 à 35
    il faut fusionner colonne 2 de 36 à 41
    il faut fusionner colonne 2 de 42 à 65
    il faut fusionner colonne 2 de 66 à 77
    il faut fusionner colonne 2 de 78 à 83
    il faut fusionner colonne 2 de 84 à 98
    il faut fusionner colonne 3 de 3 à 23
    il faut fusionner colonne 3 de 24 à 96
    il faut fusionner colonne 4 de 3 à 63
    il faut fusionner colonne 4 de 64 à 98
    il faut fusionner colonne 5 de 3 à 7
    il faut fusionner colonne 5 de 8 à 72
    il faut fusionner colonne 5 de 73 à 85
    il faut fusionner colonne 5 de 86 à 98
    il faut fusionner colonne 6 de 3 à 9
    il faut fusionner colonne 6 de 10 à 37
    il faut fusionner colonne 6 de 38 à 71
    il faut fusionner colonne 6 de 73 à 98
    il faut fusionner colonne 7 de 3 à 8
    il faut fusionner colonne 7 de 9 à 38
    il faut fusionner colonne 7 de 39 à 62
    il faut fusionner colonne 7 de 63 à 82
    il faut fusionner colonne 7 de 83 à 98
    il faut fusionner colonne 8 de 3 à 14
    il faut fusionner colonne 8 de 15 à 22
    il faut fusionner colonne 8 de 23 à 26
    0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    Je propose ceci:
    Option Explicit
    
    Sub cabrina()
    Dim ws As Worksheet
    Dim col As Long, lig As Long
    Dim premfus As Long
    Dim ancienne, nouvelle
    Dim fusion As Range
    
    Set ws = ActiveSheet
    'Debug.Print "_____"
    col = 2
    lig = 3
    nouvelle = ws.Cells(lig, col)
    Do While nouvelle <> ""
        premfus = lig - 1
        ancienne = ""
        Do While nouvelle <> ""
            If ancienne <> nouvelle Then
                If premfus <> lig - 1 Then
                    'il faut fusionner de premfus à lig-1
                    'Debug.Print "il faut fusionner colonne " + CStr(col) + " de " + CStr(premfus) + " à " + CStr(lig - 1)
                    Set fusion = Range(ws.Cells(premfus, col), ws.Cells(lig - 1, col))
                    fusion.Clear
                    fusion.Merge
                    fusion = ancienne
                    fusion.VerticalAlignment = xlCenter
                End If
                premfus = lig
            End If
            ancienne = nouvelle
            lig = lig + 1
            nouvelle = ws.Cells(lig, col)
        Loop 'Do While ws.Cells(lig, col) <> ""
        If premfus <> lig - 1 Then
            'il faut fusionner de premfus à lig-1
            'Debug.Print "il faut fusionner colonne " + CStr(col) + " de " + CStr(premfus) + " à " + CStr(lig - 1)
            Set fusion = Range(ws.Cells(premfus, col), ws.Cells(lig - 1, col))
            fusion.Clear
            fusion.Merge
            fusion = ancienne
            fusion.VerticalAlignment = xlCenter
        End If
        col = col + 1
        lig = 3
        nouvelle = ws.Cells(lig, col)
    Loop 'While ws.Cells(3, col) <> ""
    End Sub
    
    0
    1. Cabrina Messages postés 273 Statut Membre 8
       
      Merci beaucoup la macro fonctionne parfaitement...
      0