Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Const

8 réponses
Avatar
JPMonnier
Bonsoir,
Est-il possible de déclarer un fichier en constante
MonFichier = Workbooks("xxx.xls").sheets("sss")
Merci d'avance
--
Cordialement
jpmonnier-nospam@neuf.fr

8 réponses

Avatar
isabelle
bonjour JPMonnier,

ce n'est pas possible,

[Public | Private] Const constname [As type] = expression
type: elle peut être de type byte, Boolean, Integer, Long, Currency,
Single, Double, Decimal (non pris en charge actuellement), Date, String
ou Variant.

mais pas Object,

isabelle

Le 2010-05-24 13:11, JPMonnier a écrit :
Bonsoir,
Est-il possible de déclarer un fichier en constante
MonFichier = Workbooks("xxx.xls").sheets("sss")
Merci d'avance
Avatar
JPMonnier
Bonsoir Isabelle et merci, ça me rassure car je commençais à douter !!
Je suis donc obligé de déclare au début de chaque Sub avec la cde Set xx =
'"work....."

--
Cordialement


"isabelle" a écrit dans le message de
news:OP3KKe2%
bonjour JPMonnier,

ce n'est pas possible,

[Public | Private] Const constname [As type] = expression
type: elle peut être de type byte, Boolean, Integer, Long, Currency,
Single, Double, Decimal (non pris en charge actuellement), Date, String ou
Variant.

mais pas Object,

isabelle

Le 2010-05-24 13:11, JPMonnier a écrit :
Bonsoir,
Est-il possible de déclarer un fichier en constante
MonFichier = Workbooks("xxx.xls").sheets("sss")
Merci d'avance
Avatar
isabelle
bonjour JP,

tu pourrais le faire une seule fois sur l'événement "Workbook_Open"

sur la page ThisWorkBook

Public MyWks As Object

Private Sub Workbook_Open()
Set MyWks = Workbooks("Perso.xls").Sheets("calendrier")
End Sub

sur la page module

Sub test()
MyWks.Activate
End Sub

isabelle

Le 2010-05-24 14:13, JPMonnier a écrit :
Bonsoir Isabelle et merci, ça me rassure car je commençais à douter !!
Je suis donc obligé de déclare au début de chaque Sub avec la cde Set
xx = '"work....."

Avatar
JPMonnier
Merci,
j'ai fait comme suit
dans ThisWorkbook

Public BD As Object

Private Sub Workbook_Open()
Set BD = Workbooks("base clients4.xls").Sheets("bdclients")
End Sub

et dans un module
Sub test()
BD.Activate
End Sub

mais ça me renvoie Objet requis

--
Cordialement

"isabelle" a écrit dans le message de
news:ewdGp52%
bonjour JP,

tu pourrais le faire une seule fois sur l'événement "Workbook_Open"

sur la page ThisWorkBook

Public MyWks As Object

Private Sub Workbook_Open()
Set MyWks = Workbooks("Perso.xls").Sheets("calendrier")
End Sub

sur la page module

Sub test()
MyWks.Activate
End Sub

isabelle

Le 2010-05-24 14:13, JPMonnier a écrit :
Bonsoir Isabelle et merci, ça me rassure car je commençais à douter !!
Je suis donc obligé de déclare au début de chaque Sub avec la cde Set xx
= '"work....."

Avatar
michdenis
Bonjour,

