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

set plg d'une autre feuille

2 réponses
Avatar
Jean-François Aubert
Bonsoir,

On admet que la feuil1 est activée au moment
de la partie de code suivante:

sub yy()
Sheets("feuil1").Select
Set plg1 = Sheets("feuil1"). _
Range("A2:A" & Range("A65536").End(xlUp).Row)
Set plg2 = Sheets("feuil2"). _
Range("A2:A" & Range("A65536").End(xlUp).Row)

x = plg1.Address '<<--- x est ok
y = plg2.Address ' <<--- y prendra la même plage que x
stop
end sub

si je ne rajoute pas une ligne
Sheets("feuil2").Select
avant le Set plg2

J'ai essayer sans succès des :

with sheets("feuil2")
Set plg2 = Sheets("feuil2").Range(.......
end with

Est-il normal, docteur, de devoir activer la feuil2
avant de faire le Set plg2 ou ai-je la matière grise liquéfiée ?

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}

2 réponses

Avatar
michdenis
Bonjour Jean-François,

A ) C'est bien de déclarer les variables
B ) Les "Points(.)" devant les objets "Range" sont obligatoires sinon l'objet "Range" fera référence à la feuille active et
non pas à la feuille spécifiée avec l'expression With Sheets(.....)

Est-ce que tu désires ?


'------------------------
Sub yy()

Dim Plg1 As Range, Plg2 As Range

With Sheets("feuil1")
Set Plg1 = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With

With Sheets("feuil2")
Set Plg2 = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With

x = Plg1.Address
y = Plg2.Address

Set Plg1 = Nothing: Set Plg2 = Nothing

End Sub
'------------------------


Salutations!


"Jean-François Aubert" <à a écrit dans le message de news:3f3a837d$
Bonsoir,

On admet que la feuil1 est activée au moment
de la partie de code suivante:

sub yy()
Sheets("feuil1").Select
Set plg1 = Sheets("feuil1"). _
Range("A2:A" & Range("A65536").End(xlUp).Row)
Set plg2 = Sheets("feuil2"). _
Range("A2:A" & Range("A65536").End(xlUp).Row)

x = plg1.Address '<<--- x est ok
y = plg2.Address ' <<--- y prendra la même plage que x
stop
end sub

si je ne rajoute pas une ligne
Sheets("feuil2").Select
avant le Set plg2

J'ai essayer sans succès des :

with sheets("feuil2")
Set plg2 = Sheets("feuil2").Range(.......
end with

Est-il normal, docteur, de devoir activer la feuil2
avant de faire le Set plg2 ou ai-je la matière grise liquéfiée ?

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}
Avatar
AV
Le problème est que "Range("A65536").End(xlUp).Row", à défaut de précision,
fait référence à la feuille active !
Pour ne pas être tributaire de celle-ci et donc pouvoir lancer la proc à partir
de n'importe quelle feuille :

Set plg1 = Sheets("feuil1").Range("A2:A" &
Sheets("feuil1").Range("A65536").End(xlUp).Row)
Set plg2 = Sheets("feuil2").Range("A2:A" &
Sheets("feuil2").Range("A65536").End(xlUp).Row)
x = plg1.Address
y = plg2.Address

autre méthode.... avec l'objet range et une réf 3d :
x = Range("Feuil1!A2:A" & Range("Feuil1!A65536").End(xlUp).Row).Address
y = Range("Feuil2!A2:A" & Range("Feuil2!A65536").End(xlUp).Row).Address

AV

"Jean-François Aubert" <à a écrit dans le message news:
3f3a837d$
Bonsoir,


On admet que la feuil1 est activée au moment
de la partie de code suivante:

sub yy()
Sheets("feuil1").Select
Set plg1 = Sheets("feuil1"). _
Range("A2:A" & Range("A65536").End(xlUp).Row)
Set plg2 = Sheets("feuil2"). _
Range("A2:A" & Range("A65536").End(xlUp).Row)

x = plg1.Address '<<--- x est ok
y = plg2.Address ' <<--- y prendra la même plage que x
stop
end sub

si je ne rajoute pas une ligne
Sheets("feuil2").Select
avant le Set plg2

J'ai essayer sans succès des :

with sheets("feuil2")
Set plg2 = Sheets("feuil2").Range(.......
end with

Est-il normal, docteur, de devoir activer la feuil2
avant de faire le Set plg2 ou ai-je la matière grise liquéfiée ?

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}