| ceci tendrait à montrer que Activate passe
***même pas... je suis d'accord que le code ne plante
pas, mais après l'exécution de la ligne, ce n'est plus
la feuil1 qui est active mais la feuil3. À sa face même
pour que la feuille active soit passée de Feuil1 à Feuil3
il y dû se produire quelque chose car dans ton code
à nul part, tu mentionnes le fait que Feuil3 doit être
activée ou sélectionnée. Au sens propre de ce que
l'expression signifie, la feuil2 n'a jamais été activée
*** L'exercice démontre qu'il y a une toute légère différence
de plus en "Activate" et "Select". La commande "Activate"
peut être relative tandis que Select n'admet pas cela. Mais
cela se confond très bien avec la notion que Activate peut
modifier (relativité) la feuille active lorsqu'il s'agit d'un groupe
de travail i.e plusieurs feuilles de sélectionner.
*** Ta macro, celle ci-dessous, n'inscrit jamais le chiffre 10 dans
la cellule A1 de la feuil2. Si tu as réussi ce tour de force c'est
que tu as mis la procédure dans le module Feuil2 et que sans
référence à un objet feuil autre, un objet Range utilisé dans un
module feuille est et appartient à cette feuille. Le fait que tu l'as
masque, ne change en rien la capacité de la procédure d'y inscrire
une valeur.
*** Je crois qu'on a fait le tour de la question et il faut se souvenir même
dans Excel que What you see is not necessarily what you get... ;-)))
'------------------------------------
Sub Macro3()
Feuil2.Visible = xlSheetHidden
Feuil2.Activate
Range("A1") = 10
Feuil2.Visible = xlSheetVisible
End Sub
'------------------------------------
| ceci tendrait à montrer que Activate passe
***même pas... je suis d'accord que le code ne plante
pas, mais après l'exécution de la ligne, ce n'est plus
la feuil1 qui est active mais la feuil3. À sa face même
pour que la feuille active soit passée de Feuil1 à Feuil3
il y dû se produire quelque chose car dans ton code
à nul part, tu mentionnes le fait que Feuil3 doit être
activée ou sélectionnée. Au sens propre de ce que
l'expression signifie, la feuil2 n'a jamais été activée
*** L'exercice démontre qu'il y a une toute légère différence
de plus en "Activate" et "Select". La commande "Activate"
peut être relative tandis que Select n'admet pas cela. Mais
cela se confond très bien avec la notion que Activate peut
modifier (relativité) la feuille active lorsqu'il s'agit d'un groupe
de travail i.e plusieurs feuilles de sélectionner.
*** Ta macro, celle ci-dessous, n'inscrit jamais le chiffre 10 dans
la cellule A1 de la feuil2. Si tu as réussi ce tour de force c'est
que tu as mis la procédure dans le module Feuil2 et que sans
référence à un objet feuil autre, un objet Range utilisé dans un
module feuille est et appartient à cette feuille. Le fait que tu l'as
masque, ne change en rien la capacité de la procédure d'y inscrire
une valeur.
*** Je crois qu'on a fait le tour de la question et il faut se souvenir même
dans Excel que What you see is not necessarily what you get... ;-)))
'------------------------------------
Sub Macro3()
Feuil2.Visible = xlSheetHidden
Feuil2.Activate
Range("A1") = 10
Feuil2.Visible = xlSheetVisible
End Sub
'------------------------------------
| ceci tendrait à montrer que Activate passe
***même pas... je suis d'accord que le code ne plante
pas, mais après l'exécution de la ligne, ce n'est plus
la feuil1 qui est active mais la feuil3. À sa face même
pour que la feuille active soit passée de Feuil1 à Feuil3
il y dû se produire quelque chose car dans ton code
à nul part, tu mentionnes le fait que Feuil3 doit être
activée ou sélectionnée. Au sens propre de ce que
l'expression signifie, la feuil2 n'a jamais été activée
*** L'exercice démontre qu'il y a une toute légère différence
de plus en "Activate" et "Select". La commande "Activate"
peut être relative tandis que Select n'admet pas cela. Mais
cela se confond très bien avec la notion que Activate peut
modifier (relativité) la feuille active lorsqu'il s'agit d'un groupe
de travail i.e plusieurs feuilles de sélectionner.
*** Ta macro, celle ci-dessous, n'inscrit jamais le chiffre 10 dans
la cellule A1 de la feuil2. Si tu as réussi ce tour de force c'est
que tu as mis la procédure dans le module Feuil2 et que sans
référence à un objet feuil autre, un objet Range utilisé dans un
module feuille est et appartient à cette feuille. Le fait que tu l'as
masque, ne change en rien la capacité de la procédure d'y inscrire
une valeur.
*** Je crois qu'on a fait le tour de la question et il faut se souvenir même
dans Excel que What you see is not necessarily what you get... ;-)))
'------------------------------------
Sub Macro3()
Feuil2.Visible = xlSheetHidden
Feuil2.Activate
Range("A1") = 10
Feuil2.Visible = xlSheetVisible
End Sub
'------------------------------------
J'ai fait quelques tests et il faut se rendre à l'évidence (? bien qu'encore sceptique)
D ) Feuil2.Activate ne suppose pas obligatoirement que la Feuil2 est visible.
Et ben, c'est une nuance que je viens d'apprendre ! Merci LSteph.
Mais c'est loin d'être sûr que je vais adapter cette approche !
;-)
"LSteph" a écrit dans le message de groupe de discussion :
Là tu es à coté...:
tu peux voir cela ici
http://cjoint.com/?cytq7dq4Ts
Aucun tour de force et ma macro est dans Module1
Feuil2 s'affiche dans msgbox
la valeur 10 s'inscrit bien en A1 de Feuil2
'''dans Module1
Sub Macro1()
Feuil2.Visible = xlSheetHidden
End Sub
Sub Macro2()
Feuil2.Activate
MsgBox ActiveSheet.Name
End Sub
Sub Macro3()
Feuil2.Visible = xlSheetHidden
Feuil2.Activate
Range("A1") = 10
Feuil2.Visible = xlSheetVisible
End Sub
Là en revanche tu as raison:
>What you see is not necessarily what you get... ;-)))
But now is what I get and what i see!
--
lSteph
(Excel 2003 sous Vista)
michdenis a écrit :| ceci tendrait à montrer que Activate passe
***même pas... je suis d'accord que le code ne plante
pas, mais après l'exécution de la ligne, ce n'est plus
la feuil1 qui est active mais la feuil3. À sa face même
pour que la feuille active soit passée de Feuil1 à Feuil3
il y dû se produire quelque chose car dans ton code
à nul part, tu mentionnes le fait que Feuil3 doit être
activée ou sélectionnée. Au sens propre de ce que
l'expression signifie, la feuil2 n'a jamais été activée
*** L'exercice démontre qu'il y a une toute légère différence
de plus en "Activate" et "Select". La commande "Activate"
peut être relative tandis que Select n'admet pas cela. Mais
cela se confond très bien avec la notion que Activate peut
modifier (relativité) la feuille active lorsqu'il s'agit d'un groupe
de travail i.e plusieurs feuilles de sélectionner.
*** Ta macro, celle ci-dessous, n'inscrit jamais le chiffre 10 dans
la cellule A1 de la feuil2. Si tu as réussi ce tour de force c'est
que tu as mis la procédure dans le module Feuil2 et que sans
référence à un objet feuil autre, un objet Range utilisé dans un
module feuille est et appartient à cette feuille. Le fait que tu l'as
masque, ne change en rien la capacité de la procédure d'y inscrire
une valeur.
*** Je crois qu'on a fait le tour de la question et il faut se souvenir même
dans Excel que What you see is not necessarily what you get... ;-)))
'------------------------------------
Sub Macro3()
Feuil2.Visible = xlSheetHidden
Feuil2.Activate
Range("A1") = 10
Feuil2.Visible = xlSheetVisible
End Sub
'------------------------------------
J'ai fait quelques tests et il faut se rendre à l'évidence (? bien qu'encore sceptique)
D ) Feuil2.Activate ne suppose pas obligatoirement que la Feuil2 est visible.
Et ben, c'est une nuance que je viens d'apprendre ! Merci LSteph.
Mais c'est loin d'être sûr que je vais adapter cette approche !
;-)
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de groupe de discussion :
O1TCxoRlJHA.1252@TK2MSFTNGP03.phx.gbl...
Là tu es à coté...:
tu peux voir cela ici
http://cjoint.com/?cytq7dq4Ts
Aucun tour de force et ma macro est dans Module1
Feuil2 s'affiche dans msgbox
la valeur 10 s'inscrit bien en A1 de Feuil2
'''dans Module1
Sub Macro1()
Feuil2.Visible = xlSheetHidden
End Sub
Sub Macro2()
Feuil2.Activate
MsgBox ActiveSheet.Name
End Sub
Sub Macro3()
Feuil2.Visible = xlSheetHidden
Feuil2.Activate
Range("A1") = 10
Feuil2.Visible = xlSheetVisible
End Sub
Là en revanche tu as raison:
>What you see is not necessarily what you get... ;-)))
But now is what I get and what i see!
--
lSteph
(Excel 2003 sous Vista)
michdenis a écrit :
| ceci tendrait à montrer que Activate passe
***même pas... je suis d'accord que le code ne plante
pas, mais après l'exécution de la ligne, ce n'est plus
la feuil1 qui est active mais la feuil3. À sa face même
pour que la feuille active soit passée de Feuil1 à Feuil3
il y dû se produire quelque chose car dans ton code
à nul part, tu mentionnes le fait que Feuil3 doit être
activée ou sélectionnée. Au sens propre de ce que
l'expression signifie, la feuil2 n'a jamais été activée
*** L'exercice démontre qu'il y a une toute légère différence
de plus en "Activate" et "Select". La commande "Activate"
peut être relative tandis que Select n'admet pas cela. Mais
cela se confond très bien avec la notion que Activate peut
modifier (relativité) la feuille active lorsqu'il s'agit d'un groupe
de travail i.e plusieurs feuilles de sélectionner.
*** Ta macro, celle ci-dessous, n'inscrit jamais le chiffre 10 dans
la cellule A1 de la feuil2. Si tu as réussi ce tour de force c'est
que tu as mis la procédure dans le module Feuil2 et que sans
référence à un objet feuil autre, un objet Range utilisé dans un
module feuille est et appartient à cette feuille. Le fait que tu l'as
masque, ne change en rien la capacité de la procédure d'y inscrire
une valeur.
*** Je crois qu'on a fait le tour de la question et il faut se souvenir même
dans Excel que What you see is not necessarily what you get... ;-)))
'------------------------------------
Sub Macro3()
Feuil2.Visible = xlSheetHidden
Feuil2.Activate
Range("A1") = 10
Feuil2.Visible = xlSheetVisible
End Sub
'------------------------------------
J'ai fait quelques tests et il faut se rendre à l'évidence (? bien qu'encore sceptique)
D ) Feuil2.Activate ne suppose pas obligatoirement que la Feuil2 est visible.
Et ben, c'est une nuance que je viens d'apprendre ! Merci LSteph.
Mais c'est loin d'être sûr que je vais adapter cette approche !
;-)
"LSteph" a écrit dans le message de groupe de discussion :
Là tu es à coté...:
tu peux voir cela ici
http://cjoint.com/?cytq7dq4Ts
Aucun tour de force et ma macro est dans Module1
Feuil2 s'affiche dans msgbox
la valeur 10 s'inscrit bien en A1 de Feuil2
'''dans Module1
Sub Macro1()
Feuil2.Visible = xlSheetHidden
End Sub
Sub Macro2()
Feuil2.Activate
MsgBox ActiveSheet.Name
End Sub
Sub Macro3()
Feuil2.Visible = xlSheetHidden
Feuil2.Activate
Range("A1") = 10
Feuil2.Visible = xlSheetVisible
End Sub
Là en revanche tu as raison:
>What you see is not necessarily what you get... ;-)))
But now is what I get and what i see!
--
lSteph
(Excel 2003 sous Vista)
michdenis a écrit :| ceci tendrait à montrer que Activate passe
***même pas... je suis d'accord que le code ne plante
pas, mais après l'exécution de la ligne, ce n'est plus
la feuil1 qui est active mais la feuil3. À sa face même
pour que la feuille active soit passée de Feuil1 à Feuil3
il y dû se produire quelque chose car dans ton code
à nul part, tu mentionnes le fait que Feuil3 doit être
activée ou sélectionnée. Au sens propre de ce que
l'expression signifie, la feuil2 n'a jamais été activée
*** L'exercice démontre qu'il y a une toute légère différence
de plus en "Activate" et "Select". La commande "Activate"
peut être relative tandis que Select n'admet pas cela. Mais
cela se confond très bien avec la notion que Activate peut
modifier (relativité) la feuille active lorsqu'il s'agit d'un groupe
de travail i.e plusieurs feuilles de sélectionner.
*** Ta macro, celle ci-dessous, n'inscrit jamais le chiffre 10 dans
la cellule A1 de la feuil2. Si tu as réussi ce tour de force c'est
que tu as mis la procédure dans le module Feuil2 et que sans
référence à un objet feuil autre, un objet Range utilisé dans un
module feuille est et appartient à cette feuille. Le fait que tu l'as
masque, ne change en rien la capacité de la procédure d'y inscrire
une valeur.
*** Je crois qu'on a fait le tour de la question et il faut se souvenir même
dans Excel que What you see is not necessarily what you get... ;-)))
'------------------------------------
Sub Macro3()
Feuil2.Visible = xlSheetHidden
Feuil2.Activate
Range("A1") = 10
Feuil2.Visible = xlSheetVisible
End Sub
'------------------------------------
Bonsour® LSteph
What you get is what you type !!!
What you get is not necessarily what you want translated VBA. !!!
;o)))
en général les propriétes des objets nécessitent un qualificateur !!!!
Range("blabla") Utilisée sans qualificateur d'objet, cette propriété est un raccourci de *ActiveSheet.Range*
(renvoie une plage de la feuille active ; si la feuille active n'est pas une feuille de calcul, la propriété échoue).
;o)))
c'est écrit dans l'aide !!!
Propriété Range telle qu'elle s'applique aux objets Application, Range et Worksheet.
expression.Range(Index)
expression *OBLIGATOIRE*. Expression qui renvoie un des objets ci-dessus.
(idem pour shape.range)
Bonsour® LSteph
What you get is what you type !!!
What you get is not necessarily what you want translated VBA. !!!
;o)))
en général les propriétes des objets nécessitent un qualificateur !!!!
Range("blabla") Utilisée sans qualificateur d'objet, cette propriété est un raccourci de *ActiveSheet.Range*
(renvoie une plage de la feuille active ; si la feuille active n'est pas une feuille de calcul, la propriété échoue).
;o)))
c'est écrit dans l'aide !!!
Propriété Range telle qu'elle s'applique aux objets Application, Range et Worksheet.
expression.Range(Index)
expression *OBLIGATOIRE*. Expression qui renvoie un des objets ci-dessus.
(idem pour shape.range)
Bonsour® LSteph
What you get is what you type !!!
What you get is not necessarily what you want translated VBA. !!!
;o)))
en général les propriétes des objets nécessitent un qualificateur !!!!
Range("blabla") Utilisée sans qualificateur d'objet, cette propriété est un raccourci de *ActiveSheet.Range*
(renvoie une plage de la feuille active ; si la feuille active n'est pas une feuille de calcul, la propriété échoue).
;o)))
c'est écrit dans l'aide !!!
Propriété Range telle qu'elle s'applique aux objets Application, Range et Worksheet.
expression.Range(Index)
expression *OBLIGATOIRE*. Expression qui renvoie un des objets ci-dessus.
(idem pour shape.range)
Ce dont tu parle est écrit dans l'aide, certainement..
personne ne dis le contraire!
Quel rapport avec le sujet?
expression *OBLIGATOIRE*
Il n'y a pas de souci la-dessus!
Le propos annexe était que select est souvent inutile
Ce dont tu parle est écrit dans l'aide, certainement..
personne ne dis le contraire!
Quel rapport avec le sujet?
expression *OBLIGATOIRE*
Il n'y a pas de souci la-dessus!
Le propos annexe était que select est souvent inutile
Ce dont tu parle est écrit dans l'aide, certainement..
personne ne dis le contraire!
Quel rapport avec le sujet?
expression *OBLIGATOIRE*
Il n'y a pas de souci la-dessus!
Le propos annexe était que select est souvent inutile
Bonsour® LStephCe dont tu parle est écrit dans l'aide, certainement..
personne ne dis le contraire!
Quel rapport avec le sujet?
expression *OBLIGATOIRE*
Il n'y a pas de souci la-dessus!
Le propos annexe était que select est souvent inutile
je dis simplement que c'est le fait de qualifier les objets qui évite le recours aux "select"
et permet de préciser explicitement à quoi s'applique la propriété ...
et que le implicitement est souvent casse-g... en VBA
;o)))
Bonsour® LSteph
Ce dont tu parle est écrit dans l'aide, certainement..
personne ne dis le contraire!
Quel rapport avec le sujet?
expression *OBLIGATOIRE*
Il n'y a pas de souci la-dessus!
Le propos annexe était que select est souvent inutile
je dis simplement que c'est le fait de qualifier les objets qui évite le recours aux "select"
et permet de préciser explicitement à quoi s'applique la propriété ...
et que le implicitement est souvent casse-g... en VBA
;o)))
Bonsour® LStephCe dont tu parle est écrit dans l'aide, certainement..
personne ne dis le contraire!
Quel rapport avec le sujet?
expression *OBLIGATOIRE*
Il n'y a pas de souci la-dessus!
Le propos annexe était que select est souvent inutile
je dis simplement que c'est le fait de qualifier les objets qui évite le recours aux "select"
et permet de préciser explicitement à quoi s'applique la propriété ...
et que le implicitement est souvent casse-g... en VBA
;o)))
en complément des réponses apportées :
http://www.excelabo.net/excel/adresses.php#activate
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
IMER09 a écrit :Rebonjour
Un bouton sur la feuil1
le code suivant sur le bouton:
Private Sub CommandButton1_Click()
Sheets("Feuil2").Select
Range("A2", Range("A65536").End(xlUp)).Select
End Sub
Ca ne fonctionne pas, j'ai toujours des pb avec les select et les
activate, un mystere pour moi
Remi
Merci
en complément des réponses apportées :
http://www.excelabo.net/excel/adresses.php#activate
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
IMER09 a écrit :
Rebonjour
Un bouton sur la feuil1
le code suivant sur le bouton:
Private Sub CommandButton1_Click()
Sheets("Feuil2").Select
Range("A2", Range("A65536").End(xlUp)).Select
End Sub
Ca ne fonctionne pas, j'ai toujours des pb avec les select et les
activate, un mystere pour moi
Remi
Merci
en complément des réponses apportées :
http://www.excelabo.net/excel/adresses.php#activate
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net
IMER09 a écrit :Rebonjour
Un bouton sur la feuil1
le code suivant sur le bouton:
Private Sub CommandButton1_Click()
Sheets("Feuil2").Select
Range("A2", Range("A65536").End(xlUp)).Select
End Sub
Ca ne fonctionne pas, j'ai toujours des pb avec les select et les
activate, un mystere pour moi
Remi
Merci