Domaines
RH
Juridique
Compta
Administratif/Moyens Généraux
Communication
Bureautique
Conseils aux débutants
Word
Excel
PowerPoint
Outlook
Access
Publisher

PagePlus (PAO)

Windows/système
PhotoImpact
Conception web : les bases
Applications pas à pas
Tests logiciels
Macros VBA
Leçons
Macros Word
Astuces
Orthographe
Rédaction
Organisation
Produits/services malins
Outils
Ouvrages
Modèles
Macros
Liens
Anglais
Grammaire avec AnglaisFacile
Leçon gratuite avec AnglaisFacile
Carrière
Gestion de carrière
Fiches métier
Témoignages / vécu
Offres d'emploi

Evénements métier
Echos de presse, comptes-rendus

Echanger

Forums
Chater en direct

© Nadège Guilbert
Le contenu de ce site
est régulièrement déposé auprès de la SGDL
Reproduction interdite
sans le consentement
écrit de l'auteur



Imprimer la page

Macros / VBA > Index

04-Mai-2005

 

 

Présentation de l'application
Le classeur de base
Dessiner la UserForm
Le bouton Annuler
Initialisation de la UserForm
Le bouton Valider : les boucles Do Until... Loop.

Le bouton Valider : les boucles While... wend.
Le bouton Valider : insérer les informations dans les cellules

Solution
Le bouton Valider : actualisation du compteur

Déclencher la macro
Synthèse des notions étudiées


Les boucles

Le bouton Valider : l'actualisation du compteur

Vous vous souvenez que notre boîte de dialogue affiche un numéro unique pour chaque course.

Vous vous rappelez sans doute que nous avions placé une instruction num = Worksheets("num").Range("A2") + 1 qui augmentait la valeur de ce numéro à chaque lancement du programmme...

En fait cette instruction se bornait à récupérer le numéro figurant dans la cellule A2 et à l'incrémenter d'1, mais n'actualisait pas la valeur de cette cellule.

Cette démarche est volontaire : ainsi si l'opérateur appuie sur le bouton "Annuler" en cours de session, le numéro de la course étant volatile, il n'est donc pas conservé et pourra être réutilisé.

Mais il en va tout autrement si l'opérateur valide son action. Le numéro de bon doit être conservé pour être augmenté à la prochaine session.

Voici donc à présent le code à rajouter pour terminer notre programme :

Application.ScreenUpdating = False
Worksheets("num").Activate Range("A2").Activate
ActiveCell = num
Sheets("feuil1").Select
Application.ScreenUpdating = True
Unload Me
End Sub

Quelques explications s'imposent :

Vous avez dû remarquer que lorsque vous appuyez sur le bouton "Ok", Excel insère effectivement les informations dans les cellules voulues mais à une vitesse telle que cette dernière peut gêner l'utilisateur.

La solution consiste à "geler" l'écran temporairement pour éviter ce désagrément. C'est l'objectif de la fonction Application.ScreenUpdating. Cette dernière accepte deux valeurs False pour "geler" l'écran, True pour le "dégeler".

Voici donc la traduction de notre code :

EcranGelé activé
Sélectionner la cellule "A2" de la feuille "num"
Insérer dans la cellule active (A2) le contenu du champ "num" de la boîte de saisie
Sélectionner l'onglet ("feuil1")
EcranGelé désactivé
Décharger la boîte de saisie
Fin du programme.

 

 

 

Niveau

Pré-requis :

  • Leçons 1 à 6



ActiveCell :
cellule sur laquelle est positionnée le curseur

IsEmpty(nomdecellule) :
teste si une cellule est vide

IsEmpty(nomdecellule) renvoie :
True = vide
False = non vide

Do until condition
action
Loop

While condition
action
Wend

Application.ScreeUpdating=
False (écran gelé)
True (écran dégelé)