Fusionner si bordure

Fermé
Carochris13010 Messages postés 7 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 11 octobre 2017 - 11 oct. 2017 à 15:35
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 12 oct. 2017 à 08:08
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
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 11 oct. 2017 à 17:12
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
Carochris13010
11 oct. 2017 à 17:36
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
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
11 oct. 2017 à 17:42
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
Carochris13010 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
11 oct. 2017 à 17:46
Je suis vraiment désolé mais mes notions de VBA sont assez faibles, où devrais-je taper cette commande ?
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > Carochris13010
11 oct. 2017 à 17:48
Tu lances bien ta macro

For_X_to_Next_Ligne()

Tu mets cela a la place pour le test, c'est tout
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
11 oct. 2017 à 18:05
Voilà un exemple:

http://www.cjoint.com/c/GJlqe42F1QQ
0
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
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
12 oct. 2017 à 08:08
Voilà

http://www.cjoint.com/c/GJmghyVaaNQ
0