Fusionner si bordure

Bonjour,

Je cherche une Macro pouvant fusionner des cellules d’une colonne en fonction de leurs bordures.

Données de la colonne A fusionnées si bordures épaisses, Idem pour colonne B …

Je vous remercie

3 réponses

  1. Contributeur
    Voilà

    http://www.cjoint.com/c/GJmghyVaaNQ
    0
    1. Merci beaucoup, je viens de tester cette Macro et celle ne fonctionne malheureusement pas sur mon tableau.
      Cette dernière bloque à cette étape : "For NoLig = 1 To Range("A" & Rows.Count).End(xlUp)"

      Cordialement
      0
      1. Contributeur
        Il faut vérifier si le nom de la feuille et la colonne sont corrects

        Essaie de voir si cela te donne la dernière ligne:

        Msgbox Range("A" & Rows.Count).End(xlUp)
        0
      2. @cs_Le PivertJe suis vraiment désolé mais mes notions de VBA sont assez faibles, où devrais-je taper cette commande ?
        0
      3. Contributeur
        @Carochris13010Tu lances bien ta macro

        For_X_to_Next_Ligne()

        Tu mets cela a la place pour le test, c'est tout
        0
      4. Contributeur
        @cs_Le PivertVoilà un exemple:

        http://www.cjoint.com/c/GJlqe42F1QQ
        0
      5. Je vous remercie, en fait, je ce dont je cherche à réaliser c'est seulement fusionner les cellules vides avec la cellule renseignée ce trouvant au dessus.
        Je vous mets le lien de mon tableau , si jamais vous avez une solution.
        Je vous remercie en tout cas !

        http://www.cjoint.com/c/GJlsmfcve14
        0
    2. Contributeur
      Bonjour,

      voici un exemple avec la colonne A fusionner vers le haut à adapter:

      Sub For_X_to_Next_Ligne()
      Dim FL1 As Worksheet, NoCol As Integer
      Dim NoLig As Long
          Set FL1 = Worksheets("Feuil1")
          NoCol = 1 'lecture de la colonne 1
          For NoLig = 1 To Range("A" & Rows.Count).End(xlUp)
              FL1.Cells(NoLig, NoCol).Select
       If Selection.Borders(xlEdgeBottom).Weight = xlMedium Then 'bordure basse
           Range("A" & NoLig & ":A" & NoLig - 1).Select ' fusionner vers le haut
          Selection.Merge
              End If
              Next
          Set FL1 = Nothing
      End Sub
      


      Et si tu veux supprimer les alertes:

      Sub For_X_to_Next_Ligne()
      Dim FL1 As Worksheet, NoCol As Integer
      Dim NoLig As Long
          Set FL1 = Worksheets("Feuil1")
          NoCol = 1 'lecture de la colonne 1
           Application.DisplayAlerts = False
          For NoLig = 1 To Range("A" & Rows.Count).End(xlUp)
              FL1.Cells(NoLig, NoCol).Select
       If Selection.Borders(xlEdgeBottom).Weight = xlMedium Then
           Range("A" & NoLig & ":A" & NoLig - 1).Select ' fusionner vers le haut
          Selection.Merge
              End If
              Next
          Set FL1 = Nothing
           Application.DisplayAlerts = True
      End Sub
      
      


      j'ai pris la bordure basse de la cellule. Si tu veux changer sers toi de l'enregistreur de macro pour avoir le code en mettant la bordure où tu veux

      @+ Le Pivert
      0