Comment combiner des cellules à l’aide d’Excel VBA

--

Share post:

La fusion de cellules dans est utile lorsque vous souhaitez combiner plusieurs cellules en une seule cellule plus grande. Il peut être utilisé pour titrer, organiser les données ou mettre en forme l'apparence de votre feuille de calcul.

Excel VBA est un langage de programmation utilisé pour automatiser des tâches dans Microsoft Excel. Une tâche souvent effectuée dans Excel consiste à combiner des cellules, à unir plusieurs cellules en une seule grande cellule. La fusion de cellules peut être utile pour créer des en-têtes, des tableaux ou des formats de données spécifiques.

Il existe plusieurs façons de combiner des cellules à l'aide d'Excel VBA, à savoir :

  • Use the “Merge” property of the “Range” object.
  • Use the “MergeCells” method of the “Range” object.
  • Use the “MergeArea” method of the “Range” object.
  • Use the “UnMerge” method of the “Range” object to unmerge cells.
vba
vba

Cet article couvrira ces méthodes en détail, ainsi que des exemples de code et des résultats. Nous discuterons également de certaines choses à noter lors de la fusion de cellules à l'aide d'Excel VBA.

Utilisation de la propriété « Merge » d’un objet « Range

La propriété “Merge” de l' objet “Range” est utilisée pour définir ou renvoyer une valeur booléenne, indiquant si une plage de cellules est combinée ou non. Une valeur de “True” signifie qu'une plage de cellules est fusionnée, tandis qu'une valeur False signifie qu'une plage de cellules n'est pas fusionnée.

Pour fusionner des cellules à l'aide de la propriété “Merge”, nous pouvons affecter des valeurs “True” à ces propriétés pour la plage de cellules que nous voulons combiner. L'exemple de code suivant montre comment fusionner les cellules A1 à C3 à l'aide de la propriété Merge.

Sub MergeCellsUsingMergeProperty()
 'Combining cells A1 to C3
 Range( “A1:C3” ). Merge = True
End Sub

Nous pouvons voir que les cellules A1 à C3 ont été fusionnées en une seule grande cellule, et que la valeur de la cellule A1 reste affichée au milieu de la cellule fusionnée.

Pour annuler la fusion de cellules à l'aide de la propriété “Merge”, nous pouvons attribuer une valeur “False” à cette propriété pour la plage de cellules que nous voulons diviser. L'exemple de code suivant montre comment annuler la fusion des cellules A1 à C3 à l'aide de la propriété “Merge”.

Sub UnMergeCellsUsingMergeProperty()
 'Unmerge cells A1 through C3
 Range( “A1:C3” ). Merge = False
End Sub

Nous pouvons voir que les cellules A1 à C3 ont été séparées en cellules individuelles, et que la valeur de la cellule A1 reste affichée dans la cellule A1.

Utilisation de la méthode « MergeCells » de l’objet « Range

La méthode “MergeCells” de “Range” objets permet de fusionner ou d'annuler la fusion de plages de cellules sélectionnées. Cette méthode n'a pas d'arguments et ne fonctionne que sur la plage de cellules sélectionnées par l'utilisateur.

Pour fusionner des cellules à l'aide de la méthode “MergeCells”, nous pouvons sélectionner la plage de cellules que nous voulons combiner, puis exécuter la méthode. L'exemple de code suivant montre comment combiner les cellules D1 à F3 à l'aide de la méthode “MergeCells”.

Sub MergeCellsUsingMergeCellsMethod()
 'Select cells D1 through F3
 Range( “D1:F3” ). Select
 'Merge selected cells
 Selection.MergeCells
End Sub

Nous pouvons voir que les cellules D1 à F3 ont été fusionnées en une seule grande cellule, et que la valeur de la cellule D1 reste affichée au milieu de la cellule fusionnée.

Pour annuler la fusion des cellules à l'aide de la méthode “MergeCells”, nous pouvons sélectionner la plage de cellules que nous voulons fractionner, puis exécuter la méthode. L'exemple de code suivant montre comment annuler la fusion des cellules D1 à F3 à l'aide de la méthode “MergeCells”.

Sub UnMergeCellsUsingMergeCellsMethod()
 'Select cells D1 through F3
 Range( “D1:F3” ). Select
 'Unmerge selected cells
 Selection.MergeCells
End Sub

Nous pouvons voir que les cellules D1 à F3 ont été séparées en cellules individuelles, et que la valeur de la cellule D1 reste affichée dans la cellule D1.

Utilisation de la méthode « MergeArea » de l’objet « Range

La méthode “MergeArea” de l' objet “Range” est utilisée pour renvoyer un objet “Range” qui représente une plage de cellules fusionnées contenant une cellule spécifique. Cette méthode n'a pas d'arguments et ne fonctionne que sur les cellules qui sont déjà combinées avec d'autres cellules.

Pour fusionner des cellules à l'aide de la méthode “MergeArea”, nous pouvons d'abord utiliser la propriété “Merge” ou la méthode “MergeCells” pour combiner la plage de cellules souhaitée, puis utiliser la méthode “MergeArea” pour faire référence à la plage de cellules fusionnées. L'exemple de code suivant montre comment combiner les cellules G1 à I3 à l'aide de la propriété “Merge”, puis utiliser la méthode “MergeArea” pour faire référence à cette plage de cellules fusionnées.

