Syntaxe VBA pour copie entre fichiers XL

Syntaxe VBA pour copie entre fichiers XL - VB/VBA/VBS - Programmation

Marsh Posté le 23-05-2008 à 10:19:19    

Bonjour,
 
Je veux copier la valeur d’une cellule d’un classeur dans une cellule d’un autre classeur – les deux étant ouverts, hein.
 
Qu'est-ce qui cloche dans ma syntaxe ci-dessous ?
 
Workbooks("Classeur2.xls" ).Worksheets(Feuil1).Range("J31" ) = Workbooks("Classeur1.xls" ).Worksheets(Feuil1).Range("C17" )
 
Merci !


---------------
Benoît
Reply

Marsh Posté le 23-05-2008 à 10:19:19   

Reply

Marsh Posté le 23-05-2008 à 10:37:28    

J'ai trouvé, hum : histoire de GUILLEMETS, simplement...
... Worksheets("Feuil1" )...
 
Mais si qqn a une syntaxe plus légère, je suis preneur...

Reply

Marsh Posté le 25-05-2008 à 14:54:58    

Bah, en soit il n'y a pas de syntaxe plus légère sauf si tu as pleins de cellules à copier. Dans ce cas, un code de ce type peut-être plus "propre" :
 

Code :
  1. Dim shSource as Worksheet
  2. Dim shTarget as Worksheet
  3. Set shSource = Workbooks("Classeur1.xls" ).Worksheets("Feuil1" )
  4. Set shTarget = Workbooks("Classeur2.xls" ).Worksheets("Feuil1" )
  5. With shTarget
  6.    .Range("J31" ) = shSource.Range("C17" )
  7.    .Range(...) = shSource.Range(...)
  8.    ...
  9. End With


Cette syntaxe est largement préférable :
- pour + d'une valeur
- surtout pour des raisons de maintenabilité (si jamais il faut rajouter une valeur à copier par la suite, ou si les feuilles changent de noms, ...)


Message édité par dreameddeath le 25-05-2008 à 19:22:40
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed