Bonjour à tous.

j'ai posté un sujet sur PCA qui m'a redirigé vers ce forum...


voici donc mon pb :
Bonjour à tous

-

Je dois utiliser 2 Feuilles dans mon code VBA.

J'ai donc eu l'idée de leur donner des noms avec l'instruction "SET"

Set Source = Worksheets("Résultat")

Set Dest = Worksheets("test")

cela fonctionne mais je dois les redéfinir dans chaque sub ou function

-

j'ai donc pensé à les définir en tant que constantes..

Mais....

je ne vois pas la syntaxe à adopter...

pour une variable "simple", pas de pb .. exemple : Const Nb As Integer = 2

Mais pour une Feuille ?

comment faire ?

-

j'ai essayé :

Const Source = Worksheets("Résultat")

Const Source as Worksheets = Worksheets("Résultat")

cela ne passe pas ????

-

Précision ..

La 1° feuille dans lequel j'ai les "données" est la Feuille dont le Nom de l'onglet est "Résultat"

La 2° feuille dans lequel je dois traiter ces données est la Feuille dont le Nom de l'onglet est "test"

Le code que je fais est dans "test" que je veux nommer "Dest"

=> Comment Faire pour attribuer de manière constante dans le haut du code de cette feuille "test"

"Source" et "Dest" comme étant "constantes" "Feuilles" ?

afin de pouvoir utiliser ces instructions par exemple :

Source.Activate
Source.Range("A12").Select

Car avec "Set" cela marche, mais je dois redéfinir Source et Dest dans chaque sub ou function

-

Merci par avance de votre aide

PS
Une personne m'a donné quelques solutions sur PCA mais cela ne passe pas ..


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
    Public Property Get Source() As Worksheet
    Const WsSourceName As String = "Result"
    Set Source = ActiveWorkbook.Worksheets(WsSourceName)
    End Property
 
    Public Property Get Dest() As Worksheet
    Const WsDestName As String = "Test"
    Set Dest = ActiveWorkbook.Worksheets(WsDestName)
    End Property
La macro de test

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    Sub Test()
    With Source
    .Cells(1, 1).Value = "Feuille Source"
    End With
 
    With Dest
    .Cells(1, 1).Value = "Feuille Dest"
    End With
    End Sub
 
 
 
 
    Const WsSourceName As String = "Result"
    Const WsDestName As String = "Test"
 
    Public Property Get Source() As Worksheet
    Set Source = ActiveWorkbook.Worksheets(WsSourceName)
    End Property
 
    Public Property Get Dest() As Worksheet
    Set Dest = ActiveWorkbook.Worksheets(WsDestName)
    End Property

j'ai testé tes 2 solutions mais cela bloque à un moment..

Explication :

Sur la Feuille "Result" j'ai un bouton qui auparavant été en "private", qui est maintenant en "normal"

(afin de le rendre accessible par une autre feuille que "Result")

Dans cette feuille "Result", ce bouton sert pour traiter différentes choses, il est donc indispensable sur cette feuille.

-

D'autre part, j'ai une autre feuille "Test" qui me permet de "réorganiser" l'affichage de cette feuille "Result"

Sur cette feuille "Test", j'ai un autre bouton qui permet de lancer "une" réorganisation afin de l'improimre ultérieurement...
et celui-ci doit appeler le bouton de la feuille "Result"

quand je mets dans les procédures :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Set Source = Worksheets("Result")
Set Dest = Worksheets("Test")
cela passe bien..

je peux appeler sans pb le bouton de la Feuille "Result" a partir de la Feuille "Test"

-

Mais quand je mets ta 1° ou ta 2° solution de Constante, cela ne marche plus ?

-

Le message d'erreur :




Or Cette procedure existe bien dans la feuille "Source" ...

(et c'est exactement comme cela que je procède avec ma methode)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Set Source = Worksheets("Result")
Set Dest = Worksheets("Test")
Avec ma méthode cela passe, (Feuille "Test1-OK")

avec tes 2 propositions de pour définir les Noms de Feuilles en "Constante" cela ne fonctionne plus ?

je te donne le lien du fichier pour exemlple..:

http://cjoint.com/?0GslEmlqPsT

il y a 2 Feuilles Test : une qui porte le Nom "Test", l'autre "Test1-OK"

La Feuille "Test1-OK" fonctionne (ma méthode)

La Feuille "Test" avec tes 2 soluces... cela ne passe pas ???

-----------------------------------------------------------------
Merci par avance de votre aide à tous