Appel macro si saisie valeur dans une cellule

Le
loufougnadou
Bonjour,

Je suis un pov' débutant tout seul avec VBE qui s'excuse de poser des
questions basiques.
Je travaille sous WINDOWS XP familial avec EXCEL 97.

1)
Je suis dans une macro qui m'affiche un tableau clients (assez grand : 10
colonnes 100 lignes) dans lequel je dois saisir un montant facture pour un
client "ccccc".
Pour faciliter la recherche visuelle de la cellule d'accueil dans laquelle
je dois saisir le montant facture (qui est à la droite du code client dans
le tableau), j'ai une cellule fixe (B19) dans laquelle j'introduis le numéro
du client ("ccccc").
Par formules Excel dans ce tableau, je sais alors, à partir du code client
("ccccc"), retrouver l'adresse de la cellule d'accueil (supposons K7) que je
place dans une autre cellule fixe du tableau (mettons AA7). La cellule
AA7 contient donc "l'adresse" K7" dans laquelle je dois saisir le montant
facture .
Il me reste à positionner automatiquement le curseur en K7.

La méthode que j'ai trouvée fonctionne mais elle est lourde :
A côté de la cellule B19 (où j'ai saisi le code client) j'ai placé une
image bouton dessinée par paint à laquelle j'ai affecté une macro "ancrage"
qui, par
Range("K7") va positionner automatiquement le curseur à la bonne place
après être retourné dans la macro d'origine.
Mais les manipulations sont lourdes : Il a fallu faire Enter pour
valider la valeur introduite puis CLIC sur mon bouton pour appeler la macro
"ancrage".

N'y a-t-il pas plus simple ?

2) Je déroules des macros qui pendant leur exécution (de 2 à 7 secondes) me
font apparaître en flash toutes les feuilles sur lesquelles ces macros
passent durant leur exécution.

Comment faire pour avoir un écran vierge (avec éventuellement un message)
pendant le déroulement des macros ?

J'ai bien vu une procedure :

flAttente.Visible = True
flAttente.Select
Application.ScreenUpdating = False

********* ma macro ********

flAttente.Visible = False
Application.ScreenUpdating = True

mais ça ne fonctionne pas, sans doute parce que je place mal ces
instructions. Dois-je déclarer la feuille "Attente" ou cela se fait-il tout
seul ?

Je suis paumé . . . Au secours !

Merci de loufougnadou
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JLuc
Le #3659901
loufougnadou avait soumis l'idée :
Bonjour,

Je suis un pov' débutant tout seul avec VBE qui s'excuse de poser des
questions basiques.
Je travaille sous WINDOWS XP familial avec EXCEL 97.

1)
Je suis dans une macro qui m'affiche un tableau clients (assez grand : 10
colonnes 100 lignes) dans lequel je dois saisir un montant facture pour un
client "ccccc".
Pour faciliter la recherche visuelle de la cellule d'accueil dans laquelle je
dois saisir le montant facture (qui est à la droite du code client dans le
tableau), j'ai une cellule fixe (B19) dans laquelle j'introduis le numéro du
client ("ccccc").
Par formules Excel dans ce tableau, je sais alors, à partir du code client
("ccccc"), retrouver l'adresse de la cellule d'accueil (supposons K7) que je
place dans une autre cellule fixe du tableau (mettons AA7). La cellule
AA7 contient donc "l'adresse" K7" dans laquelle je dois saisir le montant
facture .
Il me reste à positionner automatiquement le curseur en K7.

La méthode que j'ai trouvée fonctionne mais elle est lourde :
A côté de la cellule B19 (où j'ai saisi le code client) j'ai placé une
image bouton dessinée par paint à laquelle j'ai affecté une macro "ancrage"
qui, par
Range("K7") va positionner automatiquement le curseur à la bonne place
après être retourné dans la macro d'origine.
Mais les manipulations sont lourdes : Il a fallu faire Enter pour
valider la valeur introduite puis CLIC sur mon bouton pour appeler la macro
"ancrage".

N'y a-t-il pas plus simple ?
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("b19")) Is Nothing Then
MsgBox "B12 à changer !" 'Appelle ta macro ici
End If
End Sub

2) Je déroules des macros qui pendant leur exécution (de 2 à 7 secondes) me
font apparaître en flash toutes les feuilles sur lesquelles ces macros
passent durant leur exécution.

Comment faire pour avoir un écran vierge (avec éventuellement un message)
pendant le déroulement des macros ?

J'ai bien vu une procedure :

flAttente.Visible = True
flAttente.Select
Application.ScreenUpdating = False

********* ma macro ********

flAttente.Visible = False
Application.ScreenUpdating = True

mais ça ne fonctionne pas, sans doute parce que je place mal ces
instructions. Dois-je déclarer la feuille "Attente" ou cela se fait-il tout
seul ?

Je suis paumé . . . Au secours !
Il faut supprimer tous les .Select de ton programme, de cette facon,

l'affichage n'ira pas sur chaques feuilles

Merci de loufougnadou
De rien


--
JLuc

Publicité
Poster une réponse
Anonyme