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

Problème de Range

4 réponses
Avatar
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

4 réponses

Avatar
michdenis
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" a écrit dans le message de groupe de discussion :
#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
Avatar
Jacky
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" a écrit dans le message de news:
%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


Avatar
FS
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


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

Merci encore à vous tous.

Cdl

Infogroup






"FS" a écrit dans le message de
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