est ici une façon de le faire:
Récupère la dernière ligne peuplée de la feuille de calcul via an auxiliary function.
Effectuez une itération sur les lignes et, pour chaque ligne, recherchez la dernière colonne utilisée via une autre fonction auxiliaire.
Fusionner la sélection créée dynamiquement et aligner à gauche.
Important note from Microsoft: Seules les données dans la cellule supérieure gauche d'une plage (plage:. Deux ou plusieurs cellules sur une feuille Les cellules d'une plage peuvent être adjacentes ou non.) Des cellules sélectionnées resteront en la cellule fusionnée. Les données des autres cellules de la plage sélectionnée seront supprimées.
Option Explicit
Sub merge_left_justify()
Dim i As Long
Dim j As Long
Dim last_row As Long
Dim last_col As Long
last_row = find_last_row(ThisWorkbook.ActiveSheet)
Application.DisplayAlerts = False
For i = 1 To last_row Step 1
j = find_last_col(ThisWorkbook.ActiveSheet, i)
Range(Cells(i, 1), Cells(i, j)).Select
Selection.Merge
Selection.HorizontalAlignment = xlLeft
Next i
Application.DisplayAlerts = True
End Sub
Function find_last_row(ByRef ws As Worksheet)
Dim last_row
last_row = Cells.Find(what:="*", after:=[a1], _
searchorder:=xlByRows, searchdirection:=xlPrevious).row
find_last_row = last_row
End Function
Function find_last_col(ByRef ws As Worksheet, ByVal row As Long)
Dim last_col
last_col = Cells(row, 255).End(xlToLeft).Column
find_last_col = last_col
End Function