OVH Cloud OVH Cloud

ShowDataForm après un Form perso

2 réponses
Avatar
Thierry
Bonjour,

J'utilise un form avec une combo bas=E9 sur des cellules.

Je souhaite dans le cas du choix 2 fermer mon form et=20
afficher le formulaire de saisie Excel (ShowDataForm) Mais=20
j'ai l'erreur:
Erreur d'ex=E9cution: 1004
La m=E9thode ShowDataForm de la classe Worksheet a =E9chou=E9

J'ai ce code:
Sub ListChoix()
Sheets("Gestion").Activate
Select Case Range("B1")
Case 1
Sheets("Accueil").Activate
Case 2
Sheets("CtrlMenu").Hide
Sheets("Module").Activate
Range("A2").Select
ActiveSheet.ShowDataForm
Sheets("Accueil").Select
Case 3
Sheets("Module").Activate
Range("A1").Select
Case 4
Sheets("Module").Activate
Range("A1").Select
End Select
End Sub
Sub Menu()
Set wsr =3D ActiveSheet
Sheets("Gestion").Select
Range("B1") =3D "0"
wsr.Select
Sheets("CtrlMenu").Show
End Sub

En fait il faudrait que j'arrive =E0 faire un Cancel sur mon=20
form de gestion, mais comment?

Amicalement
Thierry

2 réponses

Avatar
MichDenis
Bonjour Thierry,


Voici une façon de faire tiré de l'excellent bouquin mentionné dans la procédure :

Modifie le Case 2 comme ceci :

Case 2
Sheets("CtrlMenu").Hide
Sheets("Module").Activate
'Tu dois d'abord sélectionner la feuille contenant les données
Sheets("MesDonnées").select
RunMenu 860 'Appel Procédure de John Green
Range("A2").Select
ActiveSheet.ShowDataForm
Sheets("Accueil").Select

'------------------------------------------------
Sub RunMenu(iMenuID As Long)
'Proposed By John Green and Stephen Bullen
'Book : Excel 2003 VBA Programmer's Reference
' *****************************************************
' * Function Name: RunMenu
' *
' * Input/Output: iMenuID - The control ID of the menu item to be run.
' *
' * Purpose: Runs a specified menu item, simulating clicking on it.
' *
' *****************************************************
Dim oCtrl As CommandBarButton
'Ignore any errors (such as the menu ID not valid).
On Error Resume Next
'Create our own temporary commandbar to hold the control.
With Application.CommandBars.Add
' Add the control and execute it.
.Controls.Add(ID:=iMenuID).Execute
' Then delete our temporary menu bar.
.Delete
End With
End Sub
'------------------------------------------------


Salutations!





"Thierry" a écrit dans le message de news:
19ce01c50f99$29b0c230$
Bonjour,

J'utilise un form avec une combo basé sur des cellules.

Je souhaite dans le cas du choix 2 fermer mon form et
afficher le formulaire de saisie Excel (ShowDataForm) Mais
j'ai l'erreur:
Erreur d'exécution: 1004
La méthode ShowDataForm de la classe Worksheet a échoué

J'ai ce code:
Sub ListChoix()
Sheets("Gestion").Activate
Select Case Range("B1")
Case 1
Sheets("Accueil").Activate
Case 2
Sheets("CtrlMenu").Hide
Sheets("Module").Activate
Range("A2").Select
ActiveSheet.ShowDataForm
Sheets("Accueil").Select
Case 3
Sheets("Module").Activate
Range("A1").Select
Case 4
Sheets("Module").Activate
Range("A1").Select
End Select
End Sub
Sub Menu()
Set wsr = ActiveSheet
Sheets("Gestion").Select
Range("B1") = "0"
wsr.Select
Sheets("CtrlMenu").Show
End Sub

En fait il faudrait que j'arrive à faire un Cancel sur mon
form de gestion, mais comment?

Amicalement
Thierry
Avatar
MichDenis
Correction : C'est parti trop vite .... ! ;-))


Case 2
Sheets("CtrlMenu").Hide
Sheets("Module").Activate
'Tu dois d'abord sélectionner la feuille contenant les données
Sheets("MesDonnées").select 'Feuille à déterminer
Range("A2").Select
RunMenu 860 'Appel Procédure de John Green
Sheets("Accueil").Select


Salutations!


"MichDenis" a écrit dans le message de news: %
Bonjour Thierry,


Voici une façon de faire tiré de l'excellent bouquin mentionné dans la procédure :

Modifie le Case 2 comme ceci :

Case 2
Sheets("CtrlMenu").Hide
Sheets("Module").Activate
'Tu dois d'abord sélectionner la feuille contenant les données
Sheets("MesDonnées").select
RunMenu 860 'Appel Procédure de John Green
Range("A2").Select
ActiveSheet.ShowDataForm
Sheets("Accueil").Select

'------------------------------------------------
Sub RunMenu(iMenuID As Long)
'Proposed By John Green and Stephen Bullen
'Book : Excel 2003 VBA Programmer's Reference
' *****************************************************
' * Function Name: RunMenu
' *
' * Input/Output: iMenuID - The control ID of the menu item to be run.
' *
' * Purpose: Runs a specified menu item, simulating clicking on it.
' *
' *****************************************************
Dim oCtrl As CommandBarButton
'Ignore any errors (such as the menu ID not valid).
On Error Resume Next
'Create our own temporary commandbar to hold the control.
With Application.CommandBars.Add
' Add the control and execute it.
.Controls.Add(ID:=iMenuID).Execute
' Then delete our temporary menu bar.
.Delete
End With
End Sub
'------------------------------------------------


Salutations!





"Thierry" a écrit dans le message de news:
19ce01c50f99$29b0c230$
Bonjour,

J'utilise un form avec une combo basé sur des cellules.

Je souhaite dans le cas du choix 2 fermer mon form et
afficher le formulaire de saisie Excel (ShowDataForm) Mais
j'ai l'erreur:
Erreur d'exécution: 1004
La méthode ShowDataForm de la classe Worksheet a échoué

J'ai ce code:
Sub ListChoix()
Sheets("Gestion").Activate
Select Case Range("B1")
Case 1
Sheets("Accueil").Activate
Case 2
Sheets("CtrlMenu").Hide
Sheets("Module").Activate
Range("A2").Select
ActiveSheet.ShowDataForm
Sheets("Accueil").Select
Case 3
Sheets("Module").Activate
Range("A1").Select
Case 4
Sheets("Module").Activate
Range("A1").Select
End Select
End Sub
Sub Menu()
Set wsr = ActiveSheet
Sheets("Gestion").Select
Range("B1") = "0"
wsr.Select
Sheets("CtrlMenu").Show
End Sub

En fait il faudrait que j'arrive à faire un Cancel sur mon
form de gestion, mais comment?

Amicalement
Thierry