OVH Cloud OVH Cloud

Accéder à un fichier (plusieurs fichers ouverts) avec With

2 réponses
Avatar
Patrice
Bonjour,

Ma petite macro ouvre deux fichiers à partir d'adresse contenu dans le
fichier exécutant la macro (il y a donc trois fichiers ouverts en même temps

'Ouverture du fichier global
Set Rgglob = ThisWorkbook.Worksheets("Données").Range("N14")
If Rgglob <> "" Then
If dir(Rgglob.Value) <> "" Then
Set Fileg = Workbooks.Open(Rgglob.Value)
End If
End If

'Ouverture second fichier
Set Rg = ThisWorkbook.Worksheets("Données").Range("N3:N4")

On Error Resume Next
For Each C In Rg
If C <> "" Then
If dir(C.Value) <> "" Then
Set File = Workbooks.Open(C.Value)


'C'est ici que vient mon problème: Maintenant je vais travailler à
'partir du fichier Fileg. J'ai deux façons d'y accéder. La première
'fonctionne, mais pas le deuxième

MsgBox Fileg.Worksheets("Global").Range("a1").Value 'fonctionne

With Fileg.Worksheets("Global") 'fonctionne pas
MsgBox Range("A1").Value
End With


Pour quelle raison je ne peut accéder au fichier 1 (Fileg) avec With?

Cordialement.

2 réponses

Avatar
MichDenis
Essaie ceci :

Rgglob doit être déclaré comme une variable "String" et
non comme un objet "Workbook"

'----------------------
Rgglob = ThisWorkbook.Worksheets("Données").Range("N14")
If Rgglob <> "" Then
If Dir(Rgglob) <> "" Then
Set Fileg = Workbooks.Open(Rgglob)
End If
End If
'----------------------

Tu as aussi un problème avec ceci :
| 'Ouverture second fichier
| Set Rg = ThisWorkbook.Worksheets("Données").Range("N3:N4")

Pour ouvrir un classeur, tu dois passer par la méthode Open de la collection Workbooks
Workbooks.Open "Chemin & "" & "Nom du Fichier"
Et pour attribuer le classeur ouvert à une variable objet :

Set Rg = Workbooks.Open("Chemin & "" & "Nom du Fichier")




"Patrice" a écrit dans le message de news: 4571630c$0$20415$
Bonjour,

Ma petite macro ouvre deux fichiers à partir d'adresse contenu dans le
fichier exécutant la macro (il y a donc trois fichiers ouverts en même temps

'Ouverture du fichier global
Set Rgglob = ThisWorkbook.Worksheets("Données").Range("N14")
If Rgglob <> "" Then
If dir(Rgglob.Value) <> "" Then
Set Fileg = Workbooks.Open(Rgglob.Value)
End If
End If

'Ouverture second fichier
Set Rg = ThisWorkbook.Worksheets("Données").Range("N3:N4")

On Error Resume Next
For Each C In Rg
If C <> "" Then
If dir(C.Value) <> "" Then
Set File = Workbooks.Open(C.Value)


'C'est ici que vient mon problème: Maintenant je vais travailler à
'partir du fichier Fileg. J'ai deux façons d'y accéder. La première
'fonctionne, mais pas le deuxième

MsgBox Fileg.Worksheets("Global").Range("a1").Value 'fonctionne

With Fileg.Worksheets("Global") 'fonctionne pas
MsgBox Range("A1").Value
End With


Pour quelle raison je ne peut accéder au fichier 1 (Fileg) avec With?

Cordialement.
Avatar
Francois L
Bonjour,

(...)

'C'est ici que vient mon problème: Maintenant je vais travailler à
'partir du fichier Fileg. J'ai deux façons d'y accéder. La première
'fonctionne, mais pas le deuxième

MsgBox Fileg.Worksheets("Global").Range("a1").Value 'fonctionne

With Fileg.Worksheets("Global") 'fonctionne pas
MsgBox Range("A1").Value
End With




Bonjour,

Il manque un . (point) avant le Range dans le With...

me semble-t-il

--
François L