-Ambiances-
-Civilisations-
-Arts-
-Loisirs-
-Divers-

-Fractals- / -Musique mp3-

-L'antre du dragon- / -La crypte- / -Lost in open space-

-Graphisme & Peinture- / -BD- / -Lecture- / -Citations-

-L'Atelier Boomerangs- / -L'expo Boomerang-

-Accueil informatique- / -Logiciels utiles- / -Gifs animés / -Un PC loisir au travail-
-Logiciels faits main- / -Didacticiel VBA 1- / - Didacticiel VBA 2- / -Code VBA libre-

 


matrix
Livre d'or --Plan du site- -Accueil  

VISUAL BASIC pour EXCEL : LECON n°2

0-INTRODUCTION

1-ORGANISATION DU FICHIER EXCEL

1-1 Qu’est ce qu’un programme abouti 
1-2 Organisation des feuilles du fichier Excel 
1-3 Action !!!

2-PRESENTATION DES BOUTONS

2-1 Création du bouton
2-2 Attribuer du code à un objet (bouton)
2.3 exercice

3-PRESENTATION DES USERFORM

3-1 Création de la userform
3-2  Faire apparaître la Userform
3-3 Créer un bouton sur la userform
3-4 créer un espace de saisie dans la userform
3-5 Taper du texte dans la userform
3.6 Exercice 

4-PETIT RETOUR SUR LES ACQUIS DE LA LECON 1

4-1 Pour revoir la méthode faire une macro (ou sub) quand on a oublié le langage
4-2-Revoir les boucles et conditions

5-CONCLUSION

-a-

0-INTRODUCTION

Vous avez suivi tres scrupuleusement j’en suis sur les leçon et exercices de VISUAL BASIC pour EXCEL : LECON n°1. Ce n’etait qu’une petite introduction. Vous avez envie d’aller plus loin, de créer un véritable programme, avec une interface utilisateur aboutie, des boutons, des fenêtres. Le VBA est parfait pour cela. En vue de réaliser un logiciel qui a « de la gueule », il est nécessaire de prendre au préalable un peu de hauteur et de s’organiser un peu avant de taper du code à tout va.

-Dans une première partie, je vous propose une façon d’organiser son fichier Excel, un préalable. J’ignore si cette méthode est bien académique mais elle me réussi bien quand je réalise un programme gérant des bases de données de taille inférieures à 5Mo (ce qui est déjà bien). Pour plus, cela fera l’objet d’une autre leçon.

-Dans une deuxième partie, je vous présenterai les outils nécessaire pour créer une interface conviviale : Les boutons et les Userform

Pré requis pour l’utilisation de ce didacticiel : avoir intégré les leçons de VISUAL BASIC pour EXCEL : LECON n°1.

Ce didacticiel vous permettra de créer un petit carnet d’adresse client

Vous retrouverez tout les exercices et exemples de ce didacticiel dans le fichier suivant :telecgargement exovba2.xls (enregistrer la cible sous …)

--

1-ORGANISATION DU FICHIER EXCEL

1-1 Qu’est ce qu’un programme abouti 

Un programme abouti est bien loin d’une simple feuille Excel. Tout le travail réalisé par le programme doit s ‘effectuer de la manière la plus transparente possible pour l’utilisateur. Les fausses manipulations du néophyte doivent être anticipée et parée. Pour cela il est nécessaire de lui laisser le moins de marge de manœuvre possible

 

1-2 Organisation des feuilles du fichier Excel 

Ce petit exercice simpliste va nous permettre de créer :

-une page d’accueil pour l’utilisateur
-une feuille de rangement des données : la base de donnée
-une feuille de sortie de résultat
-une feuille de « brouillon » invisible pour l’utilisateur

 

1-3 Action !!!

-Ouvrez Excel et créez un nouveau classeur
-Sauvegarder ce classeur sous le nom « exovba2.xls »
-Clic bouton droit sur l’onglet de la « Feuil1 » choisir renommer
-Taper « Accueil » puis Entrer
-Clic bouton droit sur l’onglet de la « Feuil2 » choisir renommer
-Taper « BD » puis Entrer
-Clic bouton droit sur l’onglet de la « Feuil3 » choisir renommer
-Taper « brouillon » puis Entrer

