Un problème d'appel de fichier source

Résolu/Fermé
Moldude Messages postés 19 Date d'inscription jeudi 21 mars 2019 Statut Membre Dernière intervention 8 janvier 2020 - 14 mai 2019 à 08:26
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 15 mai 2019 à 08:34
Bonjour,
J'aimerai améliorer ma macro de copie de cellules d'un fichier à un autre en y incluant une boite de dialogue pour sélectionner le fichier source de copie. N'ayant pas trouvé mon bonheur dans les différentes ressources je viens questionner ce forum qui m'as déjà apporter plusieurs solutions à mes problèmes.
Voila j'aimerai au lancement de la macro qu'une boite de dialogue s'ouvre et que dedans j'y insère le nom (ou le chemin du fichier). Ce nom sera ensuite utilisé dans la macro comme "Classeur1"
Le but c'est de pouvoir utiliser cette macro pour plusieurs fichiers sans à chaque fois avoir à retourner dans le code pour changer le nom du fichier source.

Voici un bout de ma macro
Sub Macro4()
'
' Macro4 Macro
'

'
Windows("Classeur1").Activate
Sheets("Macro").Select
Range("B2").Select
Selection.Copy
Windows("Classeur2").Activate
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

D'avance merci.

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
14 mai 2019 à 09:42
1
Moldude Messages postés 19 Date d'inscription jeudi 21 mars 2019 Statut Membre Dernière intervention 8 janvier 2020
14 mai 2019 à 10:51
Super merci d'avoir pris le temps de me répondre,
mais petit problème, la boite de dialogue fonctionne mais par contre je ne vois pas comment "l'appeler" dans le reste de ma macro (sous quel nom la variable a été stockée)
Actuellement j'ai ceci :


Sub SelectionFichier01()
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogOpen)
fd.Title = "Sélectionnez un fichier..."
fd.AllowMultiSelect = False
If fd.Show() Then
MsgBox "Vous avez sélectionné le fichier : " _
& vbCrLf & fd.SelectedItems(1), vbInformation
End If
Set fd = Nothing
End Sub

Sub Macrotestafb()
'
' Macro4 Macro
'

'
Call SelectionFichier01

Windows("fd").Activate
Sheets("Macro").Select
Range("B2").Select
Selection.Copy
Windows("Classeur2").Activate
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

J'ai le code erreur " L'indice n'appartient pas à la sélection (il ne le trouve pas si j'ai bien compris)
et du coup je ne sais pas sous quel nom est stocké le fichier importé (anciennement "Classeur1" maintenant "fd").

D'avance merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
14 mai 2019 à 11:44
Re,

Ce code et plus approprie, mais vu que cela n'ouvre pas le fichier va pas aller.
De plus comprends pas ce que vous voulez faire avec vos

pouvoir utiliser cette macro pour plusieurs fichiers sans à chaque fois avoir à retourner dans le code pour changer le nom du fichier source.


Sub Macrotestafb()
'
    Fichier = SelectionFichier01
    If Fichier = False Then
        MsgBox "Attention: pas de fichier selectionne!!!!!!!!!"
        Exit Sub
    End If
End Sub

Function SelectionFichier01()
    Dim strFileToOpen As Variant
    
    strFileToOpen = Application.GetOpenFilename _
                            (Title:="Please choose a file to open", _
                            FileFilter:="Excel Files *.xls* (*.xls*),")
    SelectionFichier01 = strFileToOpen
End Function
0