Activer la fenetre ouverte par la macro

Bonjour,

je suis novice en excel-VBA.

j'ai réussi, grace à internet, à faire une macro qui me permet de copier des colonnes d'une feuille à une autre.

en poussant les commandes, je voulais directement copier depuis le fichier source dans mon fichier résultat. cela marche quand j'identifie clairement mon fichier source. la suptilité maintenant c'est que je souhaite pouvoir copier les colonnes du fichiers que j'ouvre, donc pas forcément le même nom.xls.

voici le bout de code que j'ai:

Sub MacroSol()

'Ouvrir le fichier de source
    Set xlApp = CreateObject("Excel.Application")
    CheminFichier = Application.GetOpenFilename("Fichier excel, *.xlsx", , , , False)

'copier la colonne A de Base du fichier
    Windows("fichier source sept13.xlsx").Activate
    Sheets("Base").Select
    Columns("A:A").Select
    Range("A2").Activate
    Selection.Copy

'coller la colonne dans la feuille 2
    Windows("fichier destination.xlsm").Activate
    Sheets("Resultat").Select
    Columns("A:A").Select
    ActiveSheet.Paste
End Sub

Je copie les colonnes dont j'ai besoin en copiant les différentes colonnes.

Mon Problème c'est que le fichier source change de nom à chaque mois et je vais le choisir dans un répertoire qui peut changer aussi alors je vais le chercher manuellement.

Donc je souhaite activer le fichier que j'ouvre pour faire la copie. Comment faire pour ne pas mettre le nom du fichier dans cette ligne "Windows("fichier source sept13.xlsx").Activate" , mais que ce soit le fichier que j'ouvre qui se selectionne. La macro reste dans le fichier destination.

En mettant "fichier destination.xlsm" dans une variable que tu changes une fois pour toute dans le fichier et pas a chaque ligne de code?

Quelquechose comme

Public Const workbook_name As String = "fichier destination.xlsm"

merci, mais c'est le fichier source qui change de nom tout les mois!

Bonjour

Testes et dis si cela te convient

Sub MacroSol()
Dim CheminFichier

'Ouvrir le fichier de source
  CheminFichier = Application.GetOpenFilename("Fichier excel, *.xlsx", , , , False)

  If CheminFichier <> "Faux" Then
    Application.ScreenUpdating = False
    With Workbooks.Open(CheminFichier)
      .Sheets("Base").Columns("A").Copy ThisWorkbook.Sheets("Resultat").Range("A1")
      .Close savechanges:=False
    End With
  End If
End Sub

merci à vous pour l'aide apporté!!!!

Rechercher des sujets similaires à "activer fenetre ouverte macro"