Actualisation qui lance des Macros sous Excel
Paehon
-
Utilisateur anonyme -
Utilisateur anonyme -
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 !!
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:
- Actualisation qui lance des Macros sous Excel
- Liste déroulante excel - Guide
- Qu'est ce qui se lance au démarrage de l'ordinateur - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
3 réponses
Bonjour,
Suggestion :
À placer dans un module :
À placer derrière la feuille à actualiser
À placer dans ThisWorkbook
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
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
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.
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.
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.
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
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