Problème définition Range dans fichier distant

  • Initiateur de la discussion Initiateur de la discussion ludo27
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

ludo27

Guest
Bonsoir,
J'essaie de définir un range à partir de cellules situées dans un classeur distant de celui où le code s'exécute.

shtSource désigne l'onglet du classeur distant.

Code:
Set rgBegin = shtSource.Range("A1")
Fonctionne bien et on peut accéder sans souci à
Code:
rgBegin.cells(1,1).value
par exemple.

En revanche je ne peux pas définir de range à partir de rgBegin par exemple :
Code:
Range(rgBegin , rgBegin .End(xlToRight))
ou
Code:
Range(rgBegin .Offset(0, 0), rgBegin .Offset(0, 10))

J'obtiens l'erreur
Erreur définie par l'application ou par l'objet

Est-il possible de définir et d'utiliser un range sur des cellules situées dans un autre fichier ?

Merci 🙂
 
Re : Problème définition Range dans fichier distant

Bonjour,

Quand tu fais référence à un autre fichier (ou feuille), il faut toujours le préciser quand tu utilise "Range".
Soit avec With:

With shtSource
.Range........
End with

soit comme ceci
shtSource.Range
même si "rgBegin" y fais déjà référence.
Essaye ceci:
Code:
shtSource.Range(rgBegin .Offset(0, 0), rgBegin .Offset(0, 10))
 
Re : Problème définition Range dans fichier distant

Merci Skoobi, ça marche très bien 😉

Juste une petite question d'optimisation :

Est-ce qu'on peut réduire un peu l'écriture :

Code:
dQty = shtSource.Range(rg.Offset(lLi, lCol), rg.Offset(lLi, lCol)).Cells(1, 1).Value

Pour atteindre une cellule ?

Code:
 dQty = shtSource.Range(rg).Offset(lLi, lCol).Value
ne marche pas.

Bon en tout cas je suis dépanné; merci beaucoup !
 
Re : Problème définition Range dans fichier distant

Bonjour,

d'après ce que tu écris, "rg" est un Range donc:

Code:
dQty = shtSource.rg.Offset(lLi, lCol).Value
Oui, rg est bien un Range mais
Code:
shtSource.rg
n'est pas reconnu.

J'ai fait une petite fonction pour ne pas avoir à copier toute la ligne
Code:
shtSource.Range(rg.Offset(lLi, lCol), rg.Offset(lLi, lCol)).Cells(1, 1).Value
à chaque fois.

Merci. 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

J
Réponses
13
Affichages
1 K
L
Réponses
1
Affichages
1 K
Lucien31
L
N
Réponses
17
Affichages
3 K
ninajams
N
L
Réponses
9
Affichages
2 K
louloubru
L
J
Réponses
5
Affichages
7 K
JBV010912
J
Retour