déclaration variable

goldfinger13

XLDnaute Occasionnel
Bonsoir à tous,
J'ai besoin de votre aide pour le début de ce code.
J'ai un classeur ouvert : classeur destination à partir duquel s’exécute ma macro.
je souhaite que l'utilisateur puisse choisir le dossier dans lequel il va trouver le classeur source
je souhaiterais remplacer le nom du classeur par sa variable afin de simplifier par la suite la mise à jour du code.

et je bloque sur l'écriture du code notamment sur la déclaration des variables




Code:
Sub recherche()
Dim ClasseurSource As String, ClasseurDestination As String
Set ClasseurSource = Workbooks("SourceDonnees.xlsm") 'ça bloque ici mais je suppose qu'il doit y avoir autre chose
Set ClasseurDestination = ThisWorkbook
'ouverture du fichier SourceDonnees
MonFichier = Application.GetOpenFilename("Fichiers Excel (*.xl*), *.xl*")
If MonFichier <> False Then
Workbooks.Open Filename:=MonFichier
Else
End If
 
'intégrer les données
    Windows("DestinationDonnees.xlsm").Activate
    'recherche la valeur
   Range("B1").Select
    ActiveCell.FormulaR1C1 = "='ClasseurSource.fiabilisé'!R3C2:R3C5"
merci d'avance pour votre aide
 

goldfinger13

XLDnaute Occasionnel
Re : déclaration variable

j'ai modifié et déplacé la ligne set classeur source après l'ouverture et là ça passe par contre je suis bloqué là
Code:
 ActiveCell.FormulaR1C1 = "='ClasseurSource.fiabilisé'!R3C2:R3C5"
je pense que la syntaxe n'est pas bonne.
 

Paf

XLDnaute Barbatruc
Re : déclaration variable

Bonjour à tous

ClasseurSource dans la chaine ( "='ClasseurSource.fiabilisé'!R3C2:R3C5" ) est considéré comme une chaine de caractère et non comme le contenu de la variable. Il faut donc décomposer

en supposant que fiabilisé est le nom de la feuille, a priori:

Code:
    'intégrer les données
   ThisWorkbook.ActiveSheet.Range("B1").FormulaR1C1 = "=[" & ClasseurSource.Name & "]fiabilisé!R3C2:R3C5"

A+
 

goldfinger13

XLDnaute Occasionnel
Re : déclaration variable

'intégrer les données

OUF!!!
merci PAF
Code:
 ThisWorkbook.ActiveSheet.Range("B1").FormulaR1C1 = "='[" & ClasseurSource.Name & "]fiabilisé'!R3C2:R3C5"

Il manqué juste deux guillemets simple pour encadrer le le classeur et la feuille.
Grace toi j'ai pu passer le cap.

merci à tous pour votre aide
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 083
Membres
103 458
dernier inscrit
Vulgaris workshop