Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

afficher le formulaire

16 réponses
Avatar
claude
bonjour
je voudrais créer un bouton pour afficher directement le formulaire
sur une feuille dans laquelle j'ai créé une petite base de données (nom,
prénom, adresse, ...) sur la ligne 1
j'ai commencé à remplir la ligne 2

j'ai suivi l'enregistreur de macro

Sub afficher_form()
range("A2").Select
activeSheet.ShowDataForm
End Sub

çà plante systématique
" la méthode ShowDataForm de la classe worksheet a échoué"
?????
merci pour votre aide
claude

6 réponses

1 2
Avatar
Mgr Banni
si vous ne dites pas tout, mon fils.... nos dons ont des limites!
Mgr T.B.

"claude" a écrit dans le message de news:
4881a431$0$856$
bonjour (encore)
je crois avoir trouvé une explication
la macro marche si le tableau-base de données commence tout en haut de la
feuille, ligne1 ou 2 et à partir de la colonne A ou B
Au delà, çà ne marche plus
Et si on met deux tableaux différents dans la même feuille, c'est le
premier qui est pris en compte dans le formulaire

A force ...
claude





"claude" a écrit dans le message de news:
48809c39$0$16182$
bonjour
je voudrais créer un bouton pour afficher directement le formulaire
sur une feuille dans laquelle j'ai créé une petite base de données (nom,
prénom, adresse, ...) sur la ligne 1
j'ai commencé à remplir la ligne 2

j'ai suivi l'enregistreur de macro

Sub afficher_form()
range("A2").Select
activeSheet.ShowDataForm
End Sub

çà plante systématique
" la méthode ShowDataForm de la classe worksheet a échoué"
?????
merci pour votre aide
claude









Avatar
Modeste
Bonsour® claude avec ferveur ;o))) vous nous disiez :

je crois avoir trouvé une explication
la macro marche si le tableau-base de données commence tout en haut
de la feuille, ligne1 ou 2 et à partir de la colonne A ou B
Au delà, çà ne marche plus



Mais si.....
;o)))

Et si on met deux tableaux différents dans la même feuille, c'est le
premier qui est pris en compte dans le formulaire


Mais non ...
;o)))

avant d'activer la commande Données > Formulaire
il suffit de nommer ou renommer la plage à utiliser : "database"

"database" est un nom réservé unique qui correspond à la plage utilisée par le formulaire
on peut employer aussi le nom "Base_de_données" qui est équivalent et automatiquement transcrit en interne par "database"

l'appel de du formulaire
peut également s'effectuer en utilisant la commande SendKeys "%Do"

voir exemple :
http://cjoint.com/?htme1KeVRc

Remarque trés importante :
pour la saisie de dates ou valeurs décimales dans un formulaire
l'utilisation de la syntaxe VBA (showdataform)
- implique la saise sous forme US mm/dd/yyyy , separateur "."

l'utilisation de la syntaxe feuille de calcul (Sendkeys "%Do")
- permet la saisie sous forme locale jj/mm/aaaa , separateur ","

--
@+
;o)))
Avatar
Modeste
Bonsour® Mgr Banni avec ferveur ;o))) vous nous disiez :

si vous ne dites pas tout, mon fils.... nos dons ont des limites!
Mgr T.B.



voila qui est digne d'un don !!!


--
--
@+
;o)))
Avatar
michdenis
Suite au brio de l'explication de Modeste, ta procédure pourrait être :

Tu adaptes le nom de la feuille
et tu choisis une cellule quelconque à l'intérieur du tableau
que tu veux afficher dans ton formulaire.

'--------------------------------------
Sub afficher_form()
With Worksheets("feuil1")
.Activate
.Range("H1").CurrentRegion.Name = "DataBase"
End With
Application.DisplayAlerts = False
ActiveSheet.ShowDataForm
Application.DisplayAlerts = True
Names("DataBase").Delete

End Sub
'--------------------------------------





"Modeste" a écrit dans le message de news:

Bonsour® claude avec ferveur ;o))) vous nous disiez :

je crois avoir trouvé une explication
la macro marche si le tableau-base de données commence tout en haut
de la feuille, ligne1 ou 2 et à partir de la colonne A ou B
Au delà, çà ne marche plus



Mais si.....
;o)))

Et si on met deux tableaux différents dans la même feuille, c'est le
premier qui est pris en compte dans le formulaire


Mais non ...
;o)))

avant d'activer la commande Données > Formulaire
il suffit de nommer ou renommer la plage à utiliser : "database"

"database" est un nom réservé unique qui correspond à la plage utilisée par
le formulaire
on peut employer aussi le nom "Base_de_données" qui est équivalent et
automatiquement transcrit en interne par "database"

