Range(Mavariable) ???

  • Initiateur de la discussion Initiateur de la discussion Troudz
  • 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 !

Troudz

XLDnaute Occasionnel
bonjour tout le monde !

Pour ma première question sur ce forum, je vais pas faire dans l'originalité mais je n'ai pas trouvé de réponse adéquat sur le net.

J'explique :

J'ai un classeur principal à partir duquel je vais aller prendre des données dans la plage "Base" d'un classeur appelé "Source" pour les coller dans la plage "Base" d'un classeur "Destination". Afin de faciliter les manip et la lecture du code, je voudrais désigner ces deux plages par une variable pour procéder de cette façon :

Code:
Sub Transfert

FichierSource= "C:\dossier 1\modele.xls"
FichierDestination  = "C:\dossier 2\image.xls"

Workbooks.Open FichierSource, , , , "azerty", "uiop"
Workbooks.Open FichierDestination, , , , "azerty", "uiop"

Source= Workbooks("modele.xls").Sheets("Base").Range("Base")
Destination = Workbooks("image.xls").Sheets("Base").Range("Base")

Range(Destination).item(1,1) = Range(Source).item(1,1)
Range(Destination).item(2,1) = Range(Source).item(2,1)
Range(Destination).item(1,2) = Range(Source).item(1,2)
Range(Destination).item(3,1) = Range(Source).item(3,1)
.............

End sub

Mais bien entendu ça ne fonctionne pas. Quelqu'un saurait me dire pourquoi et comment utiliser correctement mes variables pour désigner les Range ?

Merci d'avance à tous !

P.S. : Je tiens à préciser qu'il faut absolument que je garde la procédure à base d'Item(x,y) car j'aurai de nombreux tri et critères à placer dans ma procédure.
 
Re : Range(Mavariable) ???

Bonjour Troudz,

Bienvenue sur XLD,

un essai :

Code:
Sub Transfert
Dim FichierSource as String, FichierDestination as String
Dim Source as Range, Destination as Range
 
FichierSource= "C:\dossier 1\modele.xls"
FichierDestination  = "C:\dossier 2\image.xls"
 
Workbooks.Open FichierSource, , , , "azerty", "uiop"
Workbooks.Open FichierDestination, , , , "azerty", "uiop"
 
Set Source= Workbooks("modele.xls").Sheets("Base").Range("Base")
Set Destination = Workbooks("image.xls").Sheets("Base").Range("Base")
 
Destination.Cells(1,1).value = Source.Cells(1,1).Value
Destination.Cells(2,1).value = Source.Cells(2,1).Value
.............
 
End sub

Edit : Bonjour Pierrot, Bonjour Habitude
 
Dernière édition:
Re : Range(Mavariable) ???

Bonjour Troudz

essaye ainsi :

Code:
Dim Source As Range, Destination As Range
Set Source = Workbooks("modele.xls").Sheets("Base").Range("Base")
Set Destination = Workbooks("image.xls").Sheets("Base").Range("Base")

A noter il est préférable de déclarer et de "typer" les variables...

bonne fin d'après midi
@+

Edition : bonjour toto
 
Dernière édition:
Re : Range(Mavariable) ???

3 réponses en 6min ! Chapeau ! 😛

J'avais déclaré mes variables à la base mais à force de tester et de tout bidouiller j'ai douté de mes déclarations. En fait il me manquait juste le "Set" lors de mon premier essai.😡

Merci à tous les trois et à bientôt je pense 😱😱😱
 
- 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

Discussions similaires

R
  • Question Question
Réponses
2
Affichages
988
Rousseau Benoit
R
R
Réponses
1
Affichages
3 K
O
Réponses
5
Affichages
2 K
R
Réponses
0
Affichages
3 K
R
L
Réponses
28
Affichages
5 K
louloubru
L
W
Réponses
0
Affichages
4 K
Whivez
W
P
Réponses
0
Affichages
37 K
P
W
Réponses
20
Affichages
4 K
Retour