XL 2016 Coller contenu tableau de variables du Classeur 1 sur Classeur 2

SebCam

XLDnaute Nouveau
Bonjour à tous,
Quelle est la forme du code pour coller l'ensemble des valeurs d'un tableau dimensionné [12 lignes, 7 colonnes]?

.Cells(j, Col).Value = TabVariable(j, Col).Value où j et Col sont des entiers pour mes boucles ligne et colonne. A ce niveau le code me renvoie une erreur d'exécution, Objet requis.

TabVariable(j, Col).Value correspond à mon tableau dimensionné de mon Classeur 1, qui appelle l'ouverture du Classeur 2
.Cells(j, Col).Value est la cellule visée dans le classeur 2, à coller le contenu du tableau dimensionné.

Merci de l'apport de complément, et de l'aide de chacun.

je joints les deux fichiers, Classeur 1 Maître : KPI Methodes, et Classeur 2 esclave : KPI MRI (en xlsx appelé par le fichier Maître).
 

Pièces jointes

  • 00-Analyse Vibratoire KPI Methodes.xlsm
    23.6 KB · Affichages: 13
  • 00-Analyse Vibratoire KPI MRI.xlsx
    12.4 KB · Affichages: 5
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonsoir.
Un tableau n'est pas un objet, il n'a donc pas de propriété, en particulier pas de propriété Value.
Par contre vous pouvez affecter l'ensemble d'un tableau à la propriété Value d'un Range couvrant toutes les cellules voulues, pas besoin de boucle.
 

Dranreb

XLDnaute Barbatruc
Pourquoi ne faites vous pas simplement :
VB:
Set wk_template_BD = Application.Workbooks.Open("E:\000-Fiches utilitaires_KPI\02- KPI Key Performance Indicator\00-KPI\" _
   & "00-Analyse Vibratoire KPI MRI.xlsx")
Set ws_BD = wk_template_BD.Worksheets("INDICATEUR PERF VIBRATOIRE")
ws_BD.[A4:L19].Value = Feuil2.[A4:L19].Value
ws_BD.[E8:E19].FormulaR1C1 = "=RC4/RC3"
ws_BD.[F8:F19].FormulaR1C1 = "=RC7+RC8"
 

SebCam

XLDnaute Nouveau
Bonsoir Dranreb,
je ne connaissais pas cette façon de coder, mais en effet ça marche. En résumé,
[A4:L19] de la feuille destination copie conforme des valeurs de la feuille source.
[E8:E19] et [F8:F19] de la feuille destination, copie des formules de la feuille source.

C'est beaucoup plus rapide à coder, que mon code initial!

Merci à toi.
 

SebCam

XLDnaute Nouveau
Bonsoir cher membre.
Je reviens sur le post, pour le code que j'ai présenté. Celui de Dranreb, que je remercie, fonctionne.
Après plusieurs test, l'écriture .Cells(j, Col).Value = TabVariable(j, Col).Value me renvoyait une erreur d'exécution.
Il fallait écrire ceci : .Cells(j, Col).Value = TabVariable(j, Col)

Et là ça marche! Pour ceux à qui ça intéresse.

Merci encore Dranreb
 

Discussions similaires

Statistiques des forums

Discussions
312 166
Messages
2 085 885
Membres
103 018
dernier inscrit
mohcen23