initialisation variable range (prise de tete!!)

Le
mik
Bonjour,

en ce bon dimanche, quelqu'un aurait-il l'amabilité de me dire pourquoi ceci
ne marche pas:

Function toto (Plage As Range) As Double
Dim taux As Range

Set taux = SH_2.Range(Cells(2, 9), Cells(2, 9).End(xlDown)) (ne passe pas
cette ligne)


Sachant que cette fonction est appelée depuis la feuille SH_1

merci d'avance
mik
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Corona
Le #19973981
Boujour Mik,
As-tu défini SH_2 comme une variable objet de type worksheet ?
Sinon évidemment la syntaxe est
Set taux = Sheets("SH_2").Range(Cells(3, 9), Cells(3, 9).End(xlDown))
Bonne journée
Philippe Tulliez


mik a écrit :
Bonjour,

en ce bon dimanche, quelqu'un aurait-il l'amabilité de me dire pourquoi ceci
ne marche pas:

Function toto (Plage As Range) As Double
Dim taux As Range

Set taux = SH_2.Range(Cells(2, 9), Cells(2, 9).End(xlDown)) (ne passe pas
cette ligne)
....

Sachant que cette fonction est appelée depuis la feuille SH_1

merci d'avance
mik


Mishell
Le #19974211
Ou sinon, essaie avec cette syntaxe plus précise:
Set taux = SH_2.Range(SH_2.Cells(2, 9), SH_2.Cells(2, 9).End(xlDown))

Mishell


"mik" news:
Bonjour,

en ce bon dimanche, quelqu'un aurait-il l'amabilité de me dire pourquoi
ceci
ne marche pas:

Function toto (Plage As Range) As Double
Dim taux As Range

Set taux = SH_2.Range(Cells(2, 9), Cells(2, 9).End(xlDown)) (ne passe pas
cette ligne)
...

Sachant que cette fonction est appelée depuis la feuille SH_1

merci d'avance
mik


mik
Le #19975171
SH_2 est le (name) de ma feuille et non pas le name

Merci de ton aide

"Corona" wrote:

Boujour Mik,
As-tu défini SH_2 comme une variable objet de type worksheet ?
Sinon évidemment la syntaxe est
Set taux = Sheets("SH_2").Range(Cells(3, 9), Cells(3, 9).End(xlDown))
Bonne journée
Philippe Tulliez


mik a écrit :
> Bonjour,
>
> en ce bon dimanche, quelqu'un aurait-il l'amabilité de me dire pourquoi ceci
> ne marche pas:
>
> Function toto (Plage As Range) As Double
> Dim taux As Range
>
> Set taux = SH_2.Range(Cells(2, 9), Cells(2, 9).End(xlDown)) (ne passe pas
> cette ligne)
> ....
>
> Sachant que cette fonction est appelée depuis la feuille SH_1
>
> merci d'avance
> mik



mik
Le #19975161
ca marche merci. j'ai un peu de mal à comprendre quand même sur ce coup.
Bon dimanche

"Mishell" wrote:

Ou sinon, essaie avec cette syntaxe plus précise:
Set taux = SH_2.Range(SH_2.Cells(2, 9), SH_2.Cells(2, 9).End(xlDown))

Mishell


"mik" news:
> Bonjour,
>
> en ce bon dimanche, quelqu'un aurait-il l'amabilité de me dire pourquoi
> ceci
> ne marche pas:
>
> Function toto (Plage As Range) As Double
> Dim taux As Range
>
> Set taux = SH_2.Range(Cells(2, 9), Cells(2, 9).End(xlDown)) (ne passe pas
> cette ligne)
> ...
>
> Sachant que cette fonction est appelée depuis la feuille SH_1
>
> merci d'avance
> mik





Mishell
Le #19976831
Dans la commande suivante,
Set taux = SH_2.Range(Cells(2, 9), Cells(2, 9).End(xlDown))

SH_2.Range() fait évidemment référence à la feuille SH_2
alors que Cells(2, 9) fait référence à la feuille active qui est SH_1,
ce qui est la cause du résultat erronné.

Pour éviter ce genre d'erreur, il est préférable de toujours être explicite
et de nommer systématiquement la feuille à laquelle appartient le Cells ou
le Range.
Set taux = SH_2.Range(SH_2.Cells(2, 9), SH_2.Cells(2, 9).End(xlDown))

Mishell.




"mik" news:
ca marche merci. j'ai un peu de mal à comprendre quand même sur ce coup.
Bon dimanche

"Mishell" wrote:

Ou sinon, essaie avec cette syntaxe plus précise:
Set taux = SH_2.Range(SH_2.Cells(2, 9), SH_2.Cells(2, 9).End(xlDown))

Mishell


"mik" news:
> Bonjour,
>
> en ce bon dimanche, quelqu'un aurait-il l'amabilité de me dire pourquoi
> ceci
> ne marche pas:
>
> Function toto (Plage As Range) As Double
> Dim taux As Range
>
> Set taux = SH_2.Range(Cells(2, 9), Cells(2, 9).End(xlDown)) (ne passe
> pas
> cette ligne)
> ...
>
> Sachant que cette fonction est appelée depuis la feuille SH_1
>
> merci d'avance
> mik







mik
Le #19982821
Re Merci

"Mishell" wrote:

Dans la commande suivante,
Set taux = SH_2.Range(Cells(2, 9), Cells(2, 9).End(xlDown))

SH_2.Range() fait évidemment référence à la feuille SH_2
alors que Cells(2, 9) fait référence à la feuille active qui est SH_1,
ce qui est la cause du résultat erronné.

Pour éviter ce genre d'erreur, il est préférable de toujours être explicite
et de nommer systématiquement la feuille à laquelle appartient le Cells ou
le Range.
Set taux = SH_2.Range(SH_2.Cells(2, 9), SH_2.Cells(2, 9).End(xlDown))

Mishell.




"mik" news:
> ca marche merci. j'ai un peu de mal à comprendre quand même sur ce coup.
> Bon dimanche
>
> "Mishell" wrote:
>
>> Ou sinon, essaie avec cette syntaxe plus précise:
>> Set taux = SH_2.Range(SH_2.Cells(2, 9), SH_2.Cells(2, 9).End(xlDown))
>>
>> Mishell
>>
>>
>> "mik" >> news:
>> > Bonjour,
>> >
>> > en ce bon dimanche, quelqu'un aurait-il l'amabilité de me dire pourquoi
>> > ceci
>> > ne marche pas:
>> >
>> > Function toto (Plage As Range) As Double
>> > Dim taux As Range
>> >
>> > Set taux = SH_2.Range(Cells(2, 9), Cells(2, 9).End(xlDown)) (ne passe
>> > pas
>> > cette ligne)
>> > ...
>> >
>> > Sachant que cette fonction est appelée depuis la feuille SH_1
>> >
>> > merci d'avance
>> > mik
>>
>>
>>





Publicité
Poster une réponse
Anonyme