Nom de classeur variable

Fermé
tc vba Messages postés 1 Date d'inscription mardi 12 novembre 2013 Statut Membre Dernière intervention 12 novembre 2013 - 12 nov. 2013 à 17:21
 tc vba - 13 nov. 2013 à 16:11
Bonjour,

Je suis en stage dans une entreprise et doit créer un programme pour récupérer des informations.

J'ai créé un nouveau classeur qui recevra les données du classeur source, à l'aide d'un bouton j'arrive à récupérer les informations, jusque là tout va bien.
Mon problème est que le classeur source n'est pas toujours le même. J'ai donc créer un bouton pour ouvrir le classeur que je désignerai comme source. Mon problème est le suivant comment définir ce classeur?

Voici ma macro, j'aimerai changer la première ligne pour que le nom du fichier soit celui du classeur que j'ai précedemment ouvert.

Sub Macro1()

'
' Macro1 Macro
'

'
Windows("essai macro.xlsm").Activate
Range("I6").Select
Selection.Copy
Windows("recuperation donnée.xlsm").Activate
Range("C2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Merci d'avance

1 réponse

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
12 nov. 2013 à 18:00
Bonjour,

Voilà une fonction qui retourne le chemin et le nom du fichier sélectionné :

'// Ouverture du browser Windows

'// La fonction retourne le chemin d'accès du fichier sélectionné
'//
Public Function Utilisation_FileDialog_SelectionFichier(ByVal titre As String) As Variant
Dim x As Long

With Application.FileDialog(msoFileDialogFilePicker)
'Définit un titre pour la boîte de dialogue
.Title = titre
'Interdit la multi-sélection
.AllowMultiSelect = False
'Efface les filtres existants.
.Filters.Clear
'Définit une liste de filtres pour le champ "Type de fichiers".
.Filters.Add "Classeurs Excel", "*.xls; *.xlsx; *.xlsm"
'La valeur 1 permet de spécifier que ce filtre est positionner en premier dans la liste de choix.
.Filters.Add "Documents Excel", "*.xls; *.xlsx", 1
'Définit le filtre qui s'affiche par défaut dans le champ "Type de fichiers".
.FilterIndex = 2

'Indique le type d'affichage dans la boîte de dialogue (exemple visualisation des propriétés)
.InitialView = msoFileDialogViewProperties
'Affiche la boîte de dialogue
.Show

'Boucle sur les fichiers sélectionnés
For x = 1 To .SelectedItems.Count
Utilisation_FileDialog_SelectionFichier = .SelectedItems(x)
Next x

End With

End Function


Voilà comment l'utiliser :

Dim nomFichier As String


nomFichier = Utilisation_FileDialog_SelectionFichier("Sélectionner un fichier")

Bon courage

;0)
0
Merci pour votre réponse rapide. Je sui sen train d'essayer de faire fonctionner cette fonction dans mon programme
0