Un problème d'appel de fichier source

Résolu
Moldude Messages postés 19 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    1
    1. Moldude Messages postés 19 Statut Membre
       
      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
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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