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

VBA PowerPoint Discussion :

QCM avec export vers Excel


Sujet :

VBA PowerPoint

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut QCM avec export vers Excel
    Bonjour à tous.

    Je découvre Powerpoint et le VBA depuis une semaine. Dur, Dur.
    Je veux développer un module de formation sous powerpoint à base de QCM avec export des résultats vers excel (nom, nombre de bonnes et mauvaises réponses) en gardant l'historique.
    J'ai déjà bien avancé avec l'aide des différentes discussions sur votre forum entre autre, et je vous en remercie.

    Première question: Je coince depuis plusieurs jours sur l'enregistrement automatique. Excel me demande de confirmer l'enregistrement, et cela je voudrais l'éviter. Auriez-vous une idée sur la modification du code?

    Deuxième question: je voudrais que les enregistrements se fassent sur la première cellule vide afin de garder les anciens enregistrements.

    Pourriez-vous me donner des pistes?

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour

    J'ai la flemme d'ouvrir les pj et ici, ce n'est peut-être pas indispensable.
    Citation Envoyé par ftpo69 Voir le message
    Première question: Je coince depuis plusieurs jours sur l'enregistrement automatique. Excel me demande de confirmer l'enregistrement, et cela je voudrais l'éviter. Auriez-vous une idée sur la modification du code?
    C'est étrange. Tu as écrit quoi ?

    Citation Envoyé par ftpo69 Voir le message
    Deuxième question: je voudrais que les enregistrements se fassent sur la première cellule vide afin de garder les anciens enregistrements.
    Tu as des propriétés comme UsedRange d'une feuille ou End d'un Range qui te permettent de savoir quelle est la dernière ligne renseignée. Tu peux aussi écrire les lignes dans un ordre décroissant. La dernière ligne doit être alors renseignée en haut. Il suffit pour cela d'insérer une ligne sur la ligne 1. La ligne 1 devient 2, tout est décalé et la ligne 1 est libre.

    Cordialement,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,
    Merci pour votre réponse. Je vais creuser cette idée.
    Je pensais que joindre un exemple serait mieux pour me faire comprendre.

    Pour l'enregistrement automatique sans ouverture de la boîte de confirmation d'enregistrement, j'ai trouvé cela sur un autre forum.
    Je vais essayer de comprendre et de l'adapter. C'est un bon moyen pour tenter de comprendre le VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.DisplayAlerts = False 'désactive les alertes Excel
    appxl.Workbooks(fichier_name).Close SaveChanges:=True
    Application.DisplayAlerts = True  'active les alertes Excel
    Si vous avez d'autres conseils, je suis preneur.

    Bonne soirée à tous.

    Cordialement

    ftpo69

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Pour t'en dire plus sur le premier pb, il faudrait avoir le code que tu as écrit et le message d'Excel.
    A mon avis, la solution que tu as trouvée est la dernière à mettre en oeuvre.
    Je pense que tu n'a pas un message qui demande la confirmation, mais un message qui demande s'il faut enregistrer le classeur. Et si c'est cela, c'est que tu as oublié une ligne de code pour l'enregistrer.

    Cordialement,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Le code pour l'enregistrement est le 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
    Sub import_values()
     
        ' Ouverture d'Excel
        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Set xlApp = CreateObject("Excel.Application")
     
        ' Ouverture du fichier Excel devant recevoir les informations
        ' Nom_Fichier est le nom complet de fichier avec son chemin C.....
        Set xlBook = xlApp.Workbooks.Open("G:\powerpoint\Statistiques.xls")
     
        xlApp.Sheets(1).Cells(1, 1) = nomParticipant
     
        xlApp.Quit
        Set xlApp = Nothing
     
     
    End Sub

    Cela marche, mais le message d'excel apparaît "Voulez-vous enregistrer les modifications que vous avez apportées à "Statistiques.xls"

    Cordialement et bon weekend

    ftpo69

  6. #6
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Peut être en enregistrant avant de fermer ? "xlBook.Save" :
    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
     
    Sub import_values()
     
        ' Ouverture d'Excel
        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Set xlApp = CreateObject("Excel.Application")
     
        ' Ouverture du fichier Excel devant recevoir les informations
        ' Nom_Fichier est le nom complet de fichier avec son chemin C.....
        Set xlBook = xlApp.Workbooks.Open("G:\powerpoint\Statistiques.xls")
     
        xlApp.Sheets(1).Cells(1, 1) = nomParticipant
     
        'enregistrement des modifs
        xlBook.Save
     
        xlApp.Quit
     
        Set xlApp = Nothing
     
    End Sub
    Hervé.

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    Avec l'aide de deux collègues, nous avons trouvé une solution avec ce code.

    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
    34
    35
    36
    37
    38
    Sub import_values()
     
    Dim texte_C1 As Variant
    texte_C1 = nomParticipant
     
    ' Ouverture d'Excel
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Set xlApp = CreateObject("Excel.Application")
     
    xlApp.Application.Visible = True
     
     
    ' Ouverture du fichier Excel devant recevoir les informations
    ' Nom_Fichier est le nom complet de fichier avec son chemin C.....
    Set xlBook = xlApp.Workbooks.Open("G:\powerpoint\Statistiques.xlsm")
     
    xlApp.Run "Statistiques.xlsm!Feuil1.Macro1"
     
    ' et enfin export des résultats dans le fixhier excel
    xlBook.Sheets(1).Cells(3, 1) = texte_C1
    xlBook.Sheets(1).Cells(3, 2) = Now
    xlBook.Sheets(1).Cells(3, 3) = bonPoint
    xlBook.Sheets(1).Cells(3, 4) = mauvaisPoint
     
    ' sauvegarde du fichier excel
    xlBook.Save
     
    ' fermeture du fichier et du processus excel
    xlBook.Close (SaveChanges = True)
     
    Set xlBook = Nothing
    xlApp.Application.Visible = True
    xlApp.Application.Quit
    xlApp.Quit
    Set xlApp = Nothing
     
    End Sub

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

Discussions similaires

  1. Requête multicritères avec listing et export vers excel
    Par pochagnole dans le forum VBA Access
    Réponses: 3
    Dernier message: 29/08/2008, 17h38
  2. Problem avec l'export vers excel 2003
    Par nico18987 dans le forum SharePoint
    Réponses: 4
    Dernier message: 26/04/2007, 17h57
  3. [Automation]export vers excel avec arborescence
    Par djo.alpha dans le forum Access
    Réponses: 5
    Dernier message: 20/04/2007, 10h55
  4. Réponses: 13
    Dernier message: 12/09/2006, 15h32
  5. Réponses: 5
    Dernier message: 25/04/2006, 17h04

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