Problème de Range

Le
Infogroup
Bonjour à tous,

Je ne sais pas pourquoi l'instruction ci-dessous n'est pas correcte :
Sheets("Travail").Range("A1").Select

Si j'écris :
Sheets("Travail").Select
Range("A1").Select
il n'y a aucun problème

Quelle serait l'écriture correcte ?

Merci par avance

Cdl

Infogroup
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
michdenis
Le #20190091
Bonjour,

C'est un principe obligatoire en VBA dans Excel.

Pour pouvoir sélectionner une cellule sur une feuille
cette feuille doit être la feuille active.

La meilleurs syntaxe pour ce type de ligne de code :
Cette syntaxe est valide que ton code soit écrit dans
un module feuille ou un module standard :

'-----------------------------
With Sheets("Travail")
.select
.Range("A1").Select
End With
'-----------------------------

N.B- Il est possible de travailler avec un Range sans devoir
continuellement le sélectionner !



"Infogroup" #H4w5$
Bonjour à tous,

Je ne sais pas pourquoi l'instruction ci-dessous n'est pas correcte :
Sheets("Travail").Range("A1").Select

Si j'écris :
Sheets("Travail").Select
Range("A1").Select
il n'y a aucun problème

Quelle serait l'écriture correcte ?

Merci par avance

Cdl

Infogroup
Jacky
Le #20190061
Bonsoir,

La méthode "Select" nécessite que la feuille en question soit la feuille
active
Si le feuille "Travail' est la feuille active, le code fonctionne, dans le
cas contraire xl renvoie l'erreur 1004
il y a aussi
'--------
With Sheets("Travail")
.Activate
.Range("A1").Select
End With
'-----------
Cela dit "Select" est souvent inutile, on peut très bien écrire dans une
cellule ou plage de cellule sans que la feuille soit active.
'------------
ActiveSheet.Range("A1").Copy Sheets("Travail").Range("c1")
'------------

Ceci copy de la feuille active la cellule A1 vers la feuille travail en C1
.--
Salutations
JJ


"Infogroup" %23H4w5$
Bonjour à tous,

Je ne sais pas pourquoi l'instruction ci-dessous n'est pas correcte :
Sheets("Travail").Range("A1").Select

Si j'écris :
Sheets("Travail").Select
Range("A1").Select
il n'y a aucun problème

Quelle serait l'écriture correcte ?

Merci par avance

Cdl

Infogroup


FS
Le #20190191
Par convention probablement, Select ne peut faire qu'une chose à la fois.
L'aide propose d'activer la feuille avant de sélectionner une plage :

Sheets("Travail").Activate
Range("A1").Select

Pour n'avoir qu'une seule instruction, on peut passer par Goto :

Application.Goto Sheets("Travail").Range("A1"), True

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Infogroup a écrit :
Bonjour à tous,

Je ne sais pas pourquoi l'instruction ci-dessous n'est pas correcte :
Sheets("Travail").Range("A1").Select

Si j'écris :
Sheets("Travail").Select
Range("A1").Select
il n'y a aucun problème

Quelle serait l'écriture correcte ?

Merci par avance

Cdl

Infogroup


Infogroup
Le #20190791
Merci à michdenis, Jacky et FS pour toutes ces infos qui petit à petit me
font progresser en VBA

Merci encore à vous tous.

Cdl

Infogroup






"FS" news:eToC$
Par convention probablement, Select ne peut faire qu'une chose à la fois.
L'aide propose d'activer la feuille avant de sélectionner une plage :

Sheets("Travail").Activate
Range("A1").Select

Pour n'avoir qu'une seule instruction, on peut passer par Goto :

Application.Goto Sheets("Travail").Range("A1"), True

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Infogroup a écrit :
Bonjour à tous,

Je ne sais pas pourquoi l'instruction ci-dessous n'est pas correcte :
Sheets("Travail").Range("A1").Select

Si j'écris :
Sheets("Travail").Select
Range("A1").Select
il n'y a aucun problème

Quelle serait l'écriture correcte ?

Merci par avance

Cdl

Infogroup




Publicité
Poster une réponse
Anonyme