Ouverture classeur avec macro - mais sur choix utilisateur

Résolu
Maxxikilla Messages postés 40 Statut Membre -  
Maxxikilla Messages postés 40 Statut Membre -
Bonjour,

Je ne sais pas vraiment si ce que je demande est possible, mais ca vaut le coup d'essayer.

Je vous explique. J'ai un fichier excel basique. Je veux faire une macro qui importe les données d'un autre fichier excel. (jusque la tout va bien)

le hic, c'est que le nom de cet autre fichier excel change.
Ca ne poserait pas de problème si c'était moi qui utilisait la macro et le fichier excel, mais je le développe pour une entreprise.

J'aimerai savoir, si, au lancement de la macro, on pourrait avoir une fenetre de type "ctrl+o" qui permettrait de choisir à quel fichier excel au appliquerait la macro ?
En résumé si l'utilisateur peut choisir quel excel importer dans son excel de base ..

J'espère avoir été assez clair :). Merci d'avance pour votre aide !

5 réponses

  1. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
     
    Bonjour,

    voila comment faire :

    ___

    'IMPORTATION D'UNE SEULE FEUILLE DE DONNEES

    Sub ImportTextFile()

    Dim DestBook As Workbook, SourceBook As Workbook
    Dim DestCell As Range
    Dim RetVal As Boolean
    Dim Chemin As String

    ' Turn off screen updating.
    Application.ScreenUpdating = False

    'chemin en relatif du dossier ou se trouve tes données
    Chemin = Sheets("Chemins").Cells(33, "D")
    'ou en hard
    'Chemin = "C:\...\dossier"

    ChDir Chemin
    ' Set object variables for the active book and active cell.
    Set DestBook = ActiveWorkbook
    Set DestCell = Range("E59") 'active la cellule OU TU AIMERAIS COPIER LES DONNEES

    ' Show the Open dialog box.
    RetVal = Application.Dialogs(xlDialogOpen).Show(Chemin & "\*.*")

    ' If Retval is false (Open dialog canceled), exit the procedure.
    If RetVal = False Then Exit Sub

    ' Set an object variable for the workbook containing the text file.
    Set SourceBook = ActiveWorkbook

    ' Copy the contents of the entire sheet containing the text file.
    Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Copy

    'OU copie un range défini
    'Range("A1:AD2000").copy

    ' Activate the destination workbook and paste special the values
    ' from the text file.
    DestBook.Activate
    DestCell.PasteSpecial Paste:=xlValues

    ' Close the book containing the text file.
    SourceBook.Close False

    Application.ScreenUpdating = True

    End Sub

    ______

    Le chemin est en fait ou tu aimerais que la fenetre ouvrir soit initialement pointée. SI tu dois toujours te balader dans 150 dossiers sur le réseau avant d'arriver au bon, ta meilleur temps de pointer directement sur le bon ^^

    Amicalement,
    Régis
    1
  2. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
     
    Cela vient du fait que pour le Chdir ton adresse ne doit pas comporter de \ à la fin ;-)

    Essaye de mettre "A:" ou juste avancer d'un dossier et "A:\dossier"

    sinon tu peux carrément enlever l'intérieur du show() mais alors là, ton ouverture poitnera sur ton bureau ou dans "mes document"
    1
  3. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
     
    exactement ! tu peux utiliser cette commande !

    Application.displayAlerts = false
    1
    1. Maxxikilla Messages postés 40 Statut Membre
       
      Merci pour ton aide !
      0
  4. Maxxikilla Messages postés 40 Statut Membre
     
    Re,

    Tout d'abord, merci pour ta réponse éclair !!

    Pour le chemin, j'ai besoin d'un hard. J'ai donc mis Chemin = "A:\" car les fichiers sont directement là.

    J'ai un petit soucis au niveau de ChDirChemin, il ne trouve pas le chemin
    error "Path no found"

    Aurais tu une idée du pourquoi ?
    Amicalement, Maxime.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Maxxikilla Messages postés 40 Statut Membre
     
    Ca fonctionne merci beaucoup !!!

    Il y a juste un petit détail:

    - il y a un message qui me demande si je veux garder la selection dans le "clipboard", parce qu'en fait, il ouvre le excel sélectionné, il copie,puis il le ferme. Ducoup il veut savoir s'il doit garder en mémoire le "ctrl+c" .. Y a t-il un moyen de lui dire oui par défaut ?
    Cette commande serait elle la solution ? DisplayAlerts = False
    0