OVH Cloud OVH Cloud

Range et Cells en VBA Excel

11 réponses
Avatar
Pantagruel92
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!

10 réponses

1 2
Avatar
Corona
Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select' ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1, il y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!


Avatar
Pantagruel92
D'accord avec ton rajout, Corona, c'est plus "propre". Mais, en fait la
feuille d'où part la commande (dans mon cas un bouton de commande) est la
feuille active : il n'est donc pas nécessaire de préciser si c'est celle-là
dans laquelle on veut travailler.
Quand au plantage, il donne une erreur
Erreur 1004
"la méthode Select de la classe range a échoué"

Il y a quelques temps que j'ai rencontré ce problème, avec des exemples
réels plus complexes, et je suis toujours obligé de changer d'algorithme et
de "faire autrement" pour m'en sortir...

Merci d'avoir répondu... Bon week end


Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select' ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1, il y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!







Avatar
Pierre Fauconnier
Bonjour

Ton code fonctionne très bien. Est-ce EXACTEMENT le code que tu utilises?

Si tu as coupé des lignes ou modifié des infos, on ne saura pas t'aider...

Il serait donc judicieux, si c'est le cas, que tu donnes un copier-coller
exact du code qui pose problème...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Pantagruel92" a écrit dans le
message de news:
D'accord avec ton rajout, Corona, c'est plus "propre". Mais, en fait la
feuille d'où part la commande (dans mon cas un bouton de commande) est la
feuille active : il n'est donc pas nécessaire de préciser si c'est
celle-là
dans laquelle on veut travailler.
Quand au plantage, il donne une erreur
Erreur 1004
"la méthode Select de la classe range a échoué"

Il y a quelques temps que j'ai rencontré ce problème, avec des exemples
réels plus complexes, et je suis toujours obligé de changer d'algorithme
et
de "faire autrement" pour m'en sortir...

Merci d'avoir répondu... Bon week end


Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select' ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1, il
y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le
premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!









Avatar
Corona
Bonsoir,
Chez moi, ce code fonctionne parfaitement.
Est-ce la copie exacte de ton code ?
N'utiliserais tu pas une variable qui provoquerait un débordement de
cellule ?
Philippe

"Pantagruel92" a écrit dans le
message de news:
D'accord avec ton rajout, Corona, c'est plus "propre". Mais, en fait la
feuille d'où part la commande (dans mon cas un bouton de commande) est la
feuille active : il n'est donc pas nécessaire de préciser si c'est
celle-là
dans laquelle on veut travailler.
Quand au plantage, il donne une erreur
Erreur 1004
"la méthode Select de la classe range a échoué"

Il y a quelques temps que j'ai rencontré ce problème, avec des exemples
réels plus complexes, et je suis toujours obligé de changer d'algorithme
et
de "faire autrement" pour m'en sortir...

Merci d'avoir répondu... Bon week end


Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select' ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1, il
y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le
premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!









Avatar
Pierre Fauconnier
Re...

