Lire dans un fichier fermé excel

Signaler
Messages postés
4
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
22 septembre 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,

Je précise tout d'abord que je suis novice en la matière: j'ai trouvé un code sur le web pour extraire les données d'une cellule excel de plusieurs fichiers en meme temps. Celui ci fonctionne entrant le chemin d'accès complet du repertoire ou se trouve les fichiers .xls. J'essaye donc de le modifier afin de n'avoir juste à executer la macro depuis le dossier concerné (dans le dossier ou se trouve les fichiers .xls:



Sub chercheFichiersFermesV03()
Dim X As Integer, nbFichiers As Integer, Y As Integer
Dim Tableau() As String
Dim Direction As String



Application.ScreenUpdating = False
Direction = Dir(ThisWorkbook.Path & "\*.xls")
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop



If nbFichiers > 0 Then
For X = 1 To nbFichiers
If Tableau(X) <> ThisWorkbook.Name Then
Y = Y + 1
With ActiveSheet.Cells(Y, 1)
.Formula = "='\\[" & Tableau(X) & "]Feuil1" & "'!" & "A1"
.Value = .Value
End With
End If
Next X
End If



Application.ScreenUpdating = True
End Sub



J'ai marqué en rouge les points que j'ai modifiés ( ou il y avait simplement le chemin d'accès du dossier contenant les fichiers a extraire). Après avoir tout essayé, je sèche !
Merci bien

Diabi

8 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
36
salut,
dans ton code "trouvé", c'était indiqué VB6 ? !!!

novice ok, mais au point de ne pas savoir en quoi tu dev?

topic déplacé sur VBA
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
79
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
25 septembre 2007

Salut,

pourrais tu expliquer sur quoi tu sèches???
J'imagine que ce que tu as modifié en rouge ne fonctionne pas, mais as-tu un message d'erreur? Si oui lequel et à quelle ligne se produit-il???
Si tu veux des réponses il faut penser à expliquer clairement ce qui ne va pas...

Tubafat  
Avant d'imprimer, pensez à l'environnement
Messages postés
4
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
22 septembre 2007

Bonjour,

je n'ai pas de message d'erreurs a proprement dit mais j'obtiens :


<colgroup>
<col style=\"WIDTH: 60pt\" width=\"80\" />
</colgroup>

<colgroup>
<col style=\"WIDTH: 60pt\" width=\"80\" />
</colgroup>

----

#REF!,

----

#REF!,

----

#REF!
autant de fois qu'il y a de fichiers xls dans mon dossier
si je modifie le code :

.Formula = ActiveWorkbook.Path & "\[" & Tableau(X) & "]Feuil1" & "'!" & "i8"

J'obtiens ceci:
C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie (2) - Copie.xls]Feuil1'!i8<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie (2).xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie (3) - Copie.xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie (3).xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie (4).xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie - Copie (2).xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie - Copie (3).xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie - Copie - Copie (2).xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie - Copie - Copie.xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie - Copie.xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel - Copie.xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Nouveau Feuille de calcul Microsoft Excel.xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[Récup nbre de fiche nombre de nuits.xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[testtt.xls]Feuil1'!i8

C:\Users\diabolo\Desktop\Nouveau dossier\[ZZrecup - safr.xls]Feuil1'!i8

la liste des chemins d'accès des fichiers dans le dossier ( alors que je veux le contenu de la cellule I8 dans la "feuil1"

Désolé pour mon manque d'explications.
Merci de votre aide.

Diabi

 
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Essaie ceci
ActiveSheet.Range("A1:A" & nbFichiers).Formula = "='\\[" & Tableau(X) & "]Feuil1'!" & A1

et là j'imagine que tu es train d'écrire dans une autre feuille que Feuil1 ...parce que sinon, ça causera sûrement une erreur de référence

MPi
Messages postés
4
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
22 septembre 2007

Merci de ton aide mais ca ne fonctionne toujours pas !
#REF!, ----
#REF!, ----
#REF!
Toujours cette satanée erreur !
si tu vois une autres solutions...
merci de votre aide !
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Je ne vois pas la raison du double-slash "//"  (?)
Essaie ceci pour voir

With ActiveSheet.Cells(X, 1)

.Formula = "='[" & Tableau(X) & "]Feuil1'!A1"

Si les fichiers distants sont fermés, tu ne pourras probablement pas voir la valeur affichée. Tu devrais voir #VALEUR, si je ne me trompe. Pour pouvoir la voir, il te faudra les ouvrir sans pour autant les afficher (ScreenUpdating = False)

Si tu vois toujours des #REF, il faudra alors vérifier la formule que ton code génère. Il y a probablement une erreur de syntaxe.

MPi²
Messages postés
4
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
22 septembre 2007

C'est vraiment dingue ! ca ne fonctionne toujours pas. Pourtant mon code fonctionne avec les chemins d'accès des dossiers :
Direction = Dir("C:\Documents and Settings\michel\dossier\general\excel\*.xls")

et

With ActiveSheet.Cells(Y, 1)
.Formula = "='C:\Documents and
Settings\michel\dossier\general\excel\[" & Tableau(X) & "]Feuil1" &
"'!" & "A1"

Il y a forcement une solution....
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Une dernier test ?

Dim Chemin as string
Chemin = "C:\Documents and Settings\michel\dossier\general\excel"
With ActiveSheet.Cells(X, 1)

.Formula = _
    "='" & Chemin & "[" & Tableau(X) & "]Feuil1'!A1"

MPi²