Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

création d'une macro sur Excel



  1. #1
    morgane1111

    création d'une macro sur Excel


    ------

    Bonjour,
    Je vous expose mon problème. Je souhaiterai créer une macro à partir d'un fichier dit Suivi_des_plans_actions. Ce fichier est directement téléchargé et mis à jour par une surface. J'ai donc créer un autre fichier dit PA_SQE_MR dans lequel je reprends manuellement les données qui m'intéressent sur le premier fichier afin d'en exploiter les résultats. Je voudrai donc créer une macro qui me permettrai d'extraire automatiquement les données qui m'intéressent à chaque mise à jour du fichier Suivi_des_plans_actions et des le reporter automatiquement dans le fichier PA_SQE_MR.
    J'ai pensé tout d'abord à créer des liens hypertexte mais comme la mise à jour du fichier Suivi_des_plans_actions se fait par téléchargement l'ancien fichier est automatiquement écrasé. Les liens hypertexte ne fonctionnent donc plus. Cependant la configuration du document reste la même.
    J'ai donc créé cette macro sur un fichier excel à part, qui prend 2 exemples mais une erreur survient lors de son exécution.

    Code:
    Sub CopierDonnees()
    
    Dim Entree As Workbook, Sortie As Workbook
    
    Suivi_des_plans_actions.xls = Application.GetOpenFilename
    If Suivi_des_plans_actions.xls <> False Then
        Set Entree = Workbooks.Open(Suivi_des_plans_actions.xls)
    
        PA_SQE_MR.xls = Application.GetOpenFilename
        If PA_SQE_MR.xls <> False Then
            Set Sortie = Workbooks.Open(PA_SQE_MR.xls)
            
            Sortie.Worksheets("Feuil1").Range("F9") = Entree.Worksheets("Feuil1").Range("H9")
            Sortie.Worksheets("Feuil1").Range("J79") = Entree.Worksheets("Feuil1").Range("K79")
            Sortie.Close
        
        
        End If
        Entree.Close
    End If
    
    
    End Sub
    Pouvez-vous m'inquer le problème?
    merci d'avance

    -----
    Dernière modification par JPL ; 16/09/2014 à 16h37. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. Publicité
  3. #2
    frederic46000

    Re : création d'une macro sur Excel

    bonjour,
    Ton problème est simple enlève .xls dans ton nom de variable

    au lieu de Suivi_des_plans_actions.xls utilise Suivi_des_plans_actions ou plus simplement spa

    Nous informaticiens on préfère un dico en remarque qui explique le nom de variable



    Fais attention à ta variable PA_SQE_MR.xls simplifie la aussi en psm.

    et en entête de ton prog tu écris :
    rem spa=....
    rem psm=.....


    Il serait bon de prendre des cours de programmation en visual basic
    ce serait un gain de temps.

    Ce problème est expliquer dans les premières minutes de la première leçon.

    Fred.
    Dernière modification par frederic46000 ; 18/09/2014 à 14h37.
    Je sais que je ne sais rien. (SOCRATE)

  4. #3
    morgane1111

    Re : création d'une macro sur Excel

    Euh pour tout avouer je ne suis pas super forte en informatique et je l'avoue des cours me feraient pas de mal mais encore faut-il trouver où en prendre.
    Donc j'ai essayé de modifier mais ça fonctionne toujours pas.
    Je commence par ouvrir mon fichier "classeur 1" (celui dans lequel j'ai créé ma macro). J'exécute alors ma macro. Il me demande alors d'ouvrir un fichier donc j'ouvre le fichier PA_SQE_MR.
    Après il me demande d'ouvrir un autre fichier donc j'ouvre le fichier suivi_des_plans_dactions.
    et la message d'erreur:
    Erreur d'éxecution '9':
    L'indice n'appartient pas à la sélection.
    Code:
    Sub CopierDonnees()
    
    Dim Entree As Workbook, Sortie As Workbook
    
    Suivi_des_plans_dactions = Application.GetOpenFilename
    If Suivi_des_plans_dactions <> False Then
        Set Entree = Workbooks.Open(Suivi_des_plans_dactions)
    
        PA_SQE_MR = Application.GetOpenFilename
        If PA_SQE_MR <> False Then
            Set Sortie = Workbooks.Open(PA_SQE_MR)
            
            Sortie.Worksheets("Feuil1").Range("F9") = Entree.Worksheets("Feuil1").Range("H9")        
    Sortie.Worksheets("Feuil1").Range("J79") = Entree.Worksheets("Feuil1").Range("K79")
            Sortie.Close
        
        
        End If
        Entree.Close
    End If
    
    
    End Sub
    Dernière modification par JPL ; 19/09/2014 à 13h21. Motif: Ajout de la balise Code (#) pour garder l'indentation

  5. #4
    frederic46000

    Re : création d'une macro sur Excel

    bonjour Morgane,
    tu parles de cet ordre :
    "Je commence par ouvrir mon fichier "classeur 1" (celui dans lequel j'ai créé ma macro). J'exécute alors ma macro. Il me demande alors d'ouvrir un fichier donc j'ouvre le fichier PA_SQE_MR.
    Après il me demande d'ouvrir un autre fichier donc j'ouvre le fichier suivi_des_plans_dactions."

    et ton programme parle d'un ordre différent :
    Suivi_des_plans_dactions = Application.GetOpenFilename

    PA_SQE_MR = Application.GetOpenFilename

    pas logique !!!!

    bon.

    1er : Je donne des cours (réponds seulement si tu es intéressé pour l'instant).

    2ème : Réponds à ce message en joignant en pièce jointe ton fichier Suivi_des_plans_dactions

    Merci,
    Fred.
    Je sais que je ne sais rien. (SOCRATE)

  6. A voir en vidéo sur Futura
  7. #5
    morgane1111

    Re : création d'une macro sur Excel

    Oui je suis bien intéressée mais je viens du 57.
    Je ne peux pas envoyer le doc il est confidentiel à ma boite mais même en ouvrant le fichier suivi_des_plans_dactions avant celui PA_SQE_MR ça bloque au niveau de la ligne que j'ai mis en jaune dans le message précédent. (en bleu maintenant, le jaune étant illisible)
    En fait pour mieux comprendre voici le process que j'aimerai intégrer à ma macro:
    '1-ouvrir le fichier "suivi du plan d'action" et le fichier "PA_SQE_MR"
    '2-prendre le N° du 1er plan d'action dans le fichier "PA_SQE_MR",
    'puis le rechercher dans le fichier "suivi plan d'action"
    '3-si le N° du plan d'action est connu, prendre les données
    '% d'avancement et le % de retard et les mettre dans les cellules ds
    'la ligne du plan d'actions concernés dans le fichier "PA_SQE_MR"
    '4-passer au N° du plan d'action suivant..puis recommencer l'action jusqu'a ce que tout ces N° du plan d'actions soient "checkés"
    Dernière modification par JPL ; 19/09/2014 à 15h11.

  8. #6
    frederic46000

    Re : création d'une macro sur Excel

    bonsoir Morgane
    Ton problème semble être le nom feuil1 qui n'existe pas dans ton classeur.
    Est ce que les chemins de tes fichiers sont fixes cela évitera l'instruction Get.

    Peux tu simuler les deux tableaux sans mettre de données confidentielles ?
    exemple tableau 1
    A B C
    1 Numero libelle % avancement
    2 1 plan 1 10 %
    3

    tableau 2 :
    ...........


    Fred.
    Je sais que je ne sais rien. (SOCRATE)

  9. Publicité

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/08/2012, 13h59
  2. macro excel
    Par ELAU62 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 06/05/2011, 09h54
  3. macro excel
    Par alovesupreme dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 25/01/2009, 17h12
  4. macro Excel
    Par gwendoline dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 11/10/2008, 19h06
  5. Création de dossier à l'aide macro excel
    Par knecmotet dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 22/07/2004, 20h11
Découvrez nos comparatifs produits sur l'informatique et les technologies.