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

Macros et VBA Excel Discussion :

Paramètres en VBA [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut Paramètres en VBA
    Bonjour,

    Voici un exemple (ma question) avec ces macros (Excel 2007)
    J'aimerai récupérer par le pgm appelant la valeur modifiée du paramètre par le pgm appelé
    C'est à dire que numbeeps ait la valeur 7 dans Message (msg1)

    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
    Private numbeeps As Integer
     
    Sub Main()
    numbeeps = 5
    Multibeep (numbeeps)
    Message
    End Sub
     
    Sub Multibeep(numbeeps)
    For counter = 1 To numbeeps
    Beep
    Next counter
    numbeeps = 7
    Message
    End Sub
     
    Sub Message()
    msg1 = numbeeps
    msg2 = " = valeur de numbeeps"
    MsgBox msg1 & " " & msg2
    End Sub
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour ,
    Il y a deux façon de voir les chose!

    Passer la variable par référence pour modifier la valeur de l'appelant!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Multibeep(Byref numbeeps)
    For counter = 1 To numbeeps
    Beep
    Next counter
    numbeeps = 7
    Message
    End Sub
    Soit pas un faisant une fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function Multibeep(numbeeps)
    For counter = 1 To numbeeps
    Beep
    Next counter
    Multibeep = 7
    Message
    End function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Main()
    numbeeps = Multibeep (5)
    Message
    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut Paramètres excel vers PWP et retour
    Bonjour dysorthographie,

    Merci, ça marche avec ByRef MAIS, je voudrais récupérer un paramètre de PWP (appelé) dans EXCEL (appelant) et ...problèmes

    J'ai adapté ta solution aux appels macro, mais KO

    Pgm appelant (EXCEL)
    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
    42
    43
    44
    45
    46
    47
    'Valcel contient le nom du slide de PWP à afficher
     
    Public valcel As String
    Public ouvfer As String
     
     
    Sub Automate1()
    Dim PPTApp As Object
    Dim oPPTApp As PowerPoint.Application
    valcel = ActiveCell.Value
     
    If (ouvfer = Null) Or (ouvfer = "") Then
    ouvfer = "FER"
    End If
     
    If (valcel = Null) Or (valcel = "") Then
      MsgBox "Saisir une zone de recherche"
    Else
    Set oPPTApp = New PowerPoint.Application
     
    With oPPTApp
     .Visible = True
      Set PwpVBA = .Presentations.Open("c:\Users\SERGE\Desktop\VBA\PwpVBA.pptm")
        oPPTApp.Run "'" & PwpVBA.Name & "'!Module1.Visu01", valcel, ouvfer
     
     
    End With
    Affichage1 valcel, ouvfer
    End If
     
     'Et on quitte PowerPoint proprement :
    ' oPPTApp.Quit
    On Error GoTo Suite
    Suite:
    If (ouvfer = "OUV") Then
    oPPTApp.Quit
    ouvfer = "FER"
    End If
     
    End Sub
     
    'Affichage des valeurs
    Sub Affichage1(ByRef valcel As String, ByRef ouvfer As String)
    MsgBox " EXCEL Valcel value = " & valcel & vbCrLf & "ouvfer value = " & ouvfer
     
     
    End Sub
    PGM appelé dans PWP
    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
    42
    43
    44
    45
    46
    47
    48
    Sub Visu01(ByRef valcel As String, ByRef ouvfer As String)
     
    ' Affichage d'une Diapo avec son nom (demande depuis fichier excel)
     
    On Error GoTo Sortieerreur
    'MsgBox xvalcel, xouvfer
    'If (Xouvfer = "OUV") Then
    'oPPTapp.Quit
    'MaPresentation.Close
    'Xouvfer = "FER"
    'End If
     
    Dim objSld As Slide
     
      Dim oPPTapp As PowerPoint.Application
      Dim MaPresentation As PowerPoint.Presentation
             Set oPPTapp = CreateObject("PowerPoint.Application")
             oPPTapp.Visible = True
     
            Set MaPresentation = oPPTapp.Presentations.Open(FileName:="C:\Users\SERGE\Desktop\VBA\PwpVBA.pptm")
        'Sélectionne la diapo paramètrée
     
        MaPresentation.Slides(valcel).Select
        ouvfer = "OUV"
        Affichage valcel, ouvfer
     
     Exit Sub
     
    Sortieerreur:
    ' Diapo non trouvée
    MaPresentation.Slides("PRESENTATION").Select
    msg1 = valcel
    msg2 = "Diapo non trouvée"
    MsgBox msg1 & " " & msg2
     
    ouvfer = "OUV"
    ' Et on quitte PowerPoint proprement :
    'appPowerPoint.Quit
    'MaPresentation.Close
     
    End Sub
     
     
    Sub Affichage(ByRef valcel As String, ByRef ouvfer As String)
    MsgBox "POWER POINT Valcel value = " & valcel & vbCrLf & "ouvfer value = " & ouvfer
     
     
    End Sub

    Affichage dans PWP ouvfer = '"OUV"
    Affichage1 dans EXCEL ouvfer = "FER"

    Merci
    Je débute en VBA, je cherche beaucoup, mais au bout d'un moment.....HELP!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    • Eviter les Exit Sub. VBA permet cette abominable syntaxe, mais ce n'est pas une raison pour l'employer... Voici une construction plus propre qui te permet de n'avoir qu'une sortie de procédure ou de fonction, et qui donc va permettre de sortir proprement;
    • Si tu as un code Excel et un code PowerPoint, c'est peine perdue de vouloir utiliser une variable de l'un dans l'autre.




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub GestionErreur()
      On Error GoTo EndHandler
     
      ...
      ...
      ...
     
    EndHandler:
      If Err <> 0 Then
       ...
       ...
      End If
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut Paramètres excel vers PWP et retour
    Bonsoir,

    Merci, c'est dommage de ne pas pouvoir passer un paramètre et retour entre EXCEL et POWER POINT
    Pour le EXIT SUB je suis d'accord
    J'avais mis cela pour aller vite et essayer de traiter le Pb (paramètre) en premier
    Je vais corriger

    Merci encore...je reviendrai

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Peux-tu expliquer ce que tu cherches à réaliser?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Par défaut Parametres VBA EXCEL POWER POINT
    Bonjour,

    Je gère (avec des amis) une association (voyages)
    Les adhérents sont sur EXCEL avec toutes leurs coordonnées (N°, Noms, Adresses, etc...)
    ...et sur POWER POINT avec leurs photos, passeports, et autres...
    J'ai "nommé" par procédure VBA chaque slide de PPT avec le n° d'adhérent (200 personnes actuellement)
    Je peux "brasser" Excel ou PPT, l'accès au slide depuis excel fonctionne toujours
    MAIS
    l'application PPT reste toujours ouverte ET la présentation (slide) aussi
    je me retrouve avec x PPT ouverts (autant que d'accès de recherche)
    DONC
    Je voudrais fermer au moins la dernière présentation (ou PPT complet) pour respirer
    C'est pour cela que j'essaie de passer un paramètre de PPT à EXCEL (ouvert/fermé)
    pour fermer PPT si besoin
    Est-ce possible?
    Je débute en VBA
    Je suis un ancien informaticien (retraité maintenant)
    j'ai beaucoup développé su AS400 (écrans, Pgm (GAP), CLP, procédures, etc...)
    Je ne suis pas trop dépaysé
    Merci

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

Discussions similaires

  1. Requête sql paramétrée en VBA
    Par loustic-31 dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/12/2008, 19h30
  2. Requête paramétrée depuis VBA
    Par efvsql dans le forum Microsoft BI
    Réponses: 0
    Dernier message: 25/08/2008, 20h24
  3. Requete paramétrée en VBA
    Par at_first dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 06/12/2006, 22h49
  4. Requete paramètrée en VBA
    Par zebi42 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/12/2006, 22h27
  5. Requete paramétré sans VBA
    Par Alpha31 dans le forum Access
    Réponses: 1
    Dernier message: 06/06/2006, 00h41

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