Voilà notre structure est réalisée, faisons maintenant un peu de mise en page (je sais jusqu’à là pour vous c’est totale maîtrise, mais bon, il faut le faire…)

 

-Allez dans la feuille « Accueil » et sélectionnez la cellule A1
-Tapez « Carnet d’adresse et visites »
-Sélectionnez les cellules A1 à H1
-Fusionnez/centrez
-Police taille 18, gras, souligné
-Sélectionnez toutes les cellules de la feuille (case à l’intersection de la ligne des numéros de colonnes et de numéros de lignes)
-Clic bouton droit/format de cellule
-choisissez blanc en couleur de motif

-Allez dans la feuille « BD » et sélectionnez la cellule A1 tapez « Numero »
-sélectionnez la cellule B1 tapez « Nom » -et ainsi de suite avec C, D1 etc… tapez  Adresse, CP, Ville, Dernière visite, Intervalle de visite
-sélectionnez les colonnes de A à G, bouton droit/propriétés des cellules
-mettez des bordures partout
-sélectionnez  les cellules A1 à G1, bouton droit/propriétés des cellules
-motif gris clair/police en gras

Rébarbatif mais fini, on va pouvoir commencer le vrai travail!!!!

-a-

2-PRESENTATION DES BOUTONS

2-1 Création du bouton

-Sélectionnez la feuille « Accueil »
-Allez dans Affichage/Barre d’outil/Activez la barre Visual Basic. Une barre d’outil apparaît
-Cliquez sur le bouton en forme d’équerre et stylo : Vous venez de passer en mode création, les objets comme les boutons, les macros ne réagissent pas.
-Cliquez sur le bouton en forme de marteau et de clef à mollette, une autre barre d’outil apparaît présentant differents éléments intégrables dans la feuille Excel : des boutons, des cases à cocher, etc…
-Cliquez sur le bouton dans cette barre d’outil (en dessous d’un petit carré ou est écrit ab) cliquez dans votre feuille Excel, gardez le dois enfoncé et étendez la sélection jusqu'à avoir un bouton de bonne taille
-sur ce bouton cliquez bouton droit/Objet bouton de commande/édition,
-Effacez le texte « CommandButton1 » et tapez « Visualiser la base de donnée » puis Entrée
-Sur ce bouton,  cliquez droit/copiez puis collez le
-Disposez ces boutons joliment sur la feuille
-Comme vu plus haut éditez le nom du bouton et donnez lui le nom: « Nouveau client » 

 

2-2 Attribuer du code à un objet (bouton)

-Double-cliquez sur le bouton « Visualiser la base de donnée » l’éditeur Visual Basic s’ouvre
-remarquez en haut à gauche que la Feuil1 avec son nom entre parenthèse autrement dit « Accueil » est grisée. En fait tout le code que l’on va taper là sera attribué aux objet de la feuille (ici ce premier bouton) ou à la feuille elle meme .
-Dans la fenetre de saisie vous voyez le code suivant :

Private Sub CommandButton1_Click()

End Sub

Tout le code que l’on va taper dans cette sub ou macro va s’exécuter quand on clique sur le bouton.
-entre les 2 lignes tapez le code suivant : Sheets("BD").Select , cette commande sélectionne la feuille nommée « BD »
- Essayons : Retournez dans Excel sur la feuille « Accueil »
-dans la barre d’outil Visual basic, cliquez sur l’equerre, le code est maintenant en mode execution.
-cliquez sur le bouton « Visualiser la base de donnée 
-Miracle !!!

 

2.3 exercice

Créez un bouton dans la feuille « BD », à droite tableau, permettant de retourner dans la feuille « Accueil »

-a-

3-PRESENTATION DES USERFORM

3-1 Création de la userform

-Allez dans l’éditeur Visual Basic
-Dans la fenêtre « projet » (en haut à gauche faire clic droit/insertion/userform
-Sélectionnez la userform ainsi créée (dans la fenêtre haut droite)
-dans la fenêtre Propriétés Userform1 (en bas à droite), cliquez sur l’onglet Par catégorie
-Ici vous voyez toutes les propriété de notre nouvel objet Userform1 beaucoup resteront longtemps hermétiques pour vous
-Intéressons nous dans la section Apparence à la case « Caption »
-Sélectionnez la et tapez « Nouveau client » en lieu et place de Userform1 et hop on à changé le titre de notre userform

 

3-2  Faire apparaître la Userform

-retournez sur Excel dans la feuille « Accueil »
-mettez vous en mode création (équerre)
-double cliquez sur le bouton « Nouveau client »
-Entre les lignes de codes attribuées au bouton tapez le code suivant : UserForm1.Show
-En mode exécution testez votre bouton
-fermez la userform apparaissant avec sa croix

 

3-3 Créer un bouton sur la userform

-Retournez dans l’éditeur VBA
-dans la fenêtre projet double cliquez sur Userform1
-Dans la boite à outil (fenêtre volante sélectionnez le bouton (a droite d’une icône marquée xyz)
-dessinez un bouton de bonne taille sur la Userform1
-Cliquez sur le texte du bouton et tapez « Annuler » en lieu et place de « CommandButton1 »
-cliquez n’importe ou dans la userform puis double clique sur le bouton
-Vous pouvez maintenant écrire le code qui s’exécute quand on clique sur ce bouton , tapez Userform1.Hide
-retournez dans Excel, page d’accueil testez vos boutons « Nouveau client » et « Annuler »

 

3-4 créer un espace de saisie dans la userform

-Retournez dans l’éditeur VBA
-dans la fenêtre projet double cliquez sur Userform1
-Dans la boite à outil (fenêtre volante sélectionnez l’icône marquée abI
-dessinez votre espace de saisie sur la userform
-cliquez n’importe ou dans la userform puis sélectionnez votre espace de saisie
-dans la fenêtre Propriétés Textbox1 (en bas à droite), cliquez sur l’onglet Par catégorie
-descendez dans la liste et danss la partie Données, sélectionnez la case ControlSource
-Tapez  le code Excel suivant : brouillon!A1
-Retournez dans Excel et testez à nouveau votre userform
-Dans la case de saisie, tapez « azerty » puis cliquez sur « annuler »
-Allez donc voir ce qui se passe dans la feuille brouillon avec la case A : Vous avez lié ce qu’on tape dans l’objet au contenu de la cellule !!!, la si on se souvient en plus un peu de ce que nous apprend la leçon 1, normalement un univers de possibilité s’ouvre devant vos yeux ébahis…

 

3-5 Taper du texte dans la userform

-Retournez dans l’éditeur VBA
-dans la fenêtre projet double cliquez sur Userform1
-Dans la boite à outil (fenêtre volante sélectionnez l’icône marquée A
-dessinez votre espace de texte sur la userform
-Cliquez sur le texte  et tapez « Nom : » en lieu et place de « Tet1»
-Disposez joliment en vis à vis le texte et l’espace de saisie -C’est fait

 

3.6 Exercice 

-Créez 4 espaces de textes nommés respectivement : « Adresse »; « CP »; « Ville » ; « Dernière visite » dans votre userform1
-Créez les 4 espaces de saisie correspondant avec en lien les cellules B1 ; C1 ; D1 ; E1 de la feuille « brouillon » dans votre userform1
-Créez un bouton nommé « OK » dans votre userform1 sans code attribué, ce sera pour la suite
-Donnez un format de date comme jj/mm/aa à la cellule EXCEL A5 de la feuille « brouillon »

NB : n’hésitez pas à vous servir du copier/coller dans VBA

-a-

4-PETIT RETOUR SUR LES ACQUIS DE LA LECON 1

Voilà, nous avons fait notre userform, nos boutons, notre organisation. . .
Ce que je vous propose pour la suite est un exercice progressif vous remettant en tête les acquis de la leçon 1

 

4-1 Pour revoir la méthode faire une macro (ou sub) quand on a oublié le langage :

le but : faire une macro qui nous copie les valeurs écrites dans A1 :E1 de la feuille brouillon et nous fasse un collage spécial des valeurs ailleurs

- Dans Excel, allez dans la feuille « Accueil » (il faut pas oublier que à la fin c’est de cette feuille et nom de brouillon qu’on débutera l’exécution de cette macro
-Allez dans outils/macro/nouvelle macro"
-Tapez "ecrirelesdonnées" comme nom pour cette macro puis OK
-Dans Excel, allez dans la feuille brouillon
-Sélectionnez les cellules A1 à E1
-Edition/copier
-Sélectionnez la cellule A5
-Faites Edition/collage spécial/coller les valeurs
-Allez dans outil/macro/arrêter l'enregistrement
-Observez le code de la sub correspondante dans l’éditeur VBA, vous découvrez une nouvelle fonction

Sub ecrirelesdonnées()

    Sheets("brouillon").Select
    Range("A1:E1").Select
    Range("E1").Activate
    Selection.Copy
    Range("A5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

Par la suite ce n’est pas dans A5 de brouillon qu’on veut écrire les données mais au bout de notre base de données. On va donc faire de cette macro 2 macros, une qui lit les données, une qui les écrit dans une case, peut importe laquelle, celle qui sera sélectionnée à ce moment là.

-séparons ce qui copie dans une sub nouvelle nommée Vous obtenez ceci en créant cette sub à la main puis en selectionnant le code concernée de la sub « ecrirelesdonnées » à la sub « lirelesdonnées »

resultat :

Sub ecrirelesdonnées()

    Range("A5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

Sub lirelesdonnées()
Sheets("brouillon").Select
    Range("A1:E1").Select
    Range("E1").Activate
    Selection.Copy
End Sub

Vous remarquez dans que la sub « ecrirelesdonnées » sélectionne la cellule A5 avant de coller spécial dans cette sélection. On n’a pas besoin de sélectionner A5, nous on veut coller ailleurs, alors on scratche cette ligne

Vous pouvez tester ces 2 macros dans Excel en faisant outil macro etc…(d’abord lirelesdonnées puis selection n’importe ou dans brouillon puis ecrirelesdonnées.

 

4-2-Revoir les boucles et conditions

Exercice 1
Ecrivez une macro nommée « numérotation » qui met 1 dans la case A2, 2 dans la case A3, 3 dans la case A4, et ainsi de suite jusqu'à 200 dans la case A201 de la feuille « BD ». Je sais ça va plus vite à la main dans Excel mais bon ! C’est un exercice d’échauffement car le suivant est plus raide

Exercice 2
Ecrivez une macro nommée « trouverlevide »
-qui va dans la feuille « BD »
-Puis fait une boucle de 2 à 201 (comme plus haut)
-Qui dans cette boucle teste les valeur de B1, B2,B3,…B201. et si cette valeur est égale à rien ( au vide ou "")
-exécute la macro « lirelesdonnées » (il suffit d’écrire lirelesdonnées),
- retourne dans la feuille « BD », sélectionne cette cellule correspondante ( cells(i,2) ),
- exécute la macro « ecrirelesdonnées » ,
- retourne à la feuille « Accueil » *et attribue 201 à la mémoire i(ce qui permet d’interrompre prématurément la boucle…).

Diantre !!!!

Une fois ca fait attribuez au bouton « OK » de la userform1 le code suivant :

trouvezlevide
Userform1.hide

 

Et voilà !!!! Testez le en saisissant quelques noms et adresse d’entreprise.
Notre petit programme commence à ressembler à quelque chose non ?

-a-

5-CONCLUSION

N'hesitez surtout pas à regarder le corrigé…telecgargementexovba2.xls

Avec ces deux premieres leçon, vous avez tout ce qu'il faut pour voler de vos propres ailes, il ne vous reste plkus qu'à creuser, essayer, faire des experiences... Sans négliger bien sur l'aide de VBA

Si ce didacticiel vous à plu écrivez moi à l’adresse andreaonnet@aliceadsl.fr je ne manquerais pas d'ajouter des compléments sur des sujets peut etre plus ciblés.

 

cercle

-Créations-
-Informatique-

-Celtes- / -Mandalas- / Omar Khayyam-

-Plan du site- / -Liens- / Sites amis- / -References- / -Livre d'or/Guestbook- / -Entrée-

Livre d'or --Plan du site- -Accueil