Copie de donnée depuis autre classeur

Bonjour,

Je vous sollicite pour m'aider dans la rédaction d'une macro me permettant:

1- Ouvrir un MsgBox, le clique sur oui execute la macro, et le clique non stop la macro.

2- Si oui= ouvre une boite de dialogue permettant d'aller chercher un fichier excel, sans l'ouvir.

3- Dans ce fichier copier les lignes entre les colonne A et F dont les cellules de la colonne A contienne "VA"

4- Retour sur la feuille d’exécution de la macro, dans la cellule A6 coller les valeurs copiées

5- Mise en forme du fichier

J'ai trouvé, je pense, quelque morceaux de codes, mais je ne sais pas comment les assembler ni si ils sont utiles pour ce que je veux faire.

( 1 ) Celui-ci pour la MsgBox :

'Ouverture MsgBox confirmation de copie
MsgBox "Avez-vous remplis des celulles à la mains ?" & Chr(10) & _
    "Si oui il y à un risque de desordonement des modifications" & Chr(10) & _
    "Voulez-vous continuer ?", vbYesNo, "Demande de confirmation"
'Procédure si click sur Non
    Case vbNo
'Procédure si click sur Oui
    Case vbYes

End Select

( 3 )Celui là pour la recherche de la valeur "VA" en colonne A, mais je ne sais pas comment aller sur le fichier source sans l'ouvrir.

    Dim c As Range, Plage As Range, Plage1 As Range, Result As Range
    Set Plage = Range("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

( 4 ) Et la partie du collage, qui je pense fonctionne, mais il me manque le retour sur feuille :

 Range("B6").ActiveSheet.PasteSpecial Paste:=xlPasteValues

Pour la dernière partie de mise en forme je me débrouille.

Si vous pouvez me dire si ce que je veux faire est réalisable et si oui pouvez-vous m'aider a rédiger ma macro SVP.

Personne n'a d'idées?

Solution trouvé merci a tous pour votre aide

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 à "copie donnee classeur"