[VBA: Excel-Powerpoint] passage de variables

Karl Max -  
 nobo -
Bonjour!
(VBA Excel Powerpoint)Je cherche a faire un truc un peu compliqué, et je n'ai pas trouvé comment faire sur internet:

J'ai une feuille de calcul excel et une présentation powerpoint.
Je veux entrer des variables dans ma presentation, faire tourner la feuille de calcul, puis récuperer les résultats sur ma présentation. Ca serait simple si le fichier excel n'etait pas trop gros pour faire un collage spécial (trop lent)
Donc si quelqu 'un voit comment faire en VBA, ca m'interesse beaucoup!
Merci beaucoup
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. EBasta Messages postés 37 Statut Membre 31
     
    Bonjour,

    Le code VBA à placer dans PowerPoint serait de la forme :

    Sub ModifierFeuilleExcel()

    'Déclaration des variables
    Dim xlApplication As Object

    Set xlApplication = CreateObject("excel.application")

    With xlApplication
    .Workbooks.Open ("C:\Documents and Settings\Utilisateur\Bureau\test1.xls")
    .sheets("Feuil1").Cells(1, 1) = TextBox1.Value
    .Save
    .Quit
    End With

    End Sub

    J'espère avoir bien répondu.
    4
  2. Karl Max
     
    Bonjour Lupin A et irem 32
    Merci pour vos réponses. En effet, Lupin A, vous avez tout a fait compris mon probleme. J'ai essayé de taper un code VBA pour essayer de piloter Excel depuis le VB de powerpoint, mais il ne marche pas, vraissemblablement à cause d'une erreur de syntaxe (je ne suis pas tres familié avec ce genre de programmation)
    Pouriez vous me dire quel sont les grosses erreur qui vous saute aux yeux?
    Merci d'avance

    Sub ModifierFeuilleExcel()

    'Déclaration des variables
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel

    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\Utilisateur\Bureau\test1.xls")

    With wbExcel
    'copie de la Textbox de Powerpoint dans la feuille Excel active
    Feuil1.Range("A1:B2") = TextBox1.Text

    End With
    End Sub

    Merci d'avance!!
    2
  3. irem32
     
    Perso, je le ferais de la manière suivante :

    1°) Rentrer les param dans Powerpoint
    2°) D'une macro Powerpoint, instancier et lancer (dans le même répertoire) le bon fichier excel et indexer les bonnes valeurs
    3°) Lire ensuite les résultats toujours depuis Powerpoint pour mettre à jour la pres.

    Ca c'est uniquement si les formules sont réellement complexes ou s'appuie sur des données externes et nécessite vraiment excel, sinon transposer les formules excel en formules vba sous powerpoint, plus simple et plus rapide.

    Irem
    1
  4. Utilisateur anonyme
     
    Bonjour,

    autres exemple, votre code que je me suis permis de modifier :

    ' Déclaration de Types
    ' Déclaré vous un type personalisé
    '
    Type Presentation
    	Indice As Long
    	NomFichier As String
    	Parametres(3) As Long
    	Resultats(2) As Long
    End Type
    
    Public CePPT As Presentation
    
    Sub ModifierFeuilleExcel() 
    
        'Déclaration des variables
        ' Je recommande d'utiliser le type [ Variant ], en VBS
        ' (Visual Basic Scripting), les variables sont déclarés
        ' mais non typés puisque tous natifs en [ Variant ].
        ' Ainsi si le code demeure des objets VBS pur sous
        ' VBA, la transportabilité du code l'est sous toutes
        ' les composantes de Office ( Word, Excel, Acess, PowerPoint, ...)
        ' D'ou le choix de typé les objets en [ Variant ]
        Dim appExcel As Variant 'Application Excel 
        Dim wbExcel As Variant 'Classeur Excel 
        Dim wsExcel As Variant 'Feuille Excel 
    
        'En suposant que le fihier excel (*.xls) est au même endroit
        ' que le fichier powerpoint (*.ppt;*.pps), accéder au fichier
        ' de façon relative : 
        Dim NomFichier As String, Boucle As Long
    
        ' La valeur de la variable peut-être saisie n'importe
        ' quand depuis powerpoint(vba)
        CePPT.NomFichier = "Test.xls"
    
        NomFichier = ActivePresentation.FullName
        NomFichier = Left(varFichier, InStrRev(NomFichier, "\"))
        NomFichier = NomFichier & CePPT.NomFichier
    
        'Ouverture de l'application 
        Set appExcel = CreateObject("Excel.Application") 
        'Ouverture d'un fichier Excel 
        Set wbExcel = appExcel.Workbooks.Open(NomFichier) 
        ' Main mise sur la feuille 1
        Set xlWKS = wbExcel.Worksheets(1)
        ' Main mise sur l'adressage de la feuille
        Set xlRange = xlWKS.Range("A1:A65535")
    
        For Boucle = 1 To 3
            xlRange.Cells(1,i).Value = CePPT.Parametres(Boucle-1)
        Next Boucle
    
        For Boucle = 1 To 2
            CePPT.Resultats(Boucle-1) = xlRange.Cells(2,i).Value
        Next Boucle
    
    End Sub 
    '
    

    Lupin
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    Bonjour,

    En fait, sous VBA de powerpoint il vous est possible de piloter
    excel ou vice et versa bien sur, toute la suite bureautique est
    pilotable, j'ai essayé excel,access et word !

    Vous voulez donc cumuler des données saisies au cours de
    votre présentation et ouvrir excel au bon moment afin d'alimenter
    votre classeur et d'en récupérer les données "calculer/modifier".

    Ai-je bien compris votre besoin ?

    Lupin
    0
  7. Karl Max
     
    Ps: Message d'erreur:
    Proprieté ou methode non gérrée par cet objet
    0
  8. irem32
     
    ce devrait etre plutot

    With wbExcel
    'copie de la Textbox de Powerpoint dans la feuille Excel active
    'Feuil1.Range("A1:B2") = TextBox1.Text
    .Worksheets(1).Cells(1, 2).Value =TextBox1.text
    'par exemple
    End With

    Irem32
    0
  9. Karl Max
     
    Merci beaucoup pour vos reponses!!!

    J'ai finalement adopté la réponse de Ebasta :
    Sub ModifierFeuilleExcel()

    'Déclaration des variables
    Dim xlApplication As Object

    Set xlApplication = CreateObject("excel.application")

    With xlApplication
    .Workbooks.Open ("C:\Documents and Settings\Utilisateur\Bureau\test1.xls")
    .sheets("Feuil1").Cells(1, 1) = TextBox1.Value
    .Save
    .Quit
    End With

    End Sub

    Propre, efficace et élégant!
    merci aussi Irem32 pour votre correction.
    0
    1. nobo
       
      Bonjour,

      Je suis à la recherche de la même problématique décrite dans le code ci-dessus.

      J'essaie d'utiliser la procédure, mais lors de la compiltation un message d'erreur

      Type défini par l'utilisateur non défini.

      Merci de votre aide
      0