OVH Cloud OVH Cloud

Pause dans une macro

3 réponses
Avatar
ferraroli
Bonjour à tous !

Je suis quasi-débutant Excel, car je me débrouillais très bien avec Lotus
dont je faisais ce que je voulais. Mais je vais bientôt être le seul à
continuer à l'utiliser, donc tant pis, je migre, dans la douleur... Cela me
conduit à essayer de calquer les procédures Excel sur celles de Lotus, ce
qui n'est pas toujours la meilleure solution. Donc voici :

Voici ma question : dans une macro, comment donner la main à l'utilisateur
(c'était {?} dans Lotus) ?

J'ai un classeur aux multiples onglets, et je voudrais les imprimer un par
un. Dans Lotus, j'ai nommé tous les champs d'impression (PFACTxx avec xx de
1 à 15), et j'ai une unique macro d'impression qui, une fois chargés les
paramètres d'impression, s'interrompt pour que l'utilisateur entre le numéro
du champ concerné. Cela se fait avec{?}.

Et dans Excel : puis-je imprimer un champ nommé ? Comment lui dire ?
Et comment insérer une pause ?

Plus généralement, j'ai cherché dans l'aide d'Excel, mais je la trouve très
peu pratique. Où trouver ce genre de réponses ?

Merci beaucoup
Denis

3 réponses

Avatar
FxM
Bonjour,

QQ chose comme (non testé) :

sub test()
vale = inputbox("Quel champ souhaitez-vous imprimer ?","Titre")
if cale <> false then
(?????).printout copies:=1
end if
end sub

@+
FxM


Bonjour à tous !

Je suis quasi-débutant Excel, car je me débrouillais très bien avec Lotus
dont je faisais ce que je voulais. Mais je vais bientôt être le seul à
continuer à l'utiliser, donc tant pis, je migre, dans la douleur... Cela me
conduit à essayer de calquer les procédures Excel sur celles de Lotus, ce
qui n'est pas toujours la meilleure solution. Donc voici :

Voici ma question : dans une macro, comment donner la main à l'utilisateur
(c'était {?} dans Lotus) ?

J'ai un classeur aux multiples onglets, et je voudrais les imprimer un par
un. Dans Lotus, j'ai nommé tous les champs d'impression (PFACTxx avec xx de
1 à 15), et j'ai une unique macro d'impression qui, une fois chargés les
paramètres d'impression, s'interrompt pour que l'utilisateur entre le numéro
du champ concerné. Cela se fait avec{?}.

Et dans Excel : puis-je imprimer un champ nommé ? Comment lui dire ?
Et comment insérer une pause ?

Plus généralement, j'ai cherché dans l'aide d'Excel, mais je la trouve très
peu pratique. Où trouver ce genre de réponses ?

Merci beaucoup
Denis




Avatar
ferraroli
Merci, FX, mais je dois mettre ça où ?
Je veux dire : pour l'instant, je crée des macros en enregistrant des suites
de commandes et non en créant des programmes VBS. J'ai trouvé (Alt-F8) où
étaient mes macros enregistrées ; dois-je inclure ces lignes au début de la
macro en question ?
Au fait, il s'agit bien de l'impression d'un champ nommé ?
Si je comprends bien, on ne peut pas s'en sortir sans faire de programmation
?
C'est expliqué où dans l'aide d'Excel ?

Excuse-moi pour toutes ces questions, mais je patauge un peu, beaucoup même.
J'ai vraiment l'impression de disposer d'un Airbus pour aller chercher le
pain, alors que ma Lotus (une belle voiture, d'ailleurs) me convenait
parfaitement.
@+
Denis

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

QQ chose comme (non testé) :

sub test()
vale = inputbox("Quel champ souhaitez-vous imprimer ?","Titre")
if cale <> false then
(?????).printout copies:=1
end if
end sub

@+
FxM


Bonjour à tous !

Je suis quasi-débutant Excel, car je me débrouillais très bien avec Lotus
dont je faisais ce que je voulais. Mais je vais bientôt être le seul à
continuer à l'utiliser, donc tant pis, je migre, dans la douleur... Cela
me conduit à essayer de calquer les procédures Excel sur celles de Lotus,
ce qui n'est pas toujours la meilleure solution. Donc voici :

Voici ma question : dans une macro, comment donner la main à
l'utilisateur (c'était {?} dans Lotus) ?

J'ai un classeur aux multiples onglets, et je voudrais les imprimer un
par un. Dans Lotus, j'ai nommé tous les champs d'impression (PFACTxx avec
xx de 1 à 15), et j'ai une unique macro d'impression qui, une fois
chargés les paramètres d'impression, s'interrompt pour que l'utilisateur
entre le numéro du champ concerné. Cela se fait avec{?}.

Et dans Excel : puis-je imprimer un champ nommé ? Comment lui dire ?
Et comment insérer une pause ?

Plus généralement, j'ai cherché dans l'aide d'Excel, mais je la trouve
très peu pratique. Où trouver ce genre de réponses ?

Merci beaucoup
Denis




Avatar
FxM
Bonjour Denis,

Ce à quoi tu accèdes via Alt-F11 est l'éditeur (dit VBE) qui présente
des lignes de codes VBA (Visual Basic for Applications).
Rien de VBS là-dedans :o)

Et comme l'enregistreur de macros crée beaucoup de lignes inutiles dans
le code et, par définition, aucune inputbox faite manuellement, je
comprends que tu patauges un peu. Rassure-toi, on a tous commencé un jour.

Je suppose que ce que tu appelles "champ" a été créé avec insertion -
nom - définir. C'est donc une zone nommée.

Tu n'es pas obligé d'utiliser VBA pour imprimer une zone nommée. Tu peux
le faire :

* a partir d'Excel
F5 -> sélectionner le nom -> OK
fichier - imprimer - sélection - ...

* via VBA
sub test()
vale = inputbox("Quel champ souhaitez-vous imprimer ?","Titre")
if cale <> false then
range(cale).printout copies:=1
end if
end sub

J'ai répondu via VBA car le titre de ton message est "Pause dans une
macro". Macro = VBA (enfin, me semble-t-il).

De là à te dire où tu devrais placer les lignes, ... je ne connais pas
ton code, ni vraiment ce que tu souhaites. (dur, dur, ...)

Voici donc le même code avec sa fonction pour que tu comprennes ce que
ça fait :
sub test()
'affichage d'une inputbox (boîte de dialogue) avec corps et titre
vale = inputbox("Quel champ souhaitez-vous imprimer ?","Titre")
'si qq chose est saisi dans l'inputbox
if cale <> false then
'on imprime la zone nommée correspondante
range(cale).printout copies:=1
'fin du if ...
end if
'fin de la macro
end sub

Naturellement, le code ci-dessus ne vérifie pas grand chose. Il plantera
lamentablement si aucune zone ne correspond à ce qui est tapé.

Non, tu as l'Airbus et le manuel a été rédigé en anglais par des
ingénieurs et traduit avec une ou deux générations de retard par des
martiens ne parlant pas notre langue. A part cela, tout va bien :o)

