Copier/coller une variable tableau dans une feuille Excel

Bonjour,

Je cherche à copier/coller une variable tableau dans fichier Excel différent mais je ne comprends pas bien ce qu'il faut écrire dans le VBA pour y arriver, Est-ce que quelqu'un peut m'expliquer ?

Pour expliquer un peu plus ce que je souhaite faire j'ai joint le fichier en question:

  • J'ai nommé les cellules C2:O10 avec le nom de variable TAB_INDIC
  • Je souhaite avec une macro, copier le tableau TAB_INDIC dans une autre feuille Excel

PS: J'ai choisi d'utiliser la variable TAB car à la fin de chaque année les colonnes sont décalées d'une année.

PS2: J'ai vu un sujet assez similaire mais je n'ai pas réussi à le retranscrire correctement veuillez m'en excuser.

Si quelqu'un veut bien m'éclairer sur le sujet je le suis serai reconnaissant !

Bonne journée

76classeurtab.xlsx (9.42 Ko)

Bonjour Momou, bonjour le forum,

Essaie comme ça :

Le second fichier étant ouvert (pour l'exemple je vais le nommer Destination.xlsx) exécute le code (à adapter) :

Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set CS = ThisWorkbook 'définit le classeur source CS
Set OS = CS.Sheets("Feuil1") 'définit l'onglet source OS (à adapter à ton cas)
Set CD = Workbooks("Destination.xlsx") 'définit le classeur destination CD (à adapter à ton cas)
Set OD = CD.Worksheets("Feuil1") 'définit l'onglet destination OD (à adapter à ton cas)
Set DEST = OG.Range("A1") 'définit la cellule de destination (à adapter à ton cas)
OS.Range("TAB_INDIC").Copy DEST 'copy la plane nommé "TAB_INDUIC" dans DEST
End Sub

Ce code est à placer dans le classeur ClasseurTab.xlsx qui, du fait de la macro, va devenir ClasseurTab.xlsm...

214tab-indic.xlsm (16.12 Ko)

Bonjour ThauThème,

C'est tout simplement ... parfait !

C'est impeccable et ça marche super bien.

Merci beaucoup pour la solution et pour les explications très claires sur le code, je saurais m'en resservir

Bonne journée à toi

Bonjour,

si la plage cible est A1 tu peux utiliser cette macro :

Sub test()
Dim a
a = Worksheets("Feuil1").Range("C2:O10")
Worksheets("Feuil2").Range("A1").Resize(UBound(a, 1), UBound(a, 2)) = a
End Sub

A+

Bonjour galopin,

Merci pour la proposition mais je me demande ce qu'il se passe si j'insert une colonne pour rajouter 2017 par exemple à côté de 2016.

Je pense que la plage ne se mettra pas à jour automatiquement et prendra en compte des valeurs que je ne souhaite pas si je ne me trompe

Ménon ! ...Messi !

Tu peux bien utiliser Range("TAB_INDIC")

Sub test()
Dim a
a = Worksheets("Feuil1").Range("TAB_INDIC")
Worksheets("Feuil2").Range("A1").Resize(UBound(a, 1), UBound(a, 2)) = a
End Sub

A+

Re,

Je précise que la méthode galopin (que je salue au passage) est bien plus rapide mais ne conserve pas les formats source. Donc en fonction de tes besoins choisis l'une ou l'autre des options...

C'est noté !

Merci bien pour vos conseils et solutions

Je repars sur VBA

Rechercher des sujets similaires à "copier coller variable tableau feuille"