Comment fusionner des cellules dans Excel à l’aide d’un code VBA
Dans VBA, il existe une méthode « MERGE » que vous pouvez utiliser pour fusionner une plage de cellules ou même plusieurs plages en une seule. Cette méthode a un argument « Across » qui est facultatif. Si vous spécifiez TRUE, il fusionnera chaque ligne de la plage séparément, et si vous spécifiez FALSE, il fusionnera toute la plage en une seule.
Étapes à suivre pour utiliser VBA pour fusionner des cellules :
- Tout d’abord, vous devez définir la plage de cellules que vous souhaitez fusionner.
- Après cela, tapez un point (.) pour obtenir la liste des propriétés et des méthodes et sélectionnez « Fusionner » dans cette liste ou vous pouvez le taper directement.
- Après cela, vous devez définir l’argument « Across » sur TRUE ou FALSE.
- À la fin, exécutez ce code pour fusionner la plage.
Voici le code.
Range("A1:A2").Merge False
Et si vous souhaitez fusionner des lignes sur toute la plage, vous pouvez utiliser TRUE pour l’argument across.
Selection.Merge Across:=True
Dans le code ci-dessus, vous avez la sélection comme plage, la méthode de fusion et à travers comme vrai. Et il a fusionné toutes les lignes de la plage sélectionnée.
Maintenant, disons que vous voulez fusionner la plage de cellules d’une autre feuille de calcul, vous n’avez pas besoin de l’activer en premier. Vous pouvez simplement vous référer d’abord à la feuille de calcul, puis utiliser les méthodes de fusion avec le renege que vous souhaitez fusionner.
Worksheets("Sheet1").Range("A1:A2").Merge
De la même manière, vous pouvez également faire référence à un classeur en spécifiant le nom du classeur.
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1:A2").Merge
Fusionner une plage et aligner le contenu de la cellule
Désormais, lorsque vous fusionnez deux cellules ou plus, vous devez aligner le contenu que vous avez dans la cellule. Regardez l’instantané ci-dessous où vous avez fusionné les cellules A1 et A2 et la valeur dans les cellules est alignée en bas. Pour résoudre ce problème, vous pouvez utiliser la propriété d’alignement et aligner le contenu de la cellule au centre et au milieu afin qu’il vous soit facile de le lire.
With Range("A1:A2")
.Merge
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Combinez le texte puis fusionnez
Parlons d’un scénario réel. Vous avez du texte dans une plage de cellules et vous devez fusionner ces cellules, mais vous ne voulez pas perdre le contenu que vous avez. Eh bien, vous pouvez écrire une boucle de code sur toute la plage en utilisant chacun et combiner du texte, puis l’ajouter à la plage fusionnée à la fin.
- Dans la première partie, vous avez des variables à utiliser pour stocker les valeurs de la plage et se définir.
- Dans la deuxième partie, vous avez une BOUCLE pour combiner les valeurs de chaque cellule pour créer une nouvelle chaîne avec cela.
- Dans la troisième partie, fusionnez la plage, ajoutez la chaîne combinée, appliquez le retour à la ligne et alignez le contenu de la cellule.
Voici le code complet.
Sub vba_merge_with_values()
Dim val As String
Dim rng As Range
Set rng = Range("A1:A10")
For Each Cell In rng
val = val & " " & Cell.Value
Next Cell
With rng
.Merge
.Value = Trim(val)
.WrapText = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
End Sub