Ouvrir et fermer un classeur sous Excel

Bonjour,

je suis entrain de faire une macro qui va extraire des valeurs d'une cellule d'une feuille excel et la mettre dans une autre feuille.

le hic c'est cette valeur ne peut etre extraite que si la feuille est ouverte .

donc ce que je veux faire c ouvrir cette feuille, extraire la valeur dont j'ai besoin et refermer cette feuille apres.

ce qui est en rouge n'a pas marché.

voila le code:

Sub ListeFichiers(Repertoire As String, iIndexMois As Long)
'-----------------------------------------------------------------------------------------
'                                Déclarations
'-----------------------------------------------------------------------------------------
Dim Fso As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder
Dim FileItem As Scripting.File
Dim i As Long
Dim Nchaine, Ndebut, Nfin, f1nom As String
Dim Mchaine, Mdebut, Mfin, f1mois As String
Dim nom As String
Dim mois As String
Dim Feuilconso As Worksheet
Dim feuilsource As Worksheet
Dim Lig4, DerLig4 As Long
Dim valeur As Double
Dim name As String

Dim xlApp As Excel.Application
Dim xlBook As Workbook
Dim xlSheet As Worksheet
'-----------------------------------------------------------------------------------------
'                                 Traitements
'-----------------------------------------------------------------------------------------
Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(Repertoire)
Set Feuilconso = Sheets("conso-factu TMA AXA")

'Boucle sur tous les fichiers du répertoire
    For Each FileItem In SourceFolder.Files
    name = FileItem.name

        'fnom renvoie le nom extrait du nom de fichier
        Nchaine = FileItem.name
        Ndebut = InStr(1, Nchaine, " ", vbTextCompare) + 1
        Nfin = InStr(1, Nchaine, "_", vbTextCompare)
        f1nom = Mid(Nchaine, Ndebut, Nfin - Ndebut)

        'fmois renvoie le mois extrait du nom du fichier
        Mchaine = FileItem.name
        Mdebut = Right(Mchaine, 9)
        f1mois = Mid(Mdebut, 1, 2)

        With Sheets("conso-factu TMA AXA")
            DerLig4 = .Range("A" & Rows.Count).End(xlUp).Row

            For Lig4 = 3 To DerLig4

                nom = Feuilconso.Range("A" & Lig4).Value
                mois = iIndexMois

                If nom = f1nom And mois = f1mois Then

                    [color=red]Workbooks(name).Worksheets("Feuil1").Open[/color]
                    valeur = (Workbooks(name).Worksheets("Feuil1").Range("C" & 8).Value)
                    .Range("D" & Lig4).Value = valeur
                   [color=red] Workbooks(name).Worksheets("Feuil1").Close[/color]

                End If

            Next Lig4
        End With
    Next FileItem

End Sub

Comment je peux faire cela?

Merci

Il faut que tu mettes le nom complet du classeur je pense,

du style C:\Mes Documents.....

Ou thisworkbook.path & "\Dossier\" si tu ton classeur est dans le même répertoire que le classeur qui contient la macro...

souri84 a écrit :

Il faut que tu mettes le nom complet du classeur je pense,

du style C:\Mes Documents.....

Ou thisworkbook.path & "\Dossier" si tu ton classeur est dans le même répertoire que le classeur qui contient la macro...

j'ai essayé mais ça marche pas

Bonsoir,

Essaie :

...
If nom = f1nom And mois = f1mois Then
Workbooks.Open name
valeur = Workbooks(name).Worksheets("Feuil1").Range("C8").Value
Workbooks(name).Close
.Range("D" & Lig4).Value = valeur 
End if
...

A+

salut le forum

Nsqualli, merci de répondre sur tes deux autres ficelles

https://forum.excel-pratique.com/viewtopic.php?t=8612

et

https://forum.excel-pratique.com/viewtopic.php?t=8619

Je vais encore passer pour être une peste sur le forum

La Charte est pourtant assez clair

Dans la charte l'Administrateur a écrit :

EN POSTANT UNE QUESTION VOUS VOUS ENGAGEZ A DONNER OBLIGATOIREMENT UNE REPONSE SI VOUS AVEZ OBTENU DE L'AIDE (cela représente un minimum de respect pour les membres qui prennent le temps de vous aider, c'est également leur seul remerciement ... si vous ne voulez pas respecter les personnes à qui vous demandez de l'aide, ne posez pas de question, merci).

Mytå

Merci pour vos réponses pertinentes

Rechercher des sujets similaires à "ouvrir fermer classeur"