Vidéo: Excel VBA - Comment copier une plage de données dynamique ? 2024
Il ne suffit pas de connaître la taille de la plage requise par la fonction que vous entrez via une formule matricielle. Vous devez également comprendre son but.
Un bon exemple est la fonction TRANSPOSE. De temps en temps, il arrive que vous souhaitiez transformer un tableau de valeurs de 90 degrés. Voir la figure suivante pour un exemple.
Il y a deux bonnes façons de placer le tableau dans A1: F2 dans C4: D9.Beaucoup de situations plus techniques (par exemple, divers calculs dans l'algèbre matricielle) nécessitent la transposition d'un tableau de valeurs, mais le besoin se pose probablement plus souvent lorsque vous traitez des problèmes de mise en page. La figure montre quelques abréviations de nom de mois dans A1: F1 et certaines valeurs de devise dans A2: F2. Si vous souhaitez placer ces valeurs dans un tableau croisé dynamique, vous souhaiterez probablement les réorienter comme indiqué dans C4: D9.
Lorsque vous utilisez une formule matricielle pour copier A1: E2 de la figure dans C5: D9, il peut vous arriver de créer une table de la plage C4: D9. Malheureusement, les tables Excel ne peuvent pas inclure des formules de tableau à cellules multiples.
Une approche consiste à sélectionner A1: F2, à le copier avec la méthode de votre choix et à sélectionner C4. Choisissez ensuite Coller dans le groupe Presse-papiers dans l'onglet Accueil du ruban, puis cliquez sur l'icône Transposer dans le premier groupe de commandes Coller.
Le résultat est de changer l'orientation ligne par colonne de A1: F2 en C4: D9. C'est souvent exactement ce que vous voulez, en particulier si votre but était d'adapter la mise en page existante dans un rapport.
Mais supposons que les informations de A1: F2 changent de temps en temps. Au fil des mois, les résultats des mois précédents pourraient être révisés. Dans ce cas, vous voudrez probablement mettre à jour les données de C4: D9 avec les données de A1: F2. C'est un aspect utile de la fonction TRANSPOSE d'Excel.
Ne prenez pas la peine de copier A1: F2. Au lieu de cela, commencez par sélectionner C4: D9. Puis array-entrez cette formule:
= TRANSPOSE (A1: F2)
Le résultat ressemble à ce que vous voyez sur la figure, mais à la place des valeurs dans C4: D9, cette plage contient une formule matricielle. Par conséquent, si les données dans A1: F2 changent, les modifications sont reflétées dans C4: D9.
Le point le plus général à retenir de cette section est que vous devez savoir ce que TRANSPOSE fait pour sélectionner la gamme qui le contiendra, avant d'entrer dans la fonction. Avec une fonction telle que DROITEREG, vous devez savoir sélectionner une plage de cinq lignes de haut, avec un nombre de colonnes qui dépend du nombre de variables que vous devez analyser. Avec une fonction telle que TRANSPOSE, vous devez dériver les lignes et les colonnes et leur orientation à partir des lignes et des colonnes du tableau d'origine.