Testes et n'hésites pas à repasser si ça coince.

@+
FxM


Merci, FX, mais je dois mettre ça où ?
Je veux dire : pour l'instant, je crée des macros en enregistrant des suites
de commandes et non en créant des programmes VBS. J'ai trouvé (Alt-F8) où
étaient mes macros enregistrées ; dois-je inclure ces lignes au début de la
macro en question ?
Au fait, il s'agit bien de l'impression d'un champ nommé ?
Si je comprends bien, on ne peut pas s'en sortir sans faire de programmation
?
C'est expliqué où dans l'aide d'Excel ?

Excuse-moi pour toutes ces questions, mais je patauge un peu, beaucoup même.
J'ai vraiment l'impression de disposer d'un Airbus pour aller chercher le
pain, alors que ma Lotus (une belle voiture, d'ailleurs) me convenait
parfaitement.
@+
Denis

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

QQ chose comme (non testé) :

sub test()
vale = inputbox("Quel champ souhaitez-vous imprimer ?","Titre")
if cale <> false then
(?????).printout copies:=1
end if
end sub

@+
FxM


Bonjour à tous !

Je suis quasi-débutant Excel, car je me débrouillais très bien avec Lotus
dont je faisais ce que je voulais. Mais je vais bientôt être le seul à
continuer à l'utiliser, donc tant pis, je migre, dans la douleur... Cela
me conduit à essayer de calquer les procédures Excel sur celles de Lotus,
ce qui n'est pas toujours la meilleure solution. Donc voici :

Voici ma question : dans une macro, comment donner la main à
l'utilisateur (c'était {?} dans Lotus) ?

J'ai un classeur aux multiples onglets, et je voudrais les imprimer un
par un. Dans Lotus, j'ai nommé tous les champs d'impression (PFACTxx avec
xx de 1 à 15), et j'ai une unique macro d'impression qui, une fois
chargés les paramètres d'impression, s'interrompt pour que l'utilisateur
entre le numéro du champ concerné. Cela se fait avec{?}.

Et dans Excel : puis-je imprimer un champ nommé ? Comment lui dire ?
Et comment insérer une pause ?

Plus généralement, j'ai cherché dans l'aide d'Excel, mais je la trouve
très peu pratique. Où trouver ce genre de réponses ?

Merci beaucoup
Denis