OVH Cloud OVH Cloud

Workbooks et Worksheets

2 réponses
Avatar
Quetzalcoatl
Bonsoir,

J'ai du mal à comprendre le fonctionnement des collections Workbooks et
Worksheets, ou de l'instruction Set ou la notion de Activate.
Pouvez-vous m'aider ?
Jugez plutôt :

A/ Soit une macro VBA sous EXCEL 97, exécutée depuis un classeur donné, et
devant accéder à une feuille d'un autre classeur.
Je ne comprends pas la différence entre les 2 séquences d'instructions VBA
suivantes (la première ne fonctionne pas, la seconde fonctionne et
sélectionne bien la cellule A1 de la feuille "feuil1" du classeur
"fichier1") :

[1]
Set Wkb1= Workbooks("fichier1")
Set Wks1 = Worksheets("feuil1")
Wkb1.Wks1.Range("A1").Select

[2]
Workbooks("fichier1").Worksheets("feuil1").Range("A1").Select

B/ Pourtant, les instructions suivantes permettent bien de sélectionner la
cellule A1 de la feuille "feuil1" du classeur "fichier1" :

[3]
[classeur actif = "fichier1", feuille active = "feuil1"]
Set Wks1 = ActiveSheet
[changement de classeur actif]
Wks1.Range("A1").Select

Merci d'avance pour toute explication.

Cordialement.

2 réponses

Avatar
docm
Bonjour Quetzalcoatl.

Voici un exemple:

Set Wkb1 = Workbooks("classeur1")
Set Wks1 = Wkb1.Worksheets("Feuil1")

Wkb1 et Wks1 sont 2 objets indépendants.
Ta formulation
Wkb1.Wks1.Select
n'est pas bonne car Wks1 n'est pas une propriété de Wkb1. Il faut les
utiliser séparément.

Wkb1.Activate
Wks1.Activate
Wks1.Range("C1:C10").select
Wks1.Range("C1:C10").Range("A2").Activate

La commande Activate appliquée à un Range "active une cellule située à
l'intérieur de la sélection courante. Pour sélectionner une plage de
cellules, utilisez la méthode Select."

docm



"Quetzalcoatl" wrote in message
news:44889017$0$882$
Bonsoir,

J'ai du mal à comprendre le fonctionnement des collections Workbooks et
Worksheets, ou de l'instruction Set ou la notion de Activate.
Pouvez-vous m'aider ?
Jugez plutôt :

A/ Soit une macro VBA sous EXCEL 97, exécutée depuis un classeur donné, et
devant accéder à une feuille d'un autre classeur.
Je ne comprends pas la différence entre les 2 séquences d'instructions VBA
suivantes (la première ne fonctionne pas, la seconde fonctionne et
sélectionne bien la cellule A1 de la feuille "feuil1" du classeur
"fichier1") :

[1]
Set Wkb1= Workbooks("fichier1")
Set Wks1 = Worksheets("feuil1")
Wkb1.Wks1.Range("A1").Select

[2]
Workbooks("fichier1").Worksheets("feuil1").Range("A1").Select

B/ Pourtant, les instructions suivantes permettent bien de sélectionner la
cellule A1 de la feuille "feuil1" du classeur "fichier1" :

[3]
[classeur actif = "fichier1", feuille active = "feuil1"]
Set Wks1 = ActiveSheet
[changement de classeur actif]
Wks1.Range("A1").Select

Merci d'avance pour toute explication.

Cordialement.




Avatar
Quetzalcoatl
Merci!


"docm" a écrit dans le message de news:

Bonjour Quetzalcoatl.

Voici un exemple:

Set Wkb1 = Workbooks("classeur1")
Set Wks1 = Wkb1.Worksheets("Feuil1")

Wkb1 et Wks1 sont 2 objets indépendants.
Ta formulation
Wkb1.Wks1.Select
n'est pas bonne car Wks1 n'est pas une propriété de Wkb1. Il faut les
utiliser séparément.

Wkb1.Activate
Wks1.Activate
Wks1.Range("C1:C10").select
Wks1.Range("C1:C10").Range("A2").Activate

La commande Activate appliquée à un Range "active une cellule située à
l'intérieur de la sélection courante. Pour sélectionner une plage de
cellules, utilisez la méthode Select."

docm



"Quetzalcoatl" wrote in message
news:44889017$0$882$
Bonsoir,

J'ai du mal à comprendre le fonctionnement des collections Workbooks et
Worksheets, ou de l'instruction Set ou la notion de Activate.
Pouvez-vous m'aider ?
Jugez plutôt :

A/ Soit une macro VBA sous EXCEL 97, exécutée depuis un classeur donné,
et
devant accéder à une feuille d'un autre classeur.
Je ne comprends pas la différence entre les 2 séquences d'instructions
VBA
suivantes (la première ne fonctionne pas, la seconde fonctionne et
sélectionne bien la cellule A1 de la feuille "feuil1" du classeur
"fichier1") :

[1]
Set Wkb1= Workbooks("fichier1")
Set Wks1 = Worksheets("feuil1")
Wkb1.Wks1.Range("A1").Select

[2]
Workbooks("fichier1").Worksheets("feuil1").Range("A1").Select

B/ Pourtant, les instructions suivantes permettent bien de sélectionner
la
cellule A1 de la feuille "feuil1" du classeur "fichier1" :

[3]
[classeur actif = "fichier1", feuille active = "feuil1"]
Set Wks1 = ActiveSheet
[changement de classeur actif]
Wks1.Range("A1").Select

Merci d'avance pour toute explication.

Cordialement.