l'appel de du formulaire
peut également s'effectuer en utilisant la commande SendKeys "%Do"

voir exemple :
http://cjoint.com/?htme1KeVRc

Remarque trés importante :
pour la saisie de dates ou valeurs décimales dans un formulaire
l'utilisation de la syntaxe VBA (showdataform)
- implique la saise sous forme US mm/dd/yyyy , separateur "."

l'utilisation de la syntaxe feuille de calcul (Sendkeys "%Do")
- permet la saisie sous forme locale jj/mm/aaaa , separateur ","

--
@+
;o)))
Avatar
michdenis
J'ajoute que cette méthode fonctionne aussi très bien !

IL s'agit que tu indiques dans la procédure une cellule du tableau
que tu désires afficher...

'---------------------------------------
Sub afficher_form()
With Worksheets("feuil1")
.Activate
.Range("K2").Activate
Application.DisplayAlerts = False
Application.CommandBars.FindControl(ID:†0).Execute
Application.DisplayAlerts = True
End With
End Sub
'---------------------------------------




"michdenis" a écrit dans le message de news:
%
Suite au brio de l'explication de Modeste, ta procédure pourrait être :

Tu adaptes le nom de la feuille
et tu choisis une cellule quelconque à l'intérieur du tableau
que tu veux afficher dans ton formulaire.

'--------------------------------------
Sub afficher_form()
With Worksheets("feuil1")
.Activate
.Range("H1").CurrentRegion.Name = "DataBase"
End With
Application.DisplayAlerts = False
ActiveSheet.ShowDataForm
Application.DisplayAlerts = True
Names("DataBase").Delete

End Sub
'--------------------------------------





"Modeste" a écrit dans le message de news:

Bonsour® claude avec ferveur ;o))) vous nous disiez :

je crois avoir trouvé une explication
la macro marche si le tableau-base de données commence tout en haut
de la feuille, ligne1 ou 2 et à partir de la colonne A ou B
Au delà, çà ne marche plus



Mais si.....
;o)))

Et si on met deux tableaux différents dans la même feuille, c'est le
premier qui est pris en compte dans le formulaire


Mais non ...
;o)))

avant d'activer la commande Données > Formulaire
il suffit de nommer ou renommer la plage à utiliser : "database"

"database" est un nom réservé unique qui correspond à la plage utilisée par
le formulaire
on peut employer aussi le nom "Base_de_données" qui est équivalent et
automatiquement transcrit en interne par "database"

l'appel de du formulaire
peut également s'effectuer en utilisant la commande SendKeys "%Do"

voir exemple :
http://cjoint.com/?htme1KeVRc

Remarque trés importante :
pour la saisie de dates ou valeurs décimales dans un formulaire
l'utilisation de la syntaxe VBA (showdataform)
- implique la saise sous forme US mm/dd/yyyy , separateur "."

l'utilisation de la syntaxe feuille de calcul (Sendkeys "%Do")
- permet la saisie sous forme locale jj/mm/aaaa , separateur ","

--
@+
;o)))
Avatar
claude
bonjour
désolé de l'absence de réponse, pour cause de vacanes (trop rapides ...snif
!)
merci de vos éclaircissements et merci à Modeste pour son fichier explicatif
:-)))
claude





"Modeste" a écrit dans le message de news:

Bonsour® claude avec ferveur ;o))) vous nous disiez :

je crois avoir trouvé une explication
la macro marche si le tableau-base de données commence tout en haut
de la feuille, ligne1 ou 2 et à partir de la colonne A ou B
Au delà, çà ne marche plus



Mais si.....
;o)))

Et si on met deux tableaux différents dans la même feuille, c'est le
premier qui est pris en compte dans le formulaire


Mais non ...
;o)))

avant d'activer la commande Données > Formulaire
il suffit de nommer ou renommer la plage à utiliser : "database"

"database" est un nom réservé unique qui correspond à la plage utilisée par
le formulaire
on peut employer aussi le nom "Base_de_données" qui est équivalent et
automatiquement transcrit en interne par "database"

l'appel de du formulaire
peut également s'effectuer en utilisant la commande SendKeys "%Do"

voir exemple :
http://cjoint.com/?htme1KeVRc

Remarque trés importante :
pour la saisie de dates ou valeurs décimales dans un formulaire
l'utilisation de la syntaxe VBA (showdataform)
- implique la saise sous forme US mm/dd/yyyy , separateur "."

l'utilisation de la syntaxe feuille de calcul (Sendkeys "%Do")
- permet la saisie sous forme locale jj/mm/aaaa , separateur ","

--
@+
;o)))
1 2