Utiliser valeurs d'un autre classeur

dar0609

XLDnaute Nouveau
Bonjour à tous,

Je souhaite réaliser une macro dans laquelle j'ai besoin d'aller chercher des valeurs dans un autre fichier que celui sur lequel je travaille. Quelqu'un pourrait m'expliquer les étapes à suivre afin que ça marche. Pour l'instant j'avais simplement essayer d'écrire : Workbooks("C:\...").sheets("..").cells(..).value.

Cela ne marche pas, le système m'indique une erreur d’exécution 9, "l'indice n'appartient pas à la sélection".

Pourriez-vous m'aider là-dessus merci.
 

dar0609

XLDnaute Nouveau
Re : Utiliser valeurs d'un autre classeur

Pierrot,

J'ai un problème car mon code ne marche toujours pas, le voici peux-tu me dire ce que tu en penses, merci.

Private Sub userform_activate()

Workbooks.Open ("C:\Users\gdarnaudet\Desktop\Macros\Ventes.xlsm")
Dim lastRow3 As Integer
lastRow3 = Workbooks("C:\Users\gdarnaudet\Desktop\Macros\Ventes.xlsm").Sheets("Ventes 2010").Cells(65536, 3).End(xlUp).Row

Dim c As Integer

For c = 1 To lastRow3 Step 1
ComboBox1.AddItem Workbooks("C:\Users\gdarnaudet\Desktop\Macros\Ventes.xlsm").Sheets("Ventes 2010").Cells(c, 3).Value
Next

End Sub
 

Jam

XLDnaute Accro
Re : Utiliser valeurs d'un autre classeur

Bonjour dar,

Pourquoi ne pas tout simplement faire un lien dans un onglet spécifique (genre Paramètre ;)) et utiliser ensuite la valeur de cette cellule dans ta macro ?

Bon courage


modif: Salut Pierrot
 

Jam

XLDnaute Accro
Re : Utiliser valeurs d'un autre classeur

Re,

Ola...vous allez trop vite pour moi ce matin :p

Pour l'histoire de l'onglet (une feuille en fait) vu ta première question je pensais que tu n'avais besoin que d'une valeur. Donc un simple lien vers l'autre classeur aurait pu suffire. Bon, en fait c'est pas la bonne réponse vu la suite du post.

Les conseils de Pierrot étant toujours très pertinents tu es entre de bonnes mains.
Je me permettrai juste de t'apporter un modeste conseille.
Lorsque tu veux/doit travailler avec plusieurs classeurs en même temps il est sage d'affecter leurs noms à des variables puis d'utiliser ces variables. C'est plus simple, et surtout il y a moins de risque de boulette. C'est d'autant plus valables si tu fais des aller/retours nombreux d'un classeur à un autre.
Il faut faire quelque chose comme ça:
VB:
Dim wkbSource As Workbook
Dim wkbDestination As Workbook

Set wkbSource = Workbooks("Ventes.xlsm")
Set wkbDestination = Thisworkbook

...tes petits traitements (en utilisant les variables hein ;-) )...


Set wkbSource = nothing
Set wkbDestination = nothing

Bon courage
 

Discussions similaires

Statistiques des forums

Discussions
312 875
Messages
2 093 143
Membres
105 638
dernier inscrit
cordier