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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    mars 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 343
    Points : 61
    Points
    61

    Par défaut Creation Sommaire par VBA

    Bonjour a tous,

    J'ai une présentation ppt dont chacune des slides comporte un titre du type : Module principal - sous module.

    Par exemple voici les titres de mes premières slides:

    Début de Journée (slide 2)
    Gestion des échantillons - Echantillons sans code à barres (slide 3)
    Gestion des échantillons - Echantillons code à barrés (slide 4)
    Gestion des échantillons - Démarrer les analyses (slide 5)
    Gestion des échantillons - Valider les résultats (slide 6)
    Rapport - Edition/Export des rapports journaliers (slide 7)
    Rapport - Interrogation/Renvoi vers LIMS (slide 8)


    Je souhaiterai créer un code vba pour pouvoir créer à la voléé un menu de ce type:
    Début de Journée ................................................................ 2
    Gestion des échantillons ....................................................... 3
    Echantillons sans code à barres ........................................ 3
    Echantillons code à barrés ............................................... 4
    Démarrer les analyses .................................................... 5
    Valider les résultats ....................................................... 6
    Rapport ............................................................................. 7
    Edition/Export des rapports journaliers ............................ 7
    Interrogation/Renvoi vers LIMS ....................................... 8

    mais je ne vois pas trop comment m'y prendre. quelqu'un pourrait m'aider?

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    mars 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 343
    Points : 61
    Points
    61

    Par défaut

    cela n'a pas l'air de vous inspirer lol

    Personne n'a été confronté à ce besoin?

    Je pourrai me palucher le sommaire à la main mais quand on a plus de 80 slides.... on cherche le plus simple, surtout que cela resservir pour d'autre ppt.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 154
    Points : 29 575
    Points
    29 575

    Par défaut

    Salut,

    c'est effectivement plutôt peu commun comme demande, vu que le sommaire n'est pas une possibilité native de PPT (par opposition à Word).

    Tu peux faire une boucle sur chacune de tes slides, et de lire le contenu de la zone de texte qui contient ton titre...

    Mais encore une fois, pourquoi diable vouloir faire un sommaire d'un PPT
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    mars 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 343
    Points : 61
    Points
    61

    Par défaut

    Bonjour

    Merci de te pencher sur mon problème.

    Pourquoi PowerPoint plutôt que Word?

    - Disons que c'est historique dans ma boite et qu'ils n'aiment pas le changement.
    - PowerPoint est plus souple pour créer des manuels avec des illustrations ect....
    - ce document sert à la fois de support de présentation mais également de manuel imprimé.

    Pour faire une boucle est recupérer tous les titres, ce n'est pas un souci, j'y arrive sans problème.

    Ma problèmatique se pose plus sur la mise en page de ce sommaire:

    - recupération que de certaines partie du titre (catégories ou ss catégories)
    - ajout des numéros de pages en bout de ligne
    - que les numéros de page prennent en compte l'ajout des 1 ou 2 pages de sommaire (sinon cela decalle tout of course)

    Donc en gros, pas si simple que cela. D'ou mon appel à l'aide lol

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 154
    Points : 29 575
    Points
    29 575

    Par défaut

    Tu peux très bien faire la partie en 3 etapes :
    -listage des toutes tes pages
    -insertion en premieres pages de ton sommaire
    -détermination des numéros de pages une fois l'insertion effectuée.

    L'algorithme pour déterminer partie sous partie c'Est jamais que du split et de l'analyse de chaines de caractères
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    mars 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 343
    Points : 61
    Points
    61

    Par défaut

    Salut

    merci pour ces pistes.

    Penses que je vais suivre tes conseils et procéder ainsi:

    - listage de toutes les pages dans un tableau
    - en fonction du nombre de page, insertion des pages de sommaire
    - puis recupération des numéros de pages dans mon tableau
    - enfin manipulation des chaines de caractères pour récupérer les éléments qui m’intéressent les titres.

    Par contre, un point qui me semble compliquer (pas sûr que ce soit faible). Comment pour chaque ligne de mon sommaire avoir le numéro de page tout à droite et bien aligné (comme dans un sommaire Word). Car si j'utilise la concaténation cela ne va pas être top comme les titres n'auront pas tous la même taille.

    Y a t-il un moyen de contourner ce problème?

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 154
    Points : 29 575
    Points
    29 575

    Par défaut

    Salut,

    si tu as déjà fait tout le reste de ton cheminement, on s'occupera en temps voulu de cet aspect
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    mars 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 343
    Points : 61
    Points
    61

    Par défaut

    j'essaye de pondre quelque chose d'ici lundi prochain ;-)

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    mars 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 343
    Points : 61
    Points
    61

    Par défaut

    Salut

    Bon j'ai essayé d'avancer sur mon problème mais le vba n'est pas mon fort...

    Pour l'instant je suis partir là dessus

    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
    39
    40
    41
     
    Sub SommaireTest()
     
    Dim i As Integer
    i = ActivePresentation.Slides.Count
     
    ' a faire
    ' en fonction du nombre de slide, creer X slide pour le sommaire
     
     
     
    ' Crée un tableau pour recuperer les titres (a faire: ajouter X slide + decomptage nbr slide)
     
    Dim Title() As String
     
     
    ' remplir le tableau des titre
    Dim c As String
    c = ""
    For y = 2 To i
    Set Diapo = ActivePresentation.Slides(y)
    Dim a As Integer
    Dim b As Integer
    a = InStr(Diapo.Shapes.Title.TextFrame.TextRange.Text, "-")
    b = Len(Diapo.Shapes.Title.TextFrame.TextRange.Text)
    If a = 0 Then
    ReDim Preserve Title(0 To y)
    Title(y) = Diapo.Shapes.Title.TextFrame.TextRange.Text
    Else
    If c = Left(Diapo.Shapes.Title.TextFrame.TextRange.Text, a) Then
    Title(y) = Left(Diapo.Shapes.Title.TextFrame.TextRange.Text, a)
    ReDim Preserve Title(0 To y + 1)
    y = y + 1
    Title(y) = Right(Diapo.Shapes.Title.TextFrame.TextRange.Text, b - a)
    Else
    Title(y) = Left(Diapo.Shapes.Title.TextFrame.TextRange.Text, a)
    c = Left(Diapo.Shapes.Title.TextFrame.TextRange.Text, a)
    End If
     
    End If
    Next
    ca ne fonctionne pas comme je le voudrai car ça plante lorsque l'essaye de redimensionner le tableau... En effet, a chaque nouveau titre, je dois rajouter une ligne supplémentaire.
    Par exemple, en reprenant mon exemple:

    Début de Journée (slide 2)
    Gestion des échantillons - Echantillons sans code à barres (slide 3)
    Gestion des échantillons - Echantillons code à barrés (slide 4)
    Gestion des échantillons - Démarrer les analyses (slide 5)
    Gestion des échantillons - Valider les résultats (slide 6)
    Rapport - Edition/Export des rapports journaliers (slide 7)
    Rapport - Interrogation/Renvoi vers LIMS (slide 8)


    Je veux arriver à cela (si on met de côté pour l'instant les numéros de slides):
    Début de Journée ................................................................ 2
    Gestion des échantillons ....................................................... 3
    Echantillons sans code à barres ........................................ 3
    Echantillons code à barrés ............................................... 4
    Démarrer les analyses .................................................... 5
    Valider les résultats ....................................................... 6
    Rapport ............................................................................. 7
    Edition/Export des rapports journaliers ............................ 7
    Interrogation/Renvoi vers LIMS ....................................... 8

    Mais cela plante à l'ajout de "Gestion des échantillons" avec l'erreur d’exécution 9 (l'indice n'appartient pas à la sélection)....

    Je comprends le problème mais je n'arrive pas le contourner...

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 154
    Points : 29 575
    Points
    29 575

    Par défaut

    Salut,

    Puis-je te recommander de passer par une Collection au lieu de ton Array avec tes redim preserve ?
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    mars 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2006
    Messages : 343
    Points : 61
    Points
    61

    Par défaut

    Salut

    Merci pour ta suggestion. Je ne connais pas les collections. Quels sont les differences par rapport aux Array?

Discussions similaires

  1. Creation classeur partagé par vba
    Par AgnesK dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/11/2010, 17h57
  2. Réponses: 8
    Dernier message: 05/03/2007, 16h56
  3. Mettre une image sur bouton par VBA????
    Par electrosat03 dans le forum IHM
    Réponses: 3
    Dernier message: 17/02/2006, 02h54
  4. Faire une MAJ de recordsetclone par VBA.
    Par electrosat03 dans le forum Access
    Réponses: 4
    Dernier message: 03/02/2006, 18h42
  5. Imprimer des selections excel en pdf par VBA
    Par ouellet5 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/12/2005, 18h29

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