[Excel 2003] Generer une presentation powerpoint en VB
Dernière réponse : dans Programmation
Bonjour a tous,
Pour mon premier message, je vous soumets une interrogation relativement specifique.
Tout d'abord veuillez excuser le manque d'accent dans mon message, je vous ecris d'un clavier britannique...
J'ai donc cree un systeme de tableurs excel et de Macro pour le besoin de mon equipe de travail.
Pour faire simple, un premier fichier excel fait office de fiche vierge. Sur cette fiche, les membres de mon equipe peuvent documenter leur travail, nous appellerons ces fiches "A".
Une fois cette fiche rempli, les informations qu'elle contient sont transfere dans un deuxieme fichier excel ( "B" ) qui reuni toute les informations, qui contient un lien pour chaque fiche et un numero de reference pour ces dernieres...
Jusqu'ici, je l'admet rien de bien sorcier !!
Le deuxieme fichier excel (celui qui contient toute les informations) est de plus utiliser pour generer une presentation PowerPoint qui sert de rapport.
Cette presentation powerpoint va donc contenir tel ou tel fiches A.
Ma macro debute donc par :
Variable que j'utilise evidement par la suite pour manipuler ma presentation...
Tout fonctionner correctement jusqu'a hier apres-midi ! Ce matin Excel me renvoie cette erreur
En me surlignant "PowerPoint.Application"...
Je suis donc alle faire un tour dans Tools -> References et essayais d'activer la librairie ppt9.0... Excel me renvoie l'erreur :
Je suis completement perdu, et tres frustre car tout fonctionner correctement pas plus tard qu'hier !!!
Merci d'avance,
Sozat
Pour mon premier message, je vous soumets une interrogation relativement specifique.
Tout d'abord veuillez excuser le manque d'accent dans mon message, je vous ecris d'un clavier britannique...
J'ai donc cree un systeme de tableurs excel et de Macro pour le besoin de mon equipe de travail.
Pour faire simple, un premier fichier excel fait office de fiche vierge. Sur cette fiche, les membres de mon equipe peuvent documenter leur travail, nous appellerons ces fiches "A".
Une fois cette fiche rempli, les informations qu'elle contient sont transfere dans un deuxieme fichier excel ( "B" ) qui reuni toute les informations, qui contient un lien pour chaque fiche et un numero de reference pour ces dernieres...
Jusqu'ici, je l'admet rien de bien sorcier !!
Le deuxieme fichier excel (celui qui contient toute les informations) est de plus utiliser pour generer une presentation PowerPoint qui sert de rapport.
Cette presentation powerpoint va donc contenir tel ou tel fiches A.
Ma macro debute donc par :
Private Sub CommandButton1_Click() ' Sets Variables for managing the PowerPoint Application Dim PPApp As PowerPoint.Application Dim PPPres As PowerPoint.Presentation Dim PPSlide As PowerPoint.Slide
Variable que j'utilise evidement par la suite pour manipuler ma presentation...
Tout fonctionner correctement jusqu'a hier apres-midi ! Ce matin Excel me renvoie cette erreur
Citation :
Compile Error : Can't find project or libraryEn me surlignant "PowerPoint.Application"...
Je suis donc alle faire un tour dans Tools -> References et essayais d'activer la librairie ppt9.0... Excel me renvoie l'erreur :
Citation :
Name conflicts with existing module, project or object libraryJe suis completement perdu, et tres frustre car tout fonctionner correctement pas plus tard qu'hier !!!
Merci d'avance,
Sozat
Autres pages sur : excel 2003 generer presentation powerpoint
Lassé par la pub ? Créez un compte
Desole pour ce message, je viens de trouver le probleme...
Pour information, mon equipe utilise soit Office 2000 soit Office 2003...
Lors du passage de l'un a l'autre les librairies de references change automatiquement, posant quelques soucis.
Je ne sais pas trop comment je vais resoudre le probleme, mais au moins j'ai le doigt dessus
Pour information, mon equipe utilise soit Office 2000 soit Office 2003...
Lors du passage de l'un a l'autre les librairies de references change automatiquement, posant quelques soucis.
Je ne sais pas trop comment je vais resoudre le probleme, mais au moins j'ai le doigt dessus
Bonjour,
(J'ai remplacé
Voici une solution pour éviter les conflits.
Ton code, élégant :
Ma proposition, moche :
Cela te convient-il ?
A creuser : l'objet VBProject.References.
(J'ai remplacé
Citation :
par [CODE]) dans ton premier message. Merci de respecter ce point de règlement à l'avenir)Voici une solution pour éviter les conflits.
Ton code, élégant :
Private Sub CommandButton1_Click() ' // Sets Variables for managing the PowerPoint Application Dim PPApp As PowerPoint.Application [..] Set PPApp = CreateObject("PowerPoint.Application") Set PPApp = GetObject("PowerPoint.Application")
Ma proposition, moche :
Private Sub CommandButton1_Click() ' // Sets Variables for managing the PowerPoint Application Dim PPApp As Object [..] Set PPApp = CreateObject("PowerPoint.Application") Set PPApp = GetObject("PowerPoint.Application")
Cela te convient-il ?
A creuser : l'objet VBProject.References.
Après creusage, TADAAAAAA !
Voilà LA solution, ZE soluce comme disent ceux qui ont un clavier sans accent.
Et voici de quoi référencer vos applications préférées :
Voilà LA solution, ZE soluce comme disent ceux qui ont un clavier sans accent.
Public Sub AddReference(class As String, file As String) Dim ref As Object Dim app As Object Dim fic As String ' // Efface les références non valides For Each ref In VBProject.References If ref.IsBroken Then VBProject.References.Remove ref End If Next ' // On recherche une appli. On Error Resume Next Set app = CreateObject(class) On Error GoTo 0 If app Is Nothing Then Exit Sub fic = app.Path & "\" & Dir(app.Path & "\" & file) Debug.Print "Ref: " & fic ' // Vérification ultime For Each ref In VBProject.References If UCase(ref.fullpath) = UCase(fic) Then Debug.Print "Ref. déjà présente." Exit Sub End If Next ' // Ajout de la Référence Debug.Print "Ajout de la Référence." VBProject.References.AddFromFile fic ' // MrProper Set ref = Nothing Set app = Nothing End Sub
Et voici de quoi référencer vos applications préférées :
Private Sub AddReferenceToPowerPoint() AddReference "PowerPoint.Application", "MSPPT*.OLB" End Sub Private Sub AddReferenceToWord() AddReference "MSWord.Application", "MSWORD*.OLB" End Sub
Citation :
je vous raconte comment ca s'est passe
)Ouhais, c'est cool quand quelqu'un ne se contente pas de juste prendre la solution, mais qu'il donne son avis, complète, ajuste, critique (objectivement), et donc améliore ce qui est proposé. Pourtant et c'est rare, j'ai écrit LA soluce comme s'il n'y en avait qu'une. Ne pas en tenir compte si on peut l'améliorer
C'est re-moi
Bon, j'ai quelque difficulte a faire fonctionner le code.
Je pense que cela est du a mes pauvres connaissances (apprise sur le tas) de VBA...
Dans le premier cadre de code "class" doit il bien est remplacer par "PowerPoint.Application" et "file" par "MSPPT*.OLB" ??
De plus, je suis oblige d'inserer "ThisWorkbook." devant VBproject pour que visual basic me compile mon code...
Finalement, je n'ai pas bien compris comment utiliser le deuxieme cadre de code
Ah oui, et concernant la premiere reponse, ta proposition moche, zeb, me renvoie une erreur tout de meme car excel ne reconnait pas le "PowerPoint.Application" qui suit (ligne 7)...
Bon, je repars dans mon code...
Bon, j'ai quelque difficulte a faire fonctionner le code.
Je pense que cela est du a mes pauvres connaissances (apprise sur le tas) de VBA...
Dans le premier cadre de code "class" doit il bien est remplacer par "PowerPoint.Application" et "file" par "MSPPT*.OLB" ??
De plus, je suis oblige d'inserer "ThisWorkbook." devant VBproject pour que visual basic me compile mon code...
Finalement, je n'ai pas bien compris comment utiliser le deuxieme cadre de code
Ah oui, et concernant la premiere reponse, ta proposition moche, zeb, me renvoie une erreur tout de meme car excel ne reconnait pas le "PowerPoint.Application" qui suit (ligne 7)...
Bon, je repars dans mon code...
Pour le code moche, oublions, il est trop moche.
Le premier cadre est une procédure générique, on n'y remplace rien par rien, on ne touche pas.
Le second cadre donne des exemples de l'utilisation de cette procédure.
Donc, il faut copier
Là où on en a besoin, on l'appelle comme dans les exemples AddReferenceToPowerPoint.
Donc :
(J'ai corrigé les deux ou trois erreurs de mon code précédent
)
Comme c'est un truc qu'on n'a besoin de faire qu'une seule fois, je te conseille plutôt de ne pas le mettre dans CommandButton1_Click de ta feuille, mais plutôt dans le Workbook_Open de ThisWorkbook:
Le premier cadre est une procédure générique, on n'y remplace rien par rien, on ne touche pas.
Le second cadre donne des exemples de l'utilisation de cette procédure.
Donc, il faut copier
dans le code de ThisWorkbook, comme ça, pas besoin d'y modifier quoi que ce soit.
Public Sub AddReference(class As String, file As String) ..
Là où on en a besoin, on l'appelle comme dans les exemples AddReferenceToPowerPoint.
Donc :
Private Sub CommandButton1_Click() AddReference "PowerPoint.Application", "MSPPT*.OLB" .. End Sub
(J'ai corrigé les deux ou trois erreurs de mon code précédent
)Comme c'est un truc qu'on n'a besoin de faire qu'une seule fois, je te conseille plutôt de ne pas le mettre dans CommandButton1_Click de ta feuille, mais plutôt dans le Workbook_Open de ThisWorkbook:
Private Sub Workbook_Open() AddReference "PowerPoint.Application", "MSPPT*.OLB" End Sub
De deux chose l'une...
Avec Office 2000, quand la librairie est deja charge... le code ne reconnait pas que cette derniere est chargee et renvoie donc une erreur comme quoi il ne peut pas la recharger (normale me direz vous, mais genant quand meme lol)...
Avec 2003... excel me renvoie un probleme de securite et je n'arrive pas a baisser le niveau de secu d'Office sur l'ordinateur en question. Pas que je ne sache pas comment faire : Tools -> macro -> securite... l'option n'est juste pas sauvegarde :S
Merci neanmoins pour le dernier message qui m'a permis de comprendre beaucoup mieux ce qui se passe lol
Je continue evidemment mes recherches...
Avec Office 2000, quand la librairie est deja charge... le code ne reconnait pas que cette derniere est chargee et renvoie donc une erreur comme quoi il ne peut pas la recharger (normale me direz vous, mais genant quand meme lol)...
Avec 2003... excel me renvoie un probleme de securite et je n'arrive pas a baisser le niveau de secu d'Office sur l'ordinateur en question. Pas que je ne sache pas comment faire : Tools -> macro -> securite... l'option n'est juste pas sauvegarde :S
Merci neanmoins pour le dernier message qui m'a permis de comprendre beaucoup mieux ce qui se passe lol
Je continue evidemment mes recherches...
Bonjour a tous,
J'ai regle mon soucis sous Office 2000.
Pour info, la boucle conditionnel if verifiant la presence ou non de la librairie voulu ne fonctionnait pas car l'adresse recherchait (dans mon cas) se terminait par MSPPT9.OLB alors que l'adresse exacte se termine par msppt9.olb. Apparement, par defaut, la comparaison de texte sous office est case-sensitive. La solution est assez simple, une ligne de code a inserer avant tout eventuel sub :
Il s'agit d'une declaration VBA basique...
Mon probleme est maintenant regle,
Merci Zeb pour ta precieuse aide !!
J'ai regle mon soucis sous Office 2000.
Pour info, la boucle conditionnel if verifiant la presence ou non de la librairie voulu ne fonctionnait pas car l'adresse recherchait (dans mon cas) se terminait par MSPPT9.OLB alors que l'adresse exacte se termine par msppt9.olb. Apparement, par defaut, la comparaison de texte sous office est case-sensitive. La solution est assez simple, une ligne de code a inserer avant tout eventuel sub :
Option compare Text
Il s'agit d'une declaration VBA basique...
Mon probleme est maintenant regle,
Merci Zeb pour ta precieuse aide !!
Je modifie mon code en conséquence (Ligne 24, ajout des UCase) pour qu'il serve à d'autres.
EDIT: Et je le mets dans les Tips !
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumIncruster une video en vignette dans une presentation powerpoint
- ForumComment transformer une presentation powerpoint en avi haute qualite
- ForumPoi peutil generer des fichiers lisible ac excel 2003
- ForumPresentation powerpoint sur la loi dadvsi help
- ForumDiaporama powerpoint 2003
- ForumMettre du son sous powerpoint 2003
- ForumFree powerpoint presentation
- ForumVba powerpoint 2003
- ForumPlus de son avec powerpoint 2003 mci
- ForumPowerpoint 2003 son
- Voir plus