Sub MergeCellsUsingMergeAreaMethod()
 'Combining cells G1 to I3
 Range( “G1:I3” ). Merge = True
 'Refers to a range of merged cells containing G2 cells
 Range( “G2” ). MergeArea.Select
End Sub

Nous pouvons voir que les cellules G1 à I3 ont été fusionnées en une seule grande cellule, et que la valeur de la cellule G1 reste affichée au milieu de la cellule fusionnée. Nous pouvons également voir que la plage de cellules fusionnées a été sélectionnée par notre code, en utilisant la méthode “MergeArea” pour faire référence à la plage de cellules fusionnées contenant la cellule G2.

Pour annuler la fusion de cellules à l'aide de la méthode “MergeArea”, nous pouvons d'abord utiliser la propriété “Merge” ou la méthode “MergeCells” pour annuler la fusion de la plage de cellules souhaitée, puis utiliser la méthode “MergeArea” pour faire référence à cette plage de cellules individuelles. L'exemple de code suivant montre comment annuler la fusion des cellules G1 à I3 à l'aide de la propriété “Merge”, puis utiliser la méthode “MergeArea” pour faire référence à cette plage de cellules individuelles.

Sub UnMergeCellsUsingMergeAreaMethod()
 'Unmerge cells G1 to I3
 Range( “G1:I3” ). Merge = False
 'Refers to the range of individual cells containing G2 cells
 Range( “G2” ). MergeArea.Select
End Sub

Nous pouvons voir que les cellules G1 à I3 ont été séparées en cellules individuelles, et que la valeur de la cellule G1 reste affichée dans la cellule G1. Nous pouvons également voir que la plage de ces cellules individuelles a été sélectionnée par notre code, en utilisant la méthode MergeArea pour faire référence à la plage de cellules individuelles contenant la cellule G2.

Utilisation de la méthode UnMerge d’un objet « Range

La méthode “UnMerge” de l' objet “Range” est utilisée pour annuler la fusion de toutes les cellules fusionnées dans une plage de cellules. Cette méthode n'a pas d'arguments et ne fonctionne que sur les plages de cellules qui contiennent au moins une cellule fusionnée.

Pour annuler la fusion des cellules à l'aide de la méthode “UnMerge”, nous pouvons exécuter la méthode pour la plage de cellules que nous voulons diviser. L'exemple de code suivant montre comment annuler la fusion de toutes les cellules fusionnées dans une feuille de calcul active à l'aide de la méthode “UnMerge”.

Sub UnMergeCellsUsingUnMergeMethod()
 'Unmerge all merged cells in the active worksheet
 ActiveSheet.Cells.UnMerge
End Sub

Nous pouvons voir que toutes les cellules fusionnées de la feuille de calcul active ont été séparées en cellules individuelles et que les valeurs de ces cellules restent affichées à leur emplacement d'origine.

Éléments à noter lors de la fusion de cellules à l’aide d’Excel VBA

Lorsque nous combinons des cellules à l'aide d'Excel VBA, nous devons faire attention à certaines choses, à savoir :

  • Seules les valeurs de la cellule en haut à gauche seront affichées dans la cellule fusionnée. Les valeurs des autres cellules fusionnées seront perdues. Par conséquent, nous ferions mieux de nous assurer que la valeur que nous voulons afficher se trouve dans la cellule en haut à gauche avant de fusionner les cellules.
  • La fusion de cellules peut affecter le et la mise en page de nos données. Par exemple, si nous combinons plusieurs , la largeur de la colonne sera ajustée à la largeur de la colonne la plus large. Si nous combinons plusieurs lignes, la hauteur de la ligne sera ajustée à la hauteur de la ligne la plus élevée. Si nous combinons plusieurs cellules contenant des , celles-ci seront supprimées et seules les valeurs résultantes seront affichées. Par conséquent, nous devons examiner l'impact de la fusion des cellules sur nos données avant de le faire.
  • La fusion de cellules peut provoquer des erreurs de référence si nous utilisons une plage de cellules fusionnées comme arguments ou critères dans les fonctions Excel. Par exemple, si nous utilisons la fonction “SUMIF” pour additionner les valeurs d'une plage en fonction d'un critère, et que la plage de critères contient des cellules fusionnées, le résultat sera incorrect ou non valide. Par conséquent, nous ferions mieux d'éviter d'utiliser des fonctions Excel qui s'appuient sur des références de plage lors de la fusion de cellules.

D'où l'article sur la façon de combiner des cellules à l'aide d'Excel VBA. J'espère que cet article vous sera utile et pourra vous aider à automatiser vos tâches dans Excel. Merci d'avoir lu cet article jusqu'au bout.

ARTICLES CONNEXES

Comment créer un texte attrayant avec une décoration de texte dans MS Word

Voulez-vous créer un texte qui attire l'attention du lecteur en utilisant divers effets tels que des soulignements, des...

Comment calculer le décalage journalier entre deux dates dans Excel

Avez-vous déjà voulu savoir combien de jours il vous reste avant vos vacances ? Ou combien de jours...

Comment comparer facilement et rapidement deux documents dans Microsoft Word

Avez-vous déjà voulu comparer deux documents dans Microsoft Word pour voir les différences ou les similitudes entre eux...

Comment effectuer un zoom avant ou arrière sur des documents Microsoft Word facilement et rapidement

Avez-vous déjà eu du mal à lire ou à modifier un document Microsoft Word parce que la taille...