Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

Pierrot93

XLDnaute Barbatruc
Re : Utiliser valeurs d'un autre classeur

Re,

une fois le classeur ouvert, n'utiliser que son nom + extension :
Code:
lastRow3 = Workbooks("Ventes.xlsm").Sheets("Ventes 2010").Cells(65536, 3).End(xlUp).Row

Edition : bonjour Jam
 

Jam

XLDnaute Accro
Re : Utiliser valeurs d'un autre classeur

Re,

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

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…