référencer des feuilles/classeurs

  • Initiateur de la discussion stipe
  • Date de début
S

stipe

Guest
bonjour, voici mon souci :
je travaille sur une feuille excel qui lance une macro. Cette macro doit copier des données de ma feuilles dans une feuille d'un autre classeur qui n'est pas encore ouvert.

je sais comment ouvrir mon 2eme classeur, mais ce qui m'ennuie un peu plus, c'est de 'jongler' entre les 2 classeurs sans avoir à répéter à chq fois les noms des classeurs.

admettons que ma feuille initiale (appelée Fiche Porpect') soit issue d'un classeur appelé
H:\\COMMERCE\\Nouveau Système devis (2004)\\Fiche Prospect.xls et que ma seconde feuille (celle que j'ouvre ensuite) s'appelle Clients et soit issue du fichier H:\\COMMERCE\\Nouveau Système devis (2004)\\clients instrus.xls

je voudrais trouver un moyen de faire plus court que cette instruction, par exemple:

Workbooks('H:\\COMMERCE\\Nouveau Système devis (2004)\\clients instrus.xls').Worksheets('Client').Range('H6').Value = Workbooks('H:\\COMMERCE\\Nouveau Système devis (2004)\\Fiche Prospect.xls').Worksheets('Prospect').Range('B4').Value
?

j'espere que mon enoncé est suffisement clair :p

merci d'avance
 

Jacques87

XLDnaute Accro
Bonjour

Pourquoi ne pas utiliser des variables

book1 = 'H:COMMERCENouveau Système devis (2004)clients
instrus.xls\\'
book2 = 'H:COMMERCENouveau Système
devis (2004)Fiche Prospect.xls'

WorkBooks(book1).Sheets('Clients').range('H6') = WorkBooks(book2).Sheets('Prospect').range('B4')

Il y a aussi moyen d'utiliser une indexation à condition qu'il n'y ait aucune ambiguité

WorkBooks(1).Sheets(1).Range('H6') = WorkBook(2).Sheets(1).Range('B4')

peut être bien que cela répond à ta question

Bon courage

Message édité par: Jacques87, à: 16/03/2006 16:03
 

CBernardT

XLDnaute Barbatruc
Bonjour Stipe,

Essayes avec ce code :

Sub TransfertsExternes()
'Déclaration des variables
Dim Wb1 As Workbook, Wb2 As Workbook
' Définition des variables
Set Wb1 = Workbooks('H:COMMERCENouveau Système devis (2004)Fiche Prospect.xls ')
Set Wb2 = Workbooks('H:COMMERCENouveau Système devis (2004)clients instrus.xls')
' transfert de données
Wb1.Worksheets('Client').Range('H6').Value = Wb2.Worksheets('Prospect').Range('B4').Value

'.........

End Sub

Cordialement

Bernard
 

stipe

XLDnaute Nouveau
CBernardT écrit:
Bonjour Stipe,

Essayes avec ce code :

Sub TransfertsExternes()
'Déclaration des variables
Dim Wb1 As Workbook, Wb2 As Workbook
' Définition des variables
Set Wb1 = Workbooks('H:COMMERCENouveau Système devis (2004)Fiche Prospect.xls ')
Set Wb2 = Workbooks('H:COMMERCENouveau Système devis (2004)clients instrus.xls')
' transfert de données
Wb1.Worksheets('Client').Range('H6').Value = Wb2.Worksheets('Prospect').Range('B4').Value

'.........

End Sub

Cordialement

Bernard

merci pour la reponse,

mais j'ai une erreur d'execution n°9 : 'indice en dehors de la plage' :eek:
je pige pas trop le rapport, mais en tous cas il me jette...
 

Discussions similaires

Statistiques des forums

Discussions
312 695
Messages
2 091 047
Membres
104 746
dernier inscrit
Eva_M