IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Boîte de dialogue importation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Par défaut Boîte de dialogue importation
    Bonjour à tous !

    avant de parler de code j'aurais juste vouloir avoir votre avis pour savoir si ce que je souhaite faire est réalisable.

    J'aurais un fichier principal qui sera muni d'une macro "calcul" qui effectuera un certain nombre d'opérations afin de sortir des tableaux de résultats, des graphiques, etc...
    Pour obtenir ces résultats, il devra utiliser des données contenues dans des classeurs excels extérieurs.
    L'idée c'est que l'utilisateur puisse choisir quel fichier utiliser pour l'importation des données. Admettons que les données soient mensuelles par exemple, il peut très bien vouloir calculer le mois de janvier, puis plus tard le mois de mars.
    Pour cela je voudrais savoir s'il était possible de générer une boite de dialogue permettant à l'utilisateur de naviguer dans ses répertoires de façon à trouver le ficher qu'il souhaite importer. Puis ensuite la macro devra copier les données de ce classeur dans une feuille masquée dans le classeur de calcul.
    En gros je voudrais éviter à l'utilisateur de taper lui-même le chemin d'accès vers son fichier dans une cellule.

    Qu'en pensez-vous ?


    Merci !

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    c'est possible mais :
    ...L'idée c'est que l'utilisateur puisse choisir quel fichier utiliser pour l'importation des données. Admettons que les données soient mensuelles par exemple, il peut très bien vouloir calculer le mois de janvier, puis plus tard le mois de mars. ...
    ne serait'il pas préférable d'avoir un seul fichier de données avec des feuilles qui contiennent chaque mois ? A moins que je ne comprenne pas
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Par défaut
    Oui effectivement ça serait préferable mais ce que je n'ai pas précisé c'est que ces fichiers sont issus d'un autre logiciel qui ne permet qu'une extraction des données mensuelles.

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Ok, dans ce cas, je réponds comme tu le demandes
    avant de parler de code j'aurais juste vouloir avoir votre avis pour savoir si ce que je souhaite faire est réalisable.
    c'est réalisable mais si tu n'es pas aguerri, il y a un peu de boulot
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Par défaut
    Ok merci !

    oui j'attendais d'avoir essayé quelques trucs avant de demander des conseils en code.
    Après quelques recherches j'ai écris quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Sub test2()
    fichier = Application.GetOpenFilename
    If fichier = False Then Exit Sub
    MsgBox "vous avez sélectionné le fichier " & fichier
    Application.ScreenUpdating = False
    Set fcalcul = ActiveWorkbook
    Set fsource = Workbooks.Open(fichier)
    Set fimpor = wbsource.Sheets("Feuil1")
    fimpor.Activate
    fimpor.Select
    Range("A1:P100").Select
    Selection.Copy
    fcalcul.Activate
    i = ActiveSheet.UsedRange.Rows.Count
    Cells(i + 1, 1).Select
    ActiveSheet.Paste
    fsource.Close
    fcalcul.Activate
     
    End Sub
    Le problème c'est que ce qu'il copie est trop grand pour le presse-papier et du coup il ne veux pas tout me coller dans mon fichier de calcul.
    Comment remédier à ce problème ?

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Le problème c'est que ce qu'il copie est trop grand pour le presse-papier et du coup il ne veux pas tout me coller dans mon fichier de calcul.
    Comment remédier à ce problème ?
    il faut passer par des variables tableau, ça m'embête car je n'ai pas le temps sinon je t'aurais expliqué le fonctionnement, mais si tu n'es pas pressé......

    De toutes façon, j'espère que d'autres abonnés compétents pourront te donner des conseils.

    Bon courage
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Par défaut
    Ah ok
    en gros je dois boucler sur mon fichier de données pour remplir mon tableau de variables puis boucler pour écrire dans mon fichier calcul.
    Je ne suis pas particulièrement pressé, mais si c'est bien ça je vais essayer de le faire, je mettrais à jour la discussion si j'y arrive.

    En tout cas déjà merci !

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour,

    déjà il est inutile de passer par le presse-papiers !

    Suffit de directement préciser la destination de la copie, consulter l'aide de la méthode Copy associée à un Range

  9. #9
    Invité
    Invité(e)
    Par défaut Bonjour,
    Citation Envoyé par Marc-L Voir le message

    Bonjour, bonjour,

    déjà il est inutile de passer par le presse-papiers !

    Suffit de directement préciser la destination de la copie, consulter l'aide de la méthode Copy associée à un Range
    Code Effectivement comme le précise Marc : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test2()
    fichier = Application.GetOpenFilename
    If fichier = False Then Exit Sub
    'MsgBox "vous avez sélectionné le fichier " & fichier
    Application.ScreenUpdating = False
    Set fbcalcul = ActiveSheet
    Set wbsource = Workbooks.Open(fichier)
    Set fimpor = wbsource.Sheets("Feuil1")
    fimpor.Range("A1:P100").Copy fbcalcul.Cells(fbcalcul.UsedRange.Rows.Count + 1, 1)
    wbsource.Close False
    End Sub
    évite les Activate et autre select....
    Citation Envoyé par GWuigcos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub test2()
    fichier = Application.GetOpenFilename
    If fichier = False Then Exit Sub
    MsgBox "vous avez sélectionné le fichier " & fichier
    Application.ScreenUpdating = False
    Set fcalcul = ActiveWorkbook
    Set fsource = Workbooks.Open(fichier)
    Set fimpor = wbsource.Sheets("Feuil1")
    fimpor.Activate
    fimpor.Select
    Range("A1:P100").Select
    Selection.Copy
    fcalcul.Activate
    i = ActiveSheet.UsedRange.Rows.Count
    Cells(i + 1, 1).Select
    ActiveSheet.Paste
    fsource.Close
    fcalcul.Activate
     
    End Sub
    Dernière modification par Invité ; 11/04/2014 à 13h21.

  10. #10
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Mars 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 16
    Par défaut
    Ah oui en effet ça marche beaucoup mieux comme ça

    oui j'ai beau savoir qu'il faut pas trop les utiliser dès que doute s'installe ils reviennent...

    En tout cas merci beaucoup pour votre aide à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Boîte de dialogue d'import de fichier en VBA
    Par evema dans le forum VBA Access
    Réponses: 10
    Dernier message: 09/04/2014, 20h02
  2. Réponses: 2
    Dernier message: 19/06/2012, 07h38
  3. Boîte de dialogue Open File et options d'importation
    Par formabox dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/09/2007, 14h26
  4. [MFC] Boîte de dialogue chronométrée
    Par mdriesbach dans le forum MFC
    Réponses: 5
    Dernier message: 18/02/2003, 12h40
  5. Dll et boîte de dialogue MFC
    Par paulj dans le forum MFC
    Réponses: 3
    Dernier message: 19/12/2002, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo