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

14-Oct-2006

 

 

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

Initialisation de la UserForm

Nous souhaitons, lorsque la UserForm s'affiche, qu'elle indique par défaut certaines informations :

Private Sub UserForm_Initialize()
    Datec = Format(Date, "dd/mm/yy")
    heurec = FormatDateTime(Time, vbShortTime)
   normal = True
   depart = True
   num = Worksheets("num").Range("A2") + 1
   ville = "Paris"
   ville.SetFocus
End Sub

Vous aurez reconnu la fonction Format() que nous avons déjà étudiée et qui permet d'afficher la date du jour selon un format défini par vos soins.

Nous découvrons l'équivalent pour la fonction FormatDateTime(Time, vbSortTime) qui permet de récupérer l'heure actuelle (Time) et de la formater (FormatDateTime). Le paramètre vbShortTime permet de l'afficher sous la forme 10:00 ou 20:00.

Les instructions normal=true et depart=true permettent d'activer par défaut certaines des cases d'option.

L'instruction suivante (num = Worksheets("num").Range("A2") + 1) est un peu plus complexe.

En anglais Worksheets désigne une feuille de calcul. Il est probable que votre classeur en contienne plusieurs. Il est donc utile de devoir préciser sur quelle feuille la macro doit s'appliquer. On utilise pour cela l'instruction Worksheets("nomde la feuille").

Vous en déduisez donc que notre classeur comporte une autre feuille nommée "num". Si vous n'utilisez pas le fichier proposé en téléchargement, pensez à la créer.

Cette instruction est complétée par le paramètre .Range("A2"). Range("référence de la cellule) permet d'activer une cellule précise d'une feuille de calcul. En l'occurrence, la cellule A2 de la feuille "num" contient un simple nombre, au départ "0" et qui va servir à numéroter tous nos bons.

Ce compteur est augmenté grâce à l'instruction +1 qui s'ajoute à chaque lancement de la macro.

num= permet donc d'affecter la valeur contenue dans la cellule A2 de la feuille num après l'avoir augmentée de 1 dans le champ num de la UserForm.

Vous connaissez déjà l'instruction ville = "Paris" qui permet d'afficher par défaut le texte entre guillemet dans le champ ville de la UserForm.

Enfin, l'instruction ville.SetFocus permet de positionner le curseur de saisie dans le champ ville.

Le bouton "Valider"

 

Niveau

Pré-requis :

  • Leçons 1 à 6


Récupérer l'heure actuelle : Time
Formater l'heure sous la forme 10:00 / 20:00 :
FormatDateTime(Time, vbShortTime)

Faire référence
à une feuille de calcul :
Worksheets("nom de la feuille")


Faire référence à une cellule d'une feuille de calcul :
Worksheets("nom de la feuille").Range("Référence de la cellule")


Placer le curseur sur un champ de la UserForm :
nom du champ.SetFocus