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 :

Message d'erreur lors de parcours de fichier + nom variable de fichier [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Business Development Manager
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Business Development Manager
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Message d'erreur lors de parcours de fichier + nom variable de fichier
    Hello !!

    Je suis débutant en VBA et j'ai testé ma première macro qui à l'air de fonctionner mais qui est loin d'être parfaite :

    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
    22
    23
    24
    25
    26
    Sub Upload()
     
    Dim chemin As String
        chemin = Application.GetOpenFilename                            'ouvrir la fenêtre parcourir et copie le chemin du fichier selectionné dans chemin
     
     
    Workbooks.Open Filename:=chemin                                     'ouvre le fichier de pricing sélectioné
        Sheets("GlobalMeet tariff sheet").Select                        'selectionne l'onglet de la pricing list
        Range("A1:L700").Select                                         'selectionne le tableau
        Range("L700").Activate
        Selection.Copy                                                  'copie le tableau de pricing
        Windows("Audio Conferencing cost calculator.xlsm").Activate     'selectionne le fichier de simulation déjà ouvert
        Sheets("GlobalMeet tariff sheet").Select                        'sélectionne l'onglet où le pricing doit être copié
        Range("A1").Select
        ActiveSheet.Paste                                               'colle le tableau de pricing
        Workbooks.Open Filename:=chemin                                 'sélectionne le fichier de pricing ouvert
        ActiveWorkbook.Close                                            'puis le ferme
        Windows("Audio Conferencing cost calculator.xlsm").Activate     'retour au calculateur
        Sheets("Cost calculator").Select                                'sélectionne le premier onglet
     
     
    Application.CutCopyMode = False                                     'effacer le contenu le pressepapier
     
    MsgBox ("Thank you, the GlobalMeet tariff sheet has been uploaded.")
     
    End Sub
    L'idée est d'aller chercher un fichier de prix dans un fichier que l'utilisateur sélectionne, de copier l'onglet "GlobalMeet tariff sheet" dans l'onglet "GlobalMeet tariff sheet" (même nom) de l'outil (qui s'appelle "Audio Conferencing cost calculator").

    J'ai deux problèmes :

    1) lorsque je clique sur le bouton qui lance cette procédure je dois sélectionner un fichier et si je clique sur Fermer ou Annuler, un message d'erreur m'est renvoyé, car la procédure ne prends pas en compte ce cas (apparemment le fichier s'appelle False.xlsx dans ce cas..)

    2) Si je veux changer le nom de mon outil ("Audio Conferencing cost calculator"), évidemment le nom ne change pas dans la procédure et mon outil ne fonctionne plus. Je n'arrive pas à appliquer un nom variable...

    Merci de m'aider qi vous avez des suggestions !! )

    Antoine

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonjour,

    Pour le problème (1) sur l'utilisation de GetOpenFilename, cette FAQ MS-Excel explique comment faire le test pour savoir si l'utilisateur a bien sélectionné un nom de fichier.

    Pour le problème (2), une solution est d'utiliser ThisWorkbook, ou de stocker le classeur actif avant d'ouvrir le fichier avec Workbooks.Open

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim wsOutil As Workbook
        Set wsOutil = ActiveWorkbook
     
        'ouvre l'autre classeur et faire le copié
     
        wsOutil.Activate
    A+

  3. #3
    Candidat au Club
    Homme Profil pro
    Business Development Manager
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Business Development Manager
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Hello,

    Merci beaucoup pour ta réponse, cela m'aide à avancer.
    J'ai encore des petits problèmes de synthaxe... Il va falloir que je suive des tutos rigoureux parceque là je suis bloqué ...

    J'ai appliqué le code suivant :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub Upload()
     
    Dim wsOutil As Workbook
        Set wsOutil = ActiveWorkbook
     
    Dim chemin As String
        chemin = Application.GetOpenFilename                            'ouvrir la fenêtre parcourir et copie le chemin du fichier selectionné dans chemin
     
    If chemin = False Then Exit Sub
    Else
     
    Workbooks.Open Filename:=chemin                                     'ouvre le fichier de pricing sélectioné
        Sheets("GlobalMeet tariff sheet").Select                        'selectionne l'onglet de la pricing list
        Range("A1:L700").Select                                         'selectionne le tableau
        Range("L700").Activate
        Selection.Copy                                                  'copie le tableau de pricing
        wOutil.Activate                                                 'selectionne le fichier de simulation déjà ouvert
        Sheets("GlobalMeet tariff sheet").Select                        'sélectionne l'onglet où le pricing doit être copié
        Range("A1").Select
        ActiveSheet.Paste                                               'colle le tableau de pricing
        Workbooks.Open Filename:=chemin                                 'sélectionne le fichier de pricing ouvert
        ActiveWorkbook.Close                                            'puis le ferme
        wOutil.Activate                                                 'retour au calculateur
        Sheets("Cost calculator").Select                                'sélectionne le premier onglet
     
     
    Application.CutCopyMode = False                                     'effacer le contenu le pressepapier
     
    MsgBox ("Thank you, the GlobalMeet tariff sheet has been uploaded.")
     
    End If
     
    End Sub
    Il reste un problème sur la ligne du if, je ne comprends pas pourquoi.
    Et pareil pour le wOutil.activate, il bloque aussi.
    Une idée de la raison pour laquelle ca ne compile pas ?

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par toine79 Voir le message
    Hello,

    [code]Sub Upload()

    Dim wsOutil As Workbook
    Set wsOutil = ActiveWorkbook

    Dim chemin As String
    Chemin doit être de type Variant

    Pour le deuxième problème vous avez écrit wOutil.activate alors que vous avez déclaré la variable wsOutil.

    Pour contrôler plus efficacement votre code lors de la compilation, écrivez en tête de vos modules Option Explicit. Vous avez la possibilité de le programmer par défaut dans les paramètres de l'éditeur.

  5. #5
    Candidat au Club
    Homme Profil pro
    Business Development Manager
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Business Development Manager
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup d'avoir pris le temps de répondre à mes questions de façon précise même si elles paraissent élémentaires !

    Bonne journée

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

Discussions similaires

  1. Message d'erreur lors du parsing d'un fichier JSON
    Par Rony Rauzduel dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 28/07/2014, 11h28
  2. Réponses: 1
    Dernier message: 28/03/2008, 16h06
  3. message d'erreur lors du choix ds 1 liste
    Par zorba49 dans le forum ASP
    Réponses: 1
    Dernier message: 08/09/2005, 21h32
  4. message d'erreur lors de la création de la base
    Par ber_jp dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/05/2004, 12h15
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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