Comment transposer une plage en VBA (avec exemple)



Vous pouvez utiliser la syntaxe de base suivante pour transposer une plage à l’aide de VBA :

Sub TransposeRange()

    'specify range to transpose
    MyRange = Range("A1:B5")
    
    'find dimensions of range
    XUpper = UBound(MyRange, 1)
    XLower = LBound(MyRange, 1)
    YUpper = UBound(MyRange, 2)
    YLower = LBound(MyRange, 2)
    
    'transpose range
    Range("D1").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
      WorksheetFunction.Transpose(MyRange)
      
End Sub

Cet exemple particulier transposera les cellules de la plage A1:B5 et affichera la plage transposée commençant dans la cellule D1 .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : Comment transposer une plage dans VBA

Supposons que nous ayons l’ensemble de données suivant dans Excel qui contient des informations sur divers joueurs de basket-ball :

Supposons que nous souhaitions transposer la plage A1:B5 et afficher la plage transposée commençant dans la cellule D1 .

Nous pouvons créer la macro suivante pour ce faire :

Sub TransposeRange()

    'specify range to transpose
    MyRange = Range("A1:B5")
    
    'find dimensions of range
    XUpper = UBound(MyRange, 1)
    XLower = LBound(MyRange, 1)
    YUpper = UBound(MyRange, 2)
    YLower = LBound(MyRange, 2)
    
    'transpose range
    Range("D1").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
      WorksheetFunction.Transpose(MyRange)
      
End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Notez que la plage transposée est affichée à partir de la cellule D1 .

Autrement dit, les lignes et les colonnes sont inversées.

Pour transposer une plage différente, remplacez simplement A1: B5 dans la macro par une plage différente.

Remarque : Vous pouvez trouver la documentation complète de la méthode VBA Transpose ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment compter les cellules avec un texte spécifique
VBA : Comment compter le nombre de lignes dans la plage
VBA : Comment écrire les fonctions COUNTIF et COUNTIFS

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *