Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" <JeNeVois@discussions.microsoft.com> a écrit dans le message de news:
C2A2B273-4D4A-4D24-81D3-535DC23B5C7F@microsoft.com...
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour,
Objet requis , je ne vois pas en dehors d'un problème de dénomination du
classeur et/ou de la feuille.
Par contre, même si le classeur et la feuille sont bien nommés, le "select"
mettra la zouba si MyBook.xls n'est pas actif dans ce cas précis.
Enfin, la variable étant de niveau module, il n'y a aucune necessité à
répeter le set.
A+Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour,
Objet requis , je ne vois pas en dehors d'un problème de dénomination du
classeur et/ou de la feuille.
Par contre, même si le classeur et la feuille sont bien nommés, le "select"
mettra la zouba si MyBook.xls n'est pas actif dans ce cas précis.
Enfin, la variable étant de niveau module, il n'y a aucune necessité à
répeter le set.
A+
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour,
Objet requis , je ne vois pas en dehors d'un problème de dénomination du
classeur et/ou de la feuille.
Par contre, même si le classeur et la feuille sont bien nommés, le "select"
mettra la zouba si MyBook.xls n'est pas actif dans ce cas précis.
Enfin, la variable étant de niveau module, il n'y a aucune necessité à
répeter le set.
A+Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" <JeNeVois@discussions.microsoft.com> a écrit dans le message de news:
C2A2B273-4D4A-4D24-81D3-535DC23B5C7F@microsoft.com...
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Merci, mais il est sousentendu que la
dénomination est correcte (sinon la
macro appelée ne fonctionnerait pas
avec la repétition de l'instruction SET).
De même si la feuille n'était pas activée.
SalutationsBonjour,
Objet requis , je ne vois pas en dehors d'un problème de dénomination du
classeur et/ou de la feuille.
Par contre, même si le classeur et la feuille sont bien nommés, le "select"
mettra la zouba si MyBook.xls n'est pas actif dans ce cas précis.
Enfin, la variable étant de niveau module, il n'y a aucune necessité à
répeter le set.
A+Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Merci, mais il est sousentendu que la
dénomination est correcte (sinon la
macro appelée ne fonctionnerait pas
avec la repétition de l'instruction SET).
De même si la feuille n'était pas activée.
Salutations
Bonjour,
Objet requis , je ne vois pas en dehors d'un problème de dénomination du
classeur et/ou de la feuille.
Par contre, même si le classeur et la feuille sont bien nommés, le "select"
mettra la zouba si MyBook.xls n'est pas actif dans ce cas précis.
Enfin, la variable étant de niveau module, il n'y a aucune necessité à
répeter le set.
A+
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Merci, mais il est sousentendu que la
dénomination est correcte (sinon la
macro appelée ne fonctionnerait pas
avec la repétition de l'instruction SET).
De même si la feuille n'était pas activée.
SalutationsBonjour,
Objet requis , je ne vois pas en dehors d'un problème de dénomination du
classeur et/ou de la feuille.
Par contre, même si le classeur et la feuille sont bien nommés, le "select"
mettra la zouba si MyBook.xls n'est pas actif dans ce cas précis.
Enfin, la variable étant de niveau module, il n'y a aucune necessité à
répeter le set.
A+Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour ,
Tu peux utiliser une variable au niveau du module Standard, Utilise plutôt "Public" en lieu et place de "Dim". Ta variable va être
disponible dans tout le classeur et pas seulement dans ce module
Ceci devrait aussi très bien fonctionner ...sauf que ta variable demeure en mémoire tant et aussi longtemps que ton classeur est
ouvert. Cela signifie que ce type de variables consomment plus des ressources système dû au fait de leur permanence ... mais si ton
programme le requiert ...!
Public MySheet As Worksheet
'-------------------------------
Sub appelant()
Set MySheet = Workbooks(1).Sheets(1)
appelée
End Sub
'-------------------------------
Sub appelée()
With MySheet
.Select
.Range("H2").Select
End With
End Sub
'-------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Merci,mais j'avais justement déclaré le
MySheet As Worksheet
au niveau module.
Ainsi je croyais de ne pas devoir repéter
l'instruction SET ni de passer cette variable
à la macro appelée (avec parenthèse).
SalutationsBonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour ,
Tu peux utiliser une variable au niveau du module Standard, Utilise plutôt "Public" en lieu et place de "Dim". Ta variable va être
disponible dans tout le classeur et pas seulement dans ce module
Ceci devrait aussi très bien fonctionner ...sauf que ta variable demeure en mémoire tant et aussi longtemps que ton classeur est
ouvert. Cela signifie que ce type de variables consomment plus des ressources système dû au fait de leur permanence ... mais si ton
programme le requiert ...!
Public MySheet As Worksheet
'-------------------------------
Sub appelant()
Set MySheet = Workbooks(1).Sheets(1)
appelée
End Sub
'-------------------------------
Sub appelée()
With MySheet
.Select
.Range("H2").Select
End With
End Sub
'-------------------------------
Salutations!
"JeNeVois" <JeNeVois@discussions.microsoft.com> a écrit dans le message de news:
CF5356DD-2C0F-4879-AD39-B1E89417AC9A@microsoft.com...
Merci,mais j'avais justement déclaré le
MySheet As Worksheet
au niveau module.
Ainsi je croyais de ne pas devoir repéter
l'instruction SET ni de passer cette variable
à la macro appelée (avec parenthèse).
Salutations
Bonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" <JeNeVois@discussions.microsoft.com> a écrit dans le message de news:
C2A2B273-4D4A-4D24-81D3-535DC23B5C7F@microsoft.com...
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour ,
Tu peux utiliser une variable au niveau du module Standard, Utilise plutôt "Public" en lieu et place de "Dim". Ta variable va être
disponible dans tout le classeur et pas seulement dans ce module
Ceci devrait aussi très bien fonctionner ...sauf que ta variable demeure en mémoire tant et aussi longtemps que ton classeur est
ouvert. Cela signifie que ce type de variables consomment plus des ressources système dû au fait de leur permanence ... mais si ton
programme le requiert ...!
Public MySheet As Worksheet
'-------------------------------
Sub appelant()
Set MySheet = Workbooks(1).Sheets(1)
appelée
End Sub
'-------------------------------
Sub appelée()
With MySheet
.Select
.Range("H2").Select
End With
End Sub
'-------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Merci,mais j'avais justement déclaré le
MySheet As Worksheet
au niveau module.
Ainsi je croyais de ne pas devoir repéter
l'instruction SET ni de passer cette variable
à la macro appelée (avec parenthèse).
SalutationsBonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
@MichDenis
@anomymousA
Il est vrai que dans ces subs d'exemples le problème
n'apparaît pas , mais dans les subs plus complexes
il revient. Comme il disparaît dès que je repète
l'instruction SET dans la macro appelé, je ne vois
pas d'autres raisons de l'erreur "Objet requis"
Merci encore pour les réponsesBonjour ,
Tu peux utiliser une variable au niveau du module Standard, Utilise plutôt "Public" en lieu et place de "Dim". Ta variable va être
disponible dans tout le classeur et pas seulement dans ce module
Ceci devrait aussi très bien fonctionner ...sauf que ta variable demeure en mémoire tant et aussi longtemps que ton classeur est
ouvert. Cela signifie que ce type de variables consomment plus des ressources système dû au fait de leur permanence ... mais si ton
programme le requiert ...!
Public MySheet As Worksheet
'-------------------------------
Sub appelant()
Set MySheet = Workbooks(1).Sheets(1)
appelée
End Sub
'-------------------------------
Sub appelée()
With MySheet
.Select
.Range("H2").Select
End With
End Sub
'-------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Merci,mais j'avais justement déclaré le
MySheet As Worksheet
au niveau module.
Ainsi je croyais de ne pas devoir repéter
l'instruction SET ni de passer cette variable
à la macro appelée (avec parenthèse).
SalutationsBonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
@MichDenis
@anomymousA
Il est vrai que dans ces subs d'exemples le problème
n'apparaît pas , mais dans les subs plus complexes
il revient. Comme il disparaît dès que je repète
l'instruction SET dans la macro appelé, je ne vois
pas d'autres raisons de l'erreur "Objet requis"
Merci encore pour les réponses
Bonjour ,
Tu peux utiliser une variable au niveau du module Standard, Utilise plutôt "Public" en lieu et place de "Dim". Ta variable va être
disponible dans tout le classeur et pas seulement dans ce module
Ceci devrait aussi très bien fonctionner ...sauf que ta variable demeure en mémoire tant et aussi longtemps que ton classeur est
ouvert. Cela signifie que ce type de variables consomment plus des ressources système dû au fait de leur permanence ... mais si ton
programme le requiert ...!
Public MySheet As Worksheet
'-------------------------------
Sub appelant()
Set MySheet = Workbooks(1).Sheets(1)
appelée
End Sub
'-------------------------------
Sub appelée()
With MySheet
.Select
.Range("H2").Select
End With
End Sub
'-------------------------------
Salutations!
"JeNeVois" <JeNeVois@discussions.microsoft.com> a écrit dans le message de news:
CF5356DD-2C0F-4879-AD39-B1E89417AC9A@microsoft.com...
Merci,mais j'avais justement déclaré le
MySheet As Worksheet
au niveau module.
Ainsi je croyais de ne pas devoir repéter
l'instruction SET ni de passer cette variable
à la macro appelée (avec parenthèse).
Salutations
Bonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" <JeNeVois@discussions.microsoft.com> a écrit dans le message de news:
C2A2B273-4D4A-4D24-81D3-535DC23B5C7F@microsoft.com...
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
@MichDenis
@anomymousA
Il est vrai que dans ces subs d'exemples le problème
n'apparaît pas , mais dans les subs plus complexes
il revient. Comme il disparaît dès que je repète
l'instruction SET dans la macro appelé, je ne vois
pas d'autres raisons de l'erreur "Objet requis"
Merci encore pour les réponsesBonjour ,
Tu peux utiliser une variable au niveau du module Standard, Utilise plutôt "Public" en lieu et place de "Dim". Ta variable va être
disponible dans tout le classeur et pas seulement dans ce module
Ceci devrait aussi très bien fonctionner ...sauf que ta variable demeure en mémoire tant et aussi longtemps que ton classeur est
ouvert. Cela signifie que ce type de variables consomment plus des ressources système dû au fait de leur permanence ... mais si ton
programme le requiert ...!
Public MySheet As Worksheet
'-------------------------------
Sub appelant()
Set MySheet = Workbooks(1).Sheets(1)
appelée
End Sub
'-------------------------------
Sub appelée()
With MySheet
.Select
.Range("H2").Select
End With
End Sub
'-------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Merci,mais j'avais justement déclaré le
MySheet As Worksheet
au niveau module.
Ainsi je croyais de ne pas devoir repéter
l'instruction SET ni de passer cette variable
à la macro appelée (avec parenthèse).
SalutationsBonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour ,
Tu peux utiliser une variable au niveau du module Standard, Utilise plutôt "Public" en lieu et place de "Dim". Ta variable va être
disponible dans tout le classeur et pas seulement dans ce module
Ceci devrait aussi très bien fonctionner ...sauf que ta variable demeure en mémoire tant et aussi longtemps que ton classeur est
ouvert. Cela signifie que ce type de variables consomment plus des ressources système dû au fait de leur permanence ... mais si ton
programme le requiert ...!
Public MySheet As Worksheet
'-------------------------------
Sub appelant()
Set MySheet = Workbooks(1).Sheets(1)
appelée
End Sub
'-------------------------------
Sub appelée()
With MySheet
.Select
.Range("H2").Select
End With
End Sub
'-------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Merci,mais j'avais justement déclaré le
MySheet As Worksheet
au niveau module.
Ainsi je croyais de ne pas devoir repéter
l'instruction SET ni de passer cette variable
à la macro appelée (avec parenthèse).
SalutationsBonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour ,
Tu peux utiliser une variable au niveau du module Standard, Utilise plutôt "Public" en lieu et place de "Dim". Ta variable va être
disponible dans tout le classeur et pas seulement dans ce module
Ceci devrait aussi très bien fonctionner ...sauf que ta variable demeure en mémoire tant et aussi longtemps que ton classeur est
ouvert. Cela signifie que ce type de variables consomment plus des ressources système dû au fait de leur permanence ... mais si ton
programme le requiert ...!
Public MySheet As Worksheet
'-------------------------------
Sub appelant()
Set MySheet = Workbooks(1).Sheets(1)
appelée
End Sub
'-------------------------------
Sub appelée()
With MySheet
.Select
.Range("H2").Select
End With
End Sub
'-------------------------------
Salutations!
"JeNeVois" <JeNeVois@discussions.microsoft.com> a écrit dans le message de news:
CF5356DD-2C0F-4879-AD39-B1E89417AC9A@microsoft.com...
Merci,mais j'avais justement déclaré le
MySheet As Worksheet
au niveau module.
Ainsi je croyais de ne pas devoir repéter
l'instruction SET ni de passer cette variable
à la macro appelée (avec parenthèse).
Salutations
Bonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" <JeNeVois@discussions.microsoft.com> a écrit dans le message de news:
C2A2B273-4D4A-4D24-81D3-535DC23B5C7F@microsoft.com...
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci
Bonjour ,
Tu peux utiliser une variable au niveau du module Standard, Utilise plutôt "Public" en lieu et place de "Dim". Ta variable va être
disponible dans tout le classeur et pas seulement dans ce module
Ceci devrait aussi très bien fonctionner ...sauf que ta variable demeure en mémoire tant et aussi longtemps que ton classeur est
ouvert. Cela signifie que ce type de variables consomment plus des ressources système dû au fait de leur permanence ... mais si ton
programme le requiert ...!
Public MySheet As Worksheet
'-------------------------------
Sub appelant()
Set MySheet = Workbooks(1).Sheets(1)
appelée
End Sub
'-------------------------------
Sub appelée()
With MySheet
.Select
.Range("H2").Select
End With
End Sub
'-------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Merci,mais j'avais justement déclaré le
MySheet As Worksheet
au niveau module.
Ainsi je croyais de ne pas devoir repéter
l'instruction SET ni de passer cette variable
à la macro appelée (avec parenthèse).
SalutationsBonjour JeNeVois,
2 façons de faire parmi d'autres :
A )
'------------------------------
Sub appelant()
Dim MySheet As Worksheet
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée MySheet
End Sub
'------------------------------
Sub appelée(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
B )
'------------------------------
Sub appelant1()
appelée1 Workbooks("MyBook.xls").Sheets("xxx")
End Sub
'------------------------------
Sub appelée1(Sh As Worksheet)
Sh.Range("H2").Select
End Sub
'------------------------------
Salutations!
"JeNeVois" a écrit dans le message de news:
Bonjour,
fauti-il repéter l'instruction SET dans une sub appélé ?
P.exp. une sub du type
'(avec déclaration pour le module)
Dim MySheet As Worksheet
sub appelant()
Set MySheet = Workbooks("MyBook.xls").Sheets("xxx")
appelée
end sub
sub appelée()
MySheet.Range("H2").select
end sub
me donne toujours l'erreur "Objet requis" qui disparaît seulement
si je repète le SET etc dans la macro appelée
Où est l'erreur ?
Merci