Appliquer une macro a un fichier ouvert par une macro

Bonjour à tous,

Je voudrais savoir comment appliquer une partie de ma macro à un fichier que j'ouvre avec une autre partie de ma macro.

Je m'explique:

J'ai un classeur "1489 Spec", une feuille "Spec VA" dans celle-ci je souhaiterais avoir une copie, d'une partie des données d'un autre classeur. Donc j'applique une macro pour aller chercher le classeur voulu avec

Application.Dialogs(xlDialogOpen).Show

Le classeur source se nomme "1489 Nomenclture" mais le 1489 n'est pas une constante. Le nom pourrais être aussi "2084 Nomenclature". Seul le mot "Nomenclature" est une constante.

Mais la partie suivante de ma macro, ne s'execute pas, je pense par ce que je ne déclare pas le classeur dans lequel elle doit copier les donnée, mais je ne sais pas si il est possible de dire par exemple: Workbook("XXX Nomenclature").Sheets("Feuil1").Range(".....") puis la suite de la macro.

Pouvez-vous m'aider? Me dire si ce que je demande ce fait, voici la partie de mon code:

    If MsgBox("Avez-vous remplis des cellules en manuel?", vbYesNo, "Demande de confirmation") = vbNo Then
        ChDrive "S"
        ChDir "S:\XXX\XXX"
        Application.Dialogs(xlDialogOpen).Show
         'Application.GetOpenFilename
        'stFile =

Dim c As Range, Plage As Range, Plage1 As Range, Result As Range
    Set Plage = [color=#FF00FF]Workbook("XXX Nomenclature")[/color].Sheets("Feuil1").Range("A4:A" & Cells(Cells.Rows.Count, 1).End(xlUp))
    Set Plage1 = Plage.Offset(, -5).Resize(, 6)
    For Each c In Plage
        If c.Value = "VA" Then
            If Result Is Nothing Then
                Set Result = Plage1.Rows(c.Row)
            Else
                Set Result = Union(Result, Plage1.Rows(c.Row))
            End If
        End If
    Next c
    If Not Result Is Nothing Then Result.Copy

    End If

Personne n'a d'idée?

Bonjour,

une solution peut être de récupérer le nom du classeur après son ouverture avec quelque chose du style :

MonClasseur = activeworkbook.name

Et dans la suite du code pour travailler sur ce classeur tu utilises :

workbooks(MonClasseur).sheets(...

Est-ce une solution qui peut te convenir ?!

Dis moi,

RemBabar

Solution trouvé merci pour votre aides

Sub macopie()
Dim Wb As Workbook
If MsgBox("Avez-vous remplis des cellules en manuel?", vbYesNo, "Demande de confirmation") = vbNo Then
'ChDrive "S"
'ChDir "S:\XXX\XXX"
rep = Application.GetOpenFilename
If rep <> True Then
Set Wb = GetObject(rep) 'ouverture en invisible
With Wb.Sheets("Feuil1")
'le point indique que l'on indique l'onglet du fichier choisit
bas = .[A65000].End(3).Row
i = 5 'pour commencer en ligne 5
'on copie A-F en B-G de la feuille active
For lig = 4 To bas
If .Cells(lig, 1) = "VA" Then
'copie que des valeurs
Range("B" & i & ":H" & i).Value = .Range("A" & lig & ":G" & lig).Value
i = i + 1
End If
Next lig
End With
Wb.Close 'ferme le fichier
End If
End If
End Sub
Rechercher des sujets similaires à "appliquer macro fichier ouvert"