Actualisation qui lance des Macros sous Excel

Fermé
Paehon - Modifié par Paehon le 28/04/2011 à 16:01
 Utilisateur anonyme - 29 avril 2011 à 13:20
Bonjour tout le monde !!

Je suis actuellement en train de réaliser un tableau excel qui se met à jour en récupérant des données sur une base mysql.

Je ne serai pas l'utilisateur final de l'application c'est pourquoi je veux la faciliter au maximum.


Bon, trêve de racontage de vie, je vous pose mon problème :


J'ai créé plusieurs macros avec Visual Basic afin de modifier les cellules récupérées (par exemple remplacer un booléen par une valeur string).

J'aimerais que quand l'utilisateur lancera l'actualisation en faisant un clic droit > Actualisation, ces macros se lancent également.

Je n'ai pas trouvé de solutions après de nombreuses recherches, c'est pourquoi je me tourne vers vous.



Merci beaucoup !!
A voir également:

3 réponses

Utilisateur anonyme
28 avril 2011 à 19:46
Bonjour,

Suggestion :

À placer dans un module :
Option Explicit
'

Public Compteur As Long

Sub Procedure()

    MsgBox "Lupin"

End Sub
'


À placer derrière la feuille à actualiser

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Compteur = (Compteur + 1)
    If (Compteur < 2) Then
        Call Module1.Procedure
    End If
    Application.EnableEvents = True
End Sub
'


À placer dans ThisWorkbook

Option Explicit

Private Sub Workbook_Open()
    Compteur = 0
End Sub
'


Cette méthode n'est pas parfaite car on ne sait d'avance le nombre
de cellules qui seront modifiés par l'actualisation.

Il serait plus simple d'ajouter une option dans le menu [ Données ],
[ MiseAJour après actualisation ].

Savez-vous comment ajouter un appel à une procédure dans le menu?

Cdt

Lupin
0
Salut Lupin,

d'abord merci de ta réponse.


Mais que veux-tu dire par rajouter une options dans le menu données > Mise à jour après actualisation ?

Je suis sur Office 2007 et je ne vois rien qui correspondrait à ça.
0
re:

Malheureusement, je suis sous Office 2003, je ne connais pas la syntaxe
correcte pour Office 2007, mais voici un exemple fonctionnel sous 2003,
dont tu pourra t'inspirer.

Option Explicit 
Option Private Module 
' 

Function InstallMonMenu() As Boolean 
' 
Dim Texte As String 
Dim i As Integer 
Dim Flag As Boolean 
Dim BarreMenu, MaBarre, MonItem As Object 

On Error GoTo Err_Barre 

    Flag = EnleveMonMenu 
    Flag = False 
     
    'Création de la barre de menu 
    Set BarreMenu = Application.CommandBars.ActiveMenuBar 
    Set MaBarre = BarreMenu.Controls.Add(Type:=msoControlPopup, temporary:=True) 
     
    MaBarre.Caption = "Système" 
     
    'Insère menu 
    Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) 
    With MonItem 
        .Caption = "Modifier BDR" 
        .OnAction = "Modification" 
        .FaceId = 71 
    End With 
         
    Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) 
    With MonItem 
        .Caption = "Conception" 
        .OnAction = "AfficheConception" 
        .FaceId = 521 
    End With 
     
    InstallMonMenu = True 
     
Exit_Barre: 
    Exit Function 
     
Err_Barre: 
    InstallMonMenu = False 
    Texte = "Erreur dans la routine AjoutBarreMenu" 
    Texte = Texte & vbCrLf & Err.Number 
    Texte = Texte & vbCrLf & Err.Description 
    'MsgBox Texte 
    Resume Exit_Barre 
     
End Function 
' 

Function EnleveMonMenu() As Boolean 

    Dim Texte As String 
    Dim Barre As CommandBarControl 
         
    For Each Barre In Application.CommandBars.ActiveMenuBar.Controls 
        If (Barre.Caption = "Système") Then 
            Barre.Delete 
        End If 
    Next Barre 
    EnleveMonMenu = True 

Exit_Close: 
    Exit Function 

Err_Close: 
    Texte = "Erreur dans la routine EnleveMonMenu du classeur Configuration.xls!" 
    Texte = Texte & vbCrLf & Err.Number & " - " & Err.Description 
    'MsgBox Texte 
    EnleveMonMenu = False 

End Function 
' 


Ce code permet l'ajout d'un nouveau menu sous Excel. Tu pourras
aussi t'inspirer d'un classeur de mon cru que tu peux télécharger
ici : https://www.excel-downloads.com/resources/categories/utilitaires.18/

Recherche le fichier compressé [ VizioXLA ].

Regarde les modules [ ScanListeMenu ] et [ ScanListeSousMenu ].

Cdt

Lupin
0