Bonsoir.
Où est l'erreur ?
Dim wb As Workbook, sh As Worksheet
Var = Range("A1") 'OK
Var = sh.Range("A1") 'OK
Var = wb.sh.Range("A1") 'Plante !!!
Je me suis assuré avec :
Var = wb.Name
Var = sh.Name
que le classeur et la feuille sont les bons.
D'ailleurs :
Var = Workbooks(wb.Name).Sheets(sh.Name).Range("A1")
donne le résultat correct.
Qu'est-ce qui cloche ?
Merci d'avance.
Daniel
Bonsoir.
Où est l'erreur ?
Dim wb As Workbook, sh As Worksheet
Var = Range("A1") 'OK
Var = sh.Range("A1") 'OK
Var = wb.sh.Range("A1") 'Plante !!!
Je me suis assuré avec :
Var = wb.Name
Var = sh.Name
que le classeur et la feuille sont les bons.
D'ailleurs :
Var = Workbooks(wb.Name).Sheets(sh.Name).Range("A1")
donne le résultat correct.
Qu'est-ce qui cloche ?
Merci d'avance.
Daniel
Bonsoir.
Où est l'erreur ?
Dim wb As Workbook, sh As Worksheet
Var = Range("A1") 'OK
Var = sh.Range("A1") 'OK
Var = wb.sh.Range("A1") 'Plante !!!
Je me suis assuré avec :
Var = wb.Name
Var = sh.Name
que le classeur et la feuille sont les bons.
D'ailleurs :
Var = Workbooks(wb.Name).Sheets(sh.Name).Range("A1")
donne le résultat correct.
Qu'est-ce qui cloche ?
Merci d'avance.
Daniel
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Un autre façon de définir tes variables
Set Wk = Workbooks("Classeur1.xls")
With Wk
Set Sh = .Worksheets("Feuil1")
End With
J'allais oublié, à chaque fois que tu veux déclarer un objet Feuille
tu n'est pas oubligé de déclarer un objet Workbook
Exemple : Set Sh = Workbooks("NomDuClasseur.xls").Worksheets("Feuil1")
With Sh
x = .range("A1")
End With
Ce type de syntaxe est impossible
with Wb.Sh
x = .range("A1")
End with
Wb et Sh sont 2 variables objets et lorsqu'elles ont été bien renseignées
ces variables sont autonomes.
Il y a aussi ceci
With Wk.Worksheets("Feuil1")
x = .range("A1")
End with
"Daniel" a écrit dans le message de news:Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Mais je peux mettre :
set sh = leclasseur.lafeuille.
Bizarre quand même que ça plante ?
Daniel
Un autre façon de définir tes variables
Set Wk = Workbooks("Classeur1.xls")
With Wk
Set Sh = .Worksheets("Feuil1")
End With
J'allais oublié, à chaque fois que tu veux déclarer un objet Feuille
tu n'est pas oubligé de déclarer un objet Workbook
Exemple : Set Sh = Workbooks("NomDuClasseur.xls").Worksheets("Feuil1")
With Sh
x = .range("A1")
End With
Ce type de syntaxe est impossible
with Wb.Sh
x = .range("A1")
End with
Wb et Sh sont 2 variables objets et lorsqu'elles ont été bien renseignées
ces variables sont autonomes.
Il y a aussi ceci
With Wk.Worksheets("Feuil1")
x = .range("A1")
End with
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
Oywv3Sf2HHA.1164@TK2MSFTNGP02.phx.gbl...
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Mais je peux mettre :
set sh = leclasseur.lafeuille.
Bizarre quand même que ça plante ?
Daniel
Un autre façon de définir tes variables
Set Wk = Workbooks("Classeur1.xls")
With Wk
Set Sh = .Worksheets("Feuil1")
End With
J'allais oublié, à chaque fois que tu veux déclarer un objet Feuille
tu n'est pas oubligé de déclarer un objet Workbook
Exemple : Set Sh = Workbooks("NomDuClasseur.xls").Worksheets("Feuil1")
With Sh
x = .range("A1")
End With
Ce type de syntaxe est impossible
with Wb.Sh
x = .range("A1")
End with
Wb et Sh sont 2 variables objets et lorsqu'elles ont été bien renseignées
ces variables sont autonomes.
Il y a aussi ceci
With Wk.Worksheets("Feuil1")
x = .range("A1")
End with
"Daniel" a écrit dans le message de news:Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Mais je peux mettre :
set sh = leclasseur.lafeuille.
Bizarre quand même que ça plante ?
Daniel
Un autre façon de définir tes variables
Set Wk = Workbooks("Classeur1.xls")
With Wk
Set Sh = .Worksheets("Feuil1")
End With
J'allais oublié, à chaque fois que tu veux déclarer un objet Feuille
tu n'est pas oubligé de déclarer un objet Workbook
Exemple : Set Sh = Workbooks("NomDuClasseur.xls").Worksheets("Feuil1")
With Sh
x = .range("A1")
End With
Ce type de syntaxe est impossible
with Wb.Sh
x = .range("A1")
End with
Wb et Sh sont 2 variables objets et lorsqu'elles ont été bien renseignées
ces variables sont autonomes.
Il y a aussi ceci
With Wk.Worksheets("Feuil1")
x = .range("A1")
End with
"Daniel" a écrit dans le message de news:Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Mais je peux mettre :
set sh = leclasseur.lafeuille.
Bizarre quand même que ça plante ?
Daniel
Un autre façon de définir tes variables
Set Wk = Workbooks("Classeur1.xls")
With Wk
Set Sh = .Worksheets("Feuil1")
End With
J'allais oublié, à chaque fois que tu veux déclarer un objet Feuille
tu n'est pas oubligé de déclarer un objet Workbook
Exemple : Set Sh = Workbooks("NomDuClasseur.xls").Worksheets("Feuil1")
With Sh
x = .range("A1")
End With
Ce type de syntaxe est impossible
with Wb.Sh
x = .range("A1")
End with
Wb et Sh sont 2 variables objets et lorsqu'elles ont été bien renseignées
ces variables sont autonomes.
Il y a aussi ceci
With Wk.Worksheets("Feuil1")
x = .range("A1")
End with
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
Oywv3Sf2HHA.1164@TK2MSFTNGP02.phx.gbl...
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Mais je peux mettre :
set sh = leclasseur.lafeuille.
Bizarre quand même que ça plante ?
Daniel
Un autre façon de définir tes variables
Set Wk = Workbooks("Classeur1.xls")
With Wk
Set Sh = .Worksheets("Feuil1")
End With
J'allais oublié, à chaque fois que tu veux déclarer un objet Feuille
tu n'est pas oubligé de déclarer un objet Workbook
Exemple : Set Sh = Workbooks("NomDuClasseur.xls").Worksheets("Feuil1")
With Sh
x = .range("A1")
End With
Ce type de syntaxe est impossible
with Wb.Sh
x = .range("A1")
End with
Wb et Sh sont 2 variables objets et lorsqu'elles ont été bien renseignées
ces variables sont autonomes.
Il y a aussi ceci
With Wk.Worksheets("Feuil1")
x = .range("A1")
End with
"Daniel" a écrit dans le message de news:Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Mais je peux mettre :
set sh = leclasseur.lafeuille.
Bizarre quand même que ça plante ?
Daniel
With Wb.Sh
End with
Pourquoi ceci ne fonctionne pas : Wb.Sh
Il faut d'abord savoir qu'une variable est d'abord et avant
qu' un espace mémoire réservé de la mémoire vive de
ton ordinateur pouvant contenir soit une valeur, soit un objet.
Chacune des variables est autonome. S'il est vrai que les
objets de l'application ont une hiérarchie, cette dernière
ne s'applique pas aux variables mais seulement aux objets
dûment créés dans un classeur. Par exemple, tu as
Workbook -> Worksheet -> Range
La variable objet lorsque tu la crées, tu dois lui spécifié
exactement ce qu'elle représente en utilisant "SET"... et
lorsque c'est fait, elle s'en souvient durant tout la durée de
son existence. Nul besoin de passer ton temps à lui rappeler.
Exemple : pour déclarer un objet Range
Set Rg = Workbooks("Denis.xls").Worksheets("MaFeuille").Range("A25")
Dans le reste de ton code, lorsque tu appelles la variable Rg comme dans
x = Rg.Value peu importe le nombre de classeur ouvert ou que le classeur
soit actif ou non, la variable Rg est toujours identifiée à la feuille
"Mafeuille"
du classeur Denis.xls
Une variable ne peut contenir plus qu'une valeur ou un objet à la fois.
Rien ne t'empêche, cependant, de lui atribuer différents objets au cours
de la procédure :
Dim Rg as range
Set Rg = Workbooks("Denis.xls").Worksheets("MaFeuille").Range("A25")
et un peu plus loin.... en respectant le type d'objet que représente la
variable.
Set Rg = Workbooks("Denis.xls").Worksheets("MaFeuille").Range("c25:G50")
Rg représentera toujours la dernère attribution que tu lui as adressé.
"Daniel" a écrit dans le message de news:
%235hi%
C'est vrai. Je demande seulement en quoi la syntaxe que j'ai utilisée est
fautive
Daniel
"MichDenis" a écrit dans le message de news:
%
Un autre façon de définir tes variables
Set Wk = Workbooks("Classeur1.xls")
With Wk
Set Sh = .Worksheets("Feuil1")
End With
J'allais oublié, à chaque fois que tu veux déclarer un objet Feuille
tu n'est pas oubligé de déclarer un objet Workbook
Exemple : Set Sh = Workbooks("NomDuClasseur.xls").Worksheets("Feuil1")
With Sh
x = .range("A1")
End With
Ce type de syntaxe est impossible
with Wb.Sh
x = .range("A1")
End with
Wb et Sh sont 2 variables objets et lorsqu'elles ont été bien renseignées
ces variables sont autonomes.
Il y a aussi ceci
With Wk.Worksheets("Feuil1")
x = .range("A1")
End with
"Daniel" a écrit dans le message de news:Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Mais je peux mettre :
set sh = leclasseur.lafeuille.
Bizarre quand même que ça plante ?
Daniel
With Wb.Sh
End with
Pourquoi ceci ne fonctionne pas : Wb.Sh
Il faut d'abord savoir qu'une variable est d'abord et avant
qu' un espace mémoire réservé de la mémoire vive de
ton ordinateur pouvant contenir soit une valeur, soit un objet.
Chacune des variables est autonome. S'il est vrai que les
objets de l'application ont une hiérarchie, cette dernière
ne s'applique pas aux variables mais seulement aux objets
dûment créés dans un classeur. Par exemple, tu as
Workbook -> Worksheet -> Range
La variable objet lorsque tu la crées, tu dois lui spécifié
exactement ce qu'elle représente en utilisant "SET"... et
lorsque c'est fait, elle s'en souvient durant tout la durée de
son existence. Nul besoin de passer ton temps à lui rappeler.
Exemple : pour déclarer un objet Range
Set Rg = Workbooks("Denis.xls").Worksheets("MaFeuille").Range("A25")
Dans le reste de ton code, lorsque tu appelles la variable Rg comme dans
x = Rg.Value peu importe le nombre de classeur ouvert ou que le classeur
soit actif ou non, la variable Rg est toujours identifiée à la feuille
"Mafeuille"
du classeur Denis.xls
Une variable ne peut contenir plus qu'une valeur ou un objet à la fois.
Rien ne t'empêche, cependant, de lui atribuer différents objets au cours
de la procédure :
Dim Rg as range
Set Rg = Workbooks("Denis.xls").Worksheets("MaFeuille").Range("A25")
et un peu plus loin.... en respectant le type d'objet que représente la
variable.
Set Rg = Workbooks("Denis.xls").Worksheets("MaFeuille").Range("c25:G50")
Rg représentera toujours la dernère attribution que tu lui as adressé.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
%235hi%23nf2HHA.5884@TK2MSFTNGP02.phx.gbl...
C'est vrai. Je demande seulement en quoi la syntaxe que j'ai utilisée est
fautive
Daniel
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%239o29ff2HHA.3764@TK2MSFTNGP04.phx.gbl...
Un autre façon de définir tes variables
Set Wk = Workbooks("Classeur1.xls")
With Wk
Set Sh = .Worksheets("Feuil1")
End With
J'allais oublié, à chaque fois que tu veux déclarer un objet Feuille
tu n'est pas oubligé de déclarer un objet Workbook
Exemple : Set Sh = Workbooks("NomDuClasseur.xls").Worksheets("Feuil1")
With Sh
x = .range("A1")
End With
Ce type de syntaxe est impossible
with Wb.Sh
x = .range("A1")
End with
Wb et Sh sont 2 variables objets et lorsqu'elles ont été bien renseignées
ces variables sont autonomes.
Il y a aussi ceci
With Wk.Worksheets("Feuil1")
x = .range("A1")
End with
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
Oywv3Sf2HHA.1164@TK2MSFTNGP02.phx.gbl...
Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Mais je peux mettre :
set sh = leclasseur.lafeuille.
Bizarre quand même que ça plante ?
Daniel
With Wb.Sh
End with
Pourquoi ceci ne fonctionne pas : Wb.Sh
Il faut d'abord savoir qu'une variable est d'abord et avant
qu' un espace mémoire réservé de la mémoire vive de
ton ordinateur pouvant contenir soit une valeur, soit un objet.
Chacune des variables est autonome. S'il est vrai que les
objets de l'application ont une hiérarchie, cette dernière
ne s'applique pas aux variables mais seulement aux objets
dûment créés dans un classeur. Par exemple, tu as
Workbook -> Worksheet -> Range
La variable objet lorsque tu la crées, tu dois lui spécifié
exactement ce qu'elle représente en utilisant "SET"... et
lorsque c'est fait, elle s'en souvient durant tout la durée de
son existence. Nul besoin de passer ton temps à lui rappeler.
Exemple : pour déclarer un objet Range
Set Rg = Workbooks("Denis.xls").Worksheets("MaFeuille").Range("A25")
Dans le reste de ton code, lorsque tu appelles la variable Rg comme dans
x = Rg.Value peu importe le nombre de classeur ouvert ou que le classeur
soit actif ou non, la variable Rg est toujours identifiée à la feuille
"Mafeuille"
du classeur Denis.xls
Une variable ne peut contenir plus qu'une valeur ou un objet à la fois.
Rien ne t'empêche, cependant, de lui atribuer différents objets au cours
de la procédure :
Dim Rg as range
Set Rg = Workbooks("Denis.xls").Worksheets("MaFeuille").Range("A25")
et un peu plus loin.... en respectant le type d'objet que représente la
variable.
Set Rg = Workbooks("Denis.xls").Worksheets("MaFeuille").Range("c25:G50")
Rg représentera toujours la dernère attribution que tu lui as adressé.
"Daniel" a écrit dans le message de news:
%235hi%
C'est vrai. Je demande seulement en quoi la syntaxe que j'ai utilisée est
fautive
Daniel
"MichDenis" a écrit dans le message de news:
%
Un autre façon de définir tes variables
Set Wk = Workbooks("Classeur1.xls")
With Wk
Set Sh = .Worksheets("Feuil1")
End With
J'allais oublié, à chaque fois que tu veux déclarer un objet Feuille
tu n'est pas oubligé de déclarer un objet Workbook
Exemple : Set Sh = Workbooks("NomDuClasseur.xls").Worksheets("Feuil1")
With Sh
x = .range("A1")
End With
Ce type de syntaxe est impossible
with Wb.Sh
x = .range("A1")
End with
Wb et Sh sont 2 variables objets et lorsqu'elles ont été bien renseignées
ces variables sont autonomes.
Il y a aussi ceci
With Wk.Worksheets("Feuil1")
x = .range("A1")
End with
"Daniel" a écrit dans le message de news:Et si tu veux utiliser with pour travailler avec ta feuille
With sh
'Ton code
End With
Tu n'as pas à utiliser la variable objet "Wb"
Euh si. J'ai plusieurs classeurs.
Mais je peux mettre :
set sh = leclasseur.lafeuille.
Bizarre quand même que ça plante ?
Daniel