Note toutefois que range(cells(3,2),cells(3,3) n'est pas équivalent à
range("C2:C3") mais à range("B3:C3")

Je suppose que dans ton code réel, tu utilises des variables du style
range(cells(x,y),cells(y,y))

Vérifie donc bien que ces variables renvoient des valeurs compatibles avec
les numéros des lignes et des cellules...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Pantagruel92" a écrit dans le
message de news:
D'accord avec ton rajout, Corona, c'est plus "propre". Mais, en fait la
feuille d'où part la commande (dans mon cas un bouton de commande) est la
feuille active : il n'est donc pas nécessaire de préciser si c'est
celle-là
dans laquelle on veut travailler.
Quand au plantage, il donne une erreur
Erreur 1004
"la méthode Select de la classe range a échoué"

Il y a quelques temps que j'ai rencontré ce problème, avec des exemples
réels plus complexes, et je suis toujours obligé de changer d'algorithme
et
de "faire autrement" pour m'en sortir...

Merci d'avoir répondu... Bon week end


Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select' ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1, il
y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le
premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!









Avatar
Pantagruel92
Bonjour,
C'était un copier-cloller de mon exemple simplissime. Je t'assure, ainsi
qu'aux autres qui s'intéressent à ce problème, que je ressort toujoiurs avec
l'erreur indiquée plus haut (à Corona, je crois)
Ce pb m'en...quiquine la vie depuis plusieurs semaines, et m'oblige à faire
des acrobaties dans mes programmes.

Si je remplace le .Select qui plante par toute autre commande, par exemple
.Interior.ColorIndex = 3, ça plante aussi...

Lorsque tu dis que le code fonctionne tres bien, c'est que tu l'as essayé,
ou que tu t'es dit que "evidemment, c'est si simple, ça doit marcher"...ce
que je me dis moi aussi!

Merci...


Bonjour

Ton code fonctionne très bien. Est-ce EXACTEMENT le code que tu utilises?

Si tu as coupé des lignes ou modifié des infos, on ne saura pas t'aider...

Il serait donc judicieux, si c'est le cas, que tu donnes un copier-coller
exact du code qui pose problème...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Pantagruel92" a écrit dans le
message de news:
D'accord avec ton rajout, Corona, c'est plus "propre". Mais, en fait la
feuille d'où part la commande (dans mon cas un bouton de commande) est la
feuille active : il n'est donc pas nécessaire de préciser si c'est
celle-là
dans laquelle on veut travailler.
Quand au plantage, il donne une erreur
Erreur 1004
"la méthode Select de la classe range a échoué"

Il y a quelques temps que j'ai rencontré ce problème, avec des exemples
réels plus complexes, et je suis toujours obligé de changer d'algorithme
et
de "faire autrement" pour m'en sortir...

Merci d'avoir répondu... Bon week end


Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select' ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1, il
y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le
premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!














Avatar
Pantagruel92
Pierre et Corona,
Merci de vos efforts. Si ça marche ailleurs, ça doit marcher chez moi....je
reprendrai les recherches la semaine prochaine.
Pierre, oui, j'ai interverti lignes et colonnes dans mon exemple, mais je te
rappelle que c'est à la "compil" que ça plante...
Corona, l'exemple donné est la totalité de l'appli, sans aucune variable
public nulle part!
Bon week-end à tous.


Re...

Note toutefois que range(cells(3,2),cells(3,3) n'est pas équivalent à
range("C2:C3") mais à range("B3:C3")

Je suppose que dans ton code réel, tu utilises des variables du style
range(cells(x,y),cells(y,y))

Vérifie donc bien que ces variables renvoient des valeurs compatibles avec
les numéros des lignes et des cellules...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Pantagruel92" a écrit dans le
message de news:
D'accord avec ton rajout, Corona, c'est plus "propre". Mais, en fait la
feuille d'où part la commande (dans mon cas un bouton de commande) est la
feuille active : il n'est donc pas nécessaire de préciser si c'est
celle-là
dans laquelle on veut travailler.
Quand au plantage, il donne une erreur
Erreur 1004
"la méthode Select de la classe range a échoué"

Il y a quelques temps que j'ai rencontré ce problème, avec des exemples
réels plus complexes, et je suis toujours obligé de changer d'algorithme
et
de "faire autrement" pour m'en sortir...

Merci d'avoir répondu... Bon week end


Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select' ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1, il
y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le
premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!














Avatar
Pierre Fauconnier
Tu peux m'envoyer le fichier avec ce code si tu veux...

Peux-tu préciser ta version d'Excel ?

A bientôt

Pierre

"Pantagruel92" a écrit dans le
message de news:
Pierre et Corona,
Merci de vos efforts. Si ça marche ailleurs, ça doit marcher chez
moi....je
reprendrai les recherches la semaine prochaine.
Pierre, oui, j'ai interverti lignes et colonnes dans mon exemple, mais je
te
rappelle que c'est à la "compil" que ça plante...
Corona, l'exemple donné est la totalité de l'appli, sans aucune variable
public nulle part!
Bon week-end à tous.


Re...

Note toutefois que range(cells(3,2),cells(3,3) n'est pas équivalent à
range("C2:C3") mais à range("B3:C3")

Je suppose que dans ton code réel, tu utilises des variables du style
range(cells(x,y),cells(y,y))

Vérifie donc bien que ces variables renvoient des valeurs compatibles
avec
les numéros des lignes et des cellules...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Pantagruel92" a écrit dans le
message de news:
D'accord avec ton rajout, Corona, c'est plus "propre". Mais, en fait la
feuille d'où part la commande (dans mon cas un bouton de commande) est
la
feuille active : il n'est donc pas nécessaire de préciser si c'est
celle-là
dans laquelle on veut travailler.
Quand au plantage, il donne une erreur
Erreur 1004
"la méthode Select de la classe range a échoué"

Il y a quelques temps que j'ai rencontré ce problème, avec des exemples
réels plus complexes, et je suis toujours obligé de changer
d'algorithme
et
de "faire autrement" pour m'en sortir...

Merci d'avoir répondu... Bon week end


Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select'
ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de
le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1,
il
y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans
le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le
premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!
















Avatar
Pierre Fauconnier
J'ai testé ton code en prenant le temps de
fusionner les cellules
protéger la feuille
masquer le classeur
masquer les lignes et/ou les colonnes
mettre des restrictions de validation
...

Et tout fonctionne chez moi...


Pierre

"Pantagruel92" a écrit dans le
message de news:
Bonjour,
C'était un copier-cloller de mon exemple simplissime. Je t'assure, ainsi
qu'aux autres qui s'intéressent à ce problème, que je ressort toujoiurs
avec
l'erreur indiquée plus haut (à Corona, je crois)
Ce pb m'en...quiquine la vie depuis plusieurs semaines, et m'oblige à
faire
des acrobaties dans mes programmes.

Si je remplace le .Select qui plante par toute autre commande, par exemple
.Interior.ColorIndex = 3, ça plante aussi...

Lorsque tu dis que le code fonctionne tres bien, c'est que tu l'as essayé,
ou que tu t'es dit que "evidemment, c'est si simple, ça doit marcher"...ce
que je me dis moi aussi!

Merci...


Bonjour

Ton code fonctionne très bien. Est-ce EXACTEMENT le code que tu utilises?

Si tu as coupé des lignes ou modifié des infos, on ne saura pas
t'aider...

Il serait donc judicieux, si c'est le cas, que tu donnes un copier-coller
exact du code qui pose problème...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Pantagruel92" a écrit dans le
message de news:
D'accord avec ton rajout, Corona, c'est plus "propre". Mais, en fait la
feuille d'où part la commande (dans mon cas un bouton de commande) est
la
feuille active : il n'est donc pas nécessaire de préciser si c'est
celle-là
dans laquelle on veut travailler.
Quand au plantage, il donne une erreur
Erreur 1004
"la méthode Select de la classe range a échoué"

Il y a quelques temps que j'ai rencontré ce problème, avec des exemples
réels plus complexes, et je suis toujours obligé de changer
d'algorithme
et
de "faire autrement" pour m'en sortir...

Merci d'avoir répondu... Bon week end


Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select'
ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de
le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1,
il
y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans
le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le
premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!
















Avatar
Pantagruel92
Merci de la proposition. je vais continuer à chercher un peu.
Par exemple, on m'a suggéré d'écrire :
S2.Range(S2.Cells(2,3), S2.Cells(3, 3)).Select
et, ça marche, alors qu'aucune aide ne dit d'écrire un Range comme ça!
Il y a un principe dans Activate, Select , Range que je n'ai pas encore saisi!
Merci encore


Tu peux m'envoyer le fichier avec ce code si tu veux...

Peux-tu préciser ta version d'Excel ?

A bientôt

Pierre

"Pantagruel92" a écrit dans le
message de news:
Pierre et Corona,
Merci de vos efforts. Si ça marche ailleurs, ça doit marcher chez
moi....je
reprendrai les recherches la semaine prochaine.
Pierre, oui, j'ai interverti lignes et colonnes dans mon exemple, mais je
te
rappelle que c'est à la "compil" que ça plante...
Corona, l'exemple donné est la totalité de l'appli, sans aucune variable
public nulle part!
Bon week-end à tous.


Re...

Note toutefois que range(cells(3,2),cells(3,3) n'est pas équivalent à
range("C2:C3") mais à range("B3:C3")

Je suppose que dans ton code réel, tu utilises des variables du style
range(cells(x,y),cells(y,y))

Vérifie donc bien que ces variables renvoient des valeurs compatibles
avec
les numéros des lignes et des cellules...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Pantagruel92" a écrit dans le
message de news:
D'accord avec ton rajout, Corona, c'est plus "propre". Mais, en fait la
feuille d'où part la commande (dans mon cas un bouton de commande) est
la
feuille active : il n'est donc pas nécessaire de préciser si c'est
celle-là
dans laquelle on veut travailler.
Quand au plantage, il donne une erreur
Erreur 1004
"la méthode Select de la classe range a échoué"

Il y a quelques temps que j'ai rencontré ce problème, avec des exemples
réels plus complexes, et je suis toujours obligé de changer
d'algorithme
et
de "faire autrement" pour m'en sortir...

Merci d'avoir répondu... Bon week end


Bonsoir,

Je ne vois pas où il se plante ?.
Pourrais-tu être plus précis.
Par contre, ton premier 'Range(Cells(3, 2), Cells(3, 3)).Select'
ne
précisant pas sur quelle feuille il doit travailler. Il serait bon de
le
préciser.
Supposant que tu souhaites qu'il se positionne sur la feuille 1,
il
y a
lieu d'ajouter s.activate.

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
S.Activate ' <<<<<<<<<<<<<<<<<<<<
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Philippe

"Pantagruel92" a écrit dans
le
message de news:
Quelqu'un peut me dire pourquoi, dans le programme ci dessous, le
premier
range marche tres bien, et le second se plante?

Dim S As Worksheet
Dim S2 As Worksheet
Set S = Application.Worksheets("Feuil1")
Set S2 = Application.Worksheets("Feuil2")
Range(Cells(3, 2), Cells(3, 3)).Select
S2.Activate
Range(Cells(3, 2), Cells(3, 3)).Select

Le probleme est le meme si l'on ecrit la range : Range("C2:C3")
Merci!





















1 2