Copier-coller d'un dossier appelé via msgbox

elima -  
melanie1324 Messages postés 1561 Statut Membre -
Bonjour,

Débutante en vba, je dois, pour un stage, créer un bouton avec une macro permettant de copier-coller une feuille d'un fichier (à appeler) vers un autre fichier.
Je voulais savoir comment, après avoir utiliser une boite de dialogue pour chercher un fichier, ouvrir ce fichier ensuite (sachant que son nom devrait changer tous les jours) et copier sa première feuille pour la coller dans un fichier d'arrivée à une page précise.

J'ai essayé de faire ça:

Sub OuvreFichier1()
Dim QuelFichier
QuelFichier = Application.GetOpenFilename()
MsgBox QuelFichier
End Sub

Sub essaicopie_colle()
Call OuvreFichier1
QuelFichier.Activate
Range("A1:G35").Select
Selection.Copy
Workbooks("essai1.xls").Activate
Sheet("calque").Activate
Range("A1").Select
ActiveSheet.Paste
End Sub

Mais je n'arrive pas à ouvrir ce fichier qui n'a pas de nom.
Pouvez-vous m'aider?

Merci beaucoup,

Elima

6 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    pour la seconde :

    Public quelfichier
    Sub copie_colle()
    Call OuvreFichier1

    Range("A1:G35").Select
    Selection.Copy
    Workbooks("essai1.xls").Activate
    Sheets("calque").Activate
    Range("A1").Select
    ActiveSheet.Paste
    End Sub

    Sub OuvreFichier1()

    quelfichier = Application.GetOpenFilename()
    MsgBox quelfichier
    End Sub
    1
    1. elima
       
      C'est vachement bien mais ça m'a copié la plage A1:G35 de ma feuille calque dans essai1 et c'est tout... et ça n'ouvre pas mon fichier essai2 d'où je veux extraire ma plage.
      Peux-tu encore m'aider? Désolée mais je ne sais pas pourquoi chez moi ça ne marche pas.
      Merci encore de ton aide.
      0
  2. melanie1324 Messages postés 1561 Statut Membre 156
     
    Bonjour,

    essaie ca :

    Sub OuvreFichier1(Quelfichier)
    Dim QuelFichier
    QuelFichier = Application.GetOpenFilename()
    MsgBox QuelFichier
    End Sub

    Sub essaicopie_colle()
    Call OuvreFichier1 (Quelfichier)
    QuelFichier.Activate
    Range("A1:G35").Select
    Selection.Copy
    Workbooks("essai1.xls").Activate
    Sheet("calque").Activate
    Range("A1").Select
    ActiveSheet.Paste
    End Sub

    sinon autre solution

    public quelfichier as variant

    Sub OuvreFichier1()
    Dim QuelFichier
    QuelFichier = Application.GetOpenFilename()
    MsgBox QuelFichier
    End Sub

    Sub essaicopie_colle()
    Call OuvreFichier1
    QuelFichier.Activate
    Range("A1:G35").Select
    Selection.Copy
    Workbooks("essai1.xls").Activate
    Sheet("calque").Activate
    Range("A1").Select
    ActiveSheet.Paste
    End Sub
    0
  3. elima
     
    Merci Mélanie,

    J'ai essayé la première solution, mais il s'est affiché: nombre d'argments incorrect ou affectation de propriété incorrecte.
    En essayant la deuxième solution, il s'est affiché: Sub ou function non définie.
    J'ai essayé comme ça:

    Public quelfichier As Variant
    Sub copie_colle()
    Call OuvreFichier1
    quelfichier.Activate
    Range("A1:G35").Select
    Selection.Copy
    Workbooks("essai1.xls").Activate
    Sheet("calque").Activate
    Range("A1").Select
    ActiveSheet.Paste
    End Sub

    Sub OuvreFichier1()
    Dim quelfichier
    quelfichier = Application.GetOpenFilename()
    MsgBox quelfichier
    End Sub

    Pouvez-vous encore m'aider?

    Merci encore.
    0
  4. melanie1324 Messages postés 1561 Statut Membre 156
     
    Pour la première, voici ce qu'il faut mettre:

    Sub OuvreFichier1(QuelFichier)

    QuelFichier = Application.GetOpenFilename()
    MsgBox QuelFichier
    End Sub

    Sub essaicopie_colle()
    Call OuvreFichier1(QuelFichier)
    QuelFichier.Activate
    Range("A1:G35").Select
    Selection.Copy
    Workbooks("essai1.xls").Activate
    Sheets("calque").Activate
    Range("A1").Select
    ActiveSheet.Paste
    End Sub
    0
    1. melanie1324 Messages postés 1561 Statut Membre 156
       
      Il faut juste que tu enlèves la ligne QuelFichier.Activate
      et c'est bon.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. elima
     
    En fait j'ai loupé une étape et je ne sais pas comment faire. Le programme va bien m'aider à aller chercher un fichier, mais il n'ouvre pas ce fichier. Comment faire pour ouvrir le fichier selectionner dans la msgbox?
    Merci encore.
    0
    1. melanie1324 Messages postés 1561 Statut Membre 156
       
      Sub OuvreFichier1()

      quelfichier = Application.GetOpenFilename()
      MsgBox quelfichier
      Workbooks.Open quelfichier

      End Sub
      0
  7. elima
     
    Merci merci merci!!!!
    ça fonctionne parfaitement!

    Désolée d'avoir un peu bâclé la base du programme posté au départ.
    Je fonctionne grâce à tout ce que je trouve sur ce site quand on me demande une macro un peu exotique et donc je l'ai mal construit car je n'ai pas assez réfléchi.

    Maintenant je sais comment ouvrir un fichier.

    Merci beaucoup Mélanie pour ton aide rapide et ta patience.
    Ce site est extra.
    Bonne journée!
    0
    1. melanie1324 Messages postés 1561 Statut Membre 156
       
      de rien c'est normal.
      0