Une variable "Public" doit être déclarée dans un module standard.
Si tu le fais dans un module de classe que sont les "ThisWorkbook"
les modules "Feuille" , module "Userform" ou un module de classe
que tu as ajouté, la variable "Public" EST UNE PROPRIÉTÉ du module
de classe (donc de l'objet) où elle a été déclarée.

Pour pouvoir y faire référence dans un autre module, tu dois utiliser
le nom du module de classe devant. Dans ton exemple,

ThisWorkbook.Bd.Activate

ATTENTION : Dans la question tu parles d'une variable objet qui point
vers un classeur. Ton Exemple (variable) pointe sur une "Feuille" du
classeur spécifié. Ta variable devrait être déclarée comme suit :

Public BD As Worksheet




"JPMonnier" a écrit dans le message de groupe de
discussion : epqhHM3#
Merci,
j'ai fait comme suit
dans ThisWorkbook

Public BD As Object

Private Sub Workbook_Open()
Set BD = Workbooks("base clients4.xls").Sheets("bdclients")
End Sub

et dans un module
Sub test()
BD.Activate
End Sub

mais ça me renvoie Objet requis

--
Cordialement

"isabelle" a écrit dans le message de
news:ewdGp52%
bonjour JP,

tu pourrais le faire une seule fois sur l'événement "Workbook_Open"

sur la page ThisWorkBook

Public MyWks As Object

Private Sub Workbook_Open()
Set MyWks = Workbooks("Perso.xls").Sheets("calendrier")
End Sub

sur la page module

Sub test()
MyWks.Activate
End Sub

isabelle

Le 2010-05-24 14:13, JPMonnier a écrit :
Bonsoir Isabelle et merci, ça me rassure car je commençais à douter !!
Je suis donc obligé de déclare au début de chaque Sub avec la cde Set xx
= '"work....."






Avatar
JPMonnier
Bonjour, ça fonctionne avec ThisWorkbook
Quant à la déclaration de la variable, ça fonctionne également avec Public
BD as Object, mais est-ce bien conventionnel
Merci beaucoup
--
Cordialement

"michdenis" a écrit dans le message de
news:OQNj$u3%
Bonjour,

Une variable "Public" doit être déclarée dans un module standard.
Si tu le fais dans un module de classe que sont les "ThisWorkbook"
les modules "Feuille" , module "Userform" ou un module de classe
que tu as ajouté, la variable "Public" EST UNE PROPRIÉTÉ du module
de classe (donc de l'objet) où elle a été déclarée.

Pour pouvoir y faire référence dans un autre module, tu dois utiliser
le nom du module de classe devant. Dans ton exemple,

ThisWorkbook.Bd.Activate

ATTENTION : Dans la question tu parles d'une variable objet qui point
vers un classeur. Ton Exemple (variable) pointe sur une "Feuille" du
classeur spécifié. Ta variable devrait être déclarée comme suit :

Public BD As Worksheet




"JPMonnier" a écrit dans le message de groupe
de discussion : epqhHM3#
Merci,
j'ai fait comme suit
dans ThisWorkbook

Public BD As Object

Private Sub Workbook_Open()
Set BD = Workbooks("base clients4.xls").Sheets("bdclients")
End Sub

et dans un module
Sub test()
BD.Activate
End Sub

mais ça me renvoie Objet requis

--
Cordialement

"isabelle" a écrit dans le message de
news:ewdGp52%
bonjour JP,

tu pourrais le faire une seule fois sur l'événement "Workbook_Open"

sur la page ThisWorkBook

Public MyWks As Object

Private Sub Workbook_Open()
Set MyWks = Workbooks("Perso.xls").Sheets("calendrier")
End Sub

sur la page module

Sub test()
MyWks.Activate
End Sub

isabelle

Le 2010-05-24 14:13, JPMonnier a écrit :
Bonsoir Isabelle et merci, ça me rassure car je commençais à douter !!
Je suis donc obligé de déclare au début de chaque Sub avec la cde Set
xx = '"work....."






Avatar
michdenis
| ça fonctionne également avec
| Public BD as Object
| mais est-ce bien conventionnel

Si tu connais le type de l'objet, pourquoi ne pas
déclarer le type d'objet précisément.

C'est comme déclaré
Dim X as Variant
lorsque l'on sait que X contiendra une chaîne de caractères.
on devrait déclarer
Dim X As String

Ce n'est pas parce que cela fonctionne que c'est la meilleure méthode!



"JPMonnier" a écrit dans le message de groupe de discussion :
uYCdEq9#
Bonjour, ça fonctionne avec ThisWorkbook
Quant à la déclaration de la variable, ça fonctionne également avec Public
BD as Object, mais est-ce bien conventionnel
Merci beaucoup
--
Cordialement

"michdenis" a écrit dans le message de
news:OQNj$u3%
Bonjour,

Une variable "Public" doit être déclarée dans un module standard.
Si tu le fais dans un module de classe que sont les "ThisWorkbook"
les modules "Feuille" , module "Userform" ou un module de classe
que tu as ajouté, la variable "Public" EST UNE PROPRIÉTÉ du module
de classe (donc de l'objet) où elle a été déclarée.

Pour pouvoir y faire référence dans un autre module, tu dois utiliser
le nom du module de classe devant. Dans ton exemple,

ThisWorkbook.Bd.Activate

ATTENTION : Dans la question tu parles d'une variable objet qui point
vers un classeur. Ton Exemple (variable) pointe sur une "Feuille" du
classeur spécifié. Ta variable devrait être déclarée comme suit :

Public BD As Worksheet




"JPMonnier" a écrit dans le message de groupe
de discussion : epqhHM3#
Merci,
j'ai fait comme suit
dans ThisWorkbook

Public BD As Object

Private Sub Workbook_Open()
Set BD = Workbooks("base clients4.xls").Sheets("bdclients")
End Sub

et dans un module
Sub test()
BD.Activate
End Sub

mais ça me renvoie Objet requis

--
Cordialement

"isabelle" a écrit dans le message de
news:ewdGp52%
bonjour JP,

tu pourrais le faire une seule fois sur l'événement "Workbook_Open"

sur la page ThisWorkBook

Public MyWks As Object

Private Sub Workbook_Open()
Set MyWks = Workbooks("Perso.xls").Sheets("calendrier")
End Sub

sur la page module

Sub test()
MyWks.Activate
End Sub

isabelle

Le 2010-05-24 14:13, JPMonnier a écrit :
Bonsoir Isabelle et merci, ça me rassure car je commençais à douter !!
Je suis donc obligé de déclare au début de chaque Sub avec la cde Set
xx = '"work....."






Avatar
JPMonnier
Bonsoir,
Merci beaucoup pour tes conseils
--
Cordialement

"michdenis" a écrit dans le message de
news:
| ça fonctionne également avec
| Public BD as Object
| mais est-ce bien conventionnel

Si tu connais le type de l'objet, pourquoi ne pas
déclarer le type d'objet précisément.

C'est comme déclaré
Dim X as Variant
lorsque l'on sait que X contiendra une chaîne de caractères.
on devrait déclarer
Dim X As String

Ce n'est pas parce que cela fonctionne que c'est la meilleure méthode!



"JPMonnier" a écrit dans le message de groupe
de discussion :
uYCdEq9#
Bonjour, ça fonctionne avec ThisWorkbook
Quant à la déclaration de la variable, ça fonctionne également avec
Public
BD as Object, mais est-ce bien conventionnel
Merci beaucoup
--
Cordialement

"michdenis" a écrit dans le message de
news:OQNj$u3%
Bonjour,

Une variable "Public" doit être déclarée dans un module standard.
Si tu le fais dans un module de classe que sont les "ThisWorkbook"
les modules "Feuille" , module "Userform" ou un module de classe
que tu as ajouté, la variable "Public" EST UNE PROPRIÉTÉ du module
de classe (donc de l'objet) où elle a été déclarée.

Pour pouvoir y faire référence dans un autre module, tu dois utiliser
le nom du module de classe devant. Dans ton exemple,

ThisWorkbook.Bd.Activate

ATTENTION : Dans la question tu parles d'une variable objet qui point
vers un classeur. Ton Exemple (variable) pointe sur une "Feuille" du
classeur spécifié. Ta variable devrait être déclarée comme suit :

Public BD As Worksheet




"JPMonnier" a écrit dans le message de groupe
de discussion : epqhHM3#
Merci,
j'ai fait comme suit
dans ThisWorkbook

Public BD As Object

Private Sub Workbook_Open()
Set BD = Workbooks("base clients4.xls").Sheets("bdclients")
End Sub

et dans un module
Sub test()
BD.Activate
End Sub

mais ça me renvoie Objet requis

--
Cordialement

"isabelle" a écrit dans le message de
news:ewdGp52%
bonjour JP,

tu pourrais le faire une seule fois sur l'événement "Workbook_Open"

sur la page ThisWorkBook

Public MyWks As Object

Private Sub Workbook_Open()
Set MyWks = Workbooks("Perso.xls").Sheets("calendrier")
End Sub

sur la page module

Sub test()
MyWks.Activate
End Sub

isabelle

Le 2010-05-24 14:13, JPMonnier a écrit :
Bonsoir Isabelle et merci, ça me rassure car je commençais à douter !!
Je suis donc obligé de déclare au début de chaque Sub avec la cde Set
xx = '"work....."