Carnet d’adresses : Création du formulaire d’ajout d’un contact

Mot(s)-clef(s) : , , , , , ,  •  Catégorie(s) : Avancé, Bureautique, Cas Pratique, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Office 2007, Microsoft Office 2010

Publicité

Partager ce cours

37 votes Votez !

Monter vos compétences Excel d'un cran

Tutoriel-Video.com sort son premier ebook sur les techniques et astuces pour apprendre à rechercher efficacement des données dans des classeurs Excel

Atteignez un niveau professionnel à l'aide de cet ebook en suivant des exemples et cas concrets tirés de la vie réelle.

En savoir plus sur l'ebook

Description du cours

Réalisé par Alexis le 3 janvier 2009 à 1:30 58 695 vues

Ce tutoriel est la seconde partie du cas pratique « Carnet d’adresses ».

Nous allons apprendre à créer un formulaire d’ajout d’un contact avec VBA sur Microsoft Excel 2007. Nous verrons les points suivants :

  • Création et mise en forme d’une UserForm.
  • Ecriture sur une feuille Excel avec VBA.
  • Utilisation de structures conditionnelles IF.
  • Utilisation de la fonction MSGBOX.
  • Création et utilisation de variables.
  • Création d’un bouton de commande directement sur une feuille Excel.

Cette vidéo a été réalisée sur Microsoft Excel 2007 mais peut être aussi utilisée sur Microsoft Excel 2010.

Si vous n’avez pas suivi la première partie de ce tutoriel, je vous invite à consulter la page Carnet d’adresses : création du tableau Excel.

La troisième partie portant sur la création d’un formulaire de recherche est disponible à cette adresse : Carnet d’adresses : création d’un formulaire de recherche de contacts en VBA

Ressource disponible pour ce cours

1 Ressource disponible pour cette formation

40 commentaires sur le tutoriel vidéo “Carnet d’adresses : Création du formulaire d’ajout d’un contact”

Ecrire un commentaire
  1. Loetitia Loetitia dit :

    Merci pour vos tutoriels, votre partage. Vous êtes vraiment super.

  2. aline aline dit :

    merci tres facile et tres utile

  3. Catherine Catherine dit :

    Bravo et merci beaucoup. c’est très bien fait. Je n’y connais rien et j’ai réussi. La seule chose est que sous Excel 2013 je n’ai pas réussi à nommer le bouton « Nouveau contact » mais ce n’est pas très grave. Merci encore.

  4. Hamid Hamid dit :

    Excellent tutoriel,
    merci.

  5. Billen Natacha Billen Natacha dit :

    Merci beaucoup pour la réponse, l’erreur est réparée !

  6. Bonjour Natacha,

    Le problème se situe à la ligne « numLigneVide = ActiveSheet.Columns(1).Find(«  »).Row ». Cette ligne permet de renvoyer le numéro de la dernière ligne vide du tableau. Il y a beaucoup de façon de chercher la dernière ligne vide en VBA et celle-ci cause le problème que vous avez soulevé.

    Pour le résoudre, supprimez cette ligne et remplacez la par le code suivant :
    numLigneVide = ActiveSheet.Cells.Find("*", , , , xlByRows, xlPrevious).Row
    numLigneVide = numLigneVide + 1

    J’ai testé et la solution fonctionne.

    Pour votre prochaine question ou si vous avez un autre problème et/ou des suggestions de tutoriels, veuillez vous inscrire gratuitement en cliquant sur le lien suivant : Inscription à Tutoriel-Video.com. Vous pourrez ainsi me contacter directement par une messagerie instantanée ou poster un message sur notre forum d’entraide.

    Merci et bonne journée !

  7. Natacha Natacha dit :

    Bonjour,

    Très bon tutoriel, merci à toi ! Moi qui ne connait rien à ce type de codage, j’ai réuissi ! 🙂

    J’ai juste un petit soucis : tout fonctionnait très bien jusqu’à ce que j’ai voulu, au-dessus de la ligne où se trouve le bouton « nouveau contact » insérer encore une autre ligne pour y placer un en-tête sympa. Mais maintenant, lorsque j’ajoute un contact, les données ne se mettent plus automatiquement dans le dernier champ du tableau, elles se mettent dans la ligne 2 (à savoir là où se trouve le bouton « nouveau contact ». Comment cela se fait-il … ?

    Merci pour ta réponse !

  8. J’ai copié/collé votre code sur Excel et je n’ai aucune erreur. Vous pouvez essayer de remplacer « ActiveWorkbook.Worksheets(« Carnet »). » par « ActiveWorkbook.ActiveSheet. »

    Lorsque vous avez une erreur, veuillez me donner l’intitulé exact de l’erreur et pas votre code complet.

  9. Snoopy Snoopy dit :

    Bonjour
    suite a notre discussion par chat
    j’ai rentre les donnees et sa mardche pas il me met une erreur sur
    la ligne
    ActiveWorkbook.Worksheets(« Carnet »).AutoFilter.Sort.SortFields.Clear

    voici comment j ai programme

    Private Sub cmdAjouter_Click()
    Dim numLigneVide As Integer
    ‘on active la feuille « Carnet »
    Worksheets(« Carnet »).Activate
    ‘on trouve la derniere ligne vide du tableau et on enregistre le numéro de ligne dans la variable numLigneVide
    numLigneVide = ActiveSheet.Columns(2).Find(«  »).Row
    ‘on verifie que les champs obligatoire sont correctement remplis
    If txtNom.Text = «  » Then
    MsgBox « Veuillez remplir le nom de votre contact », vbCritical, « Champs manquant »
    txtNom.SetFocus
    ElseIf txtPrénom.Text = «  » Then
    MsgBox « Veuillez remplir le prénom de votre contact », vbCritical, « Champs manquant »
    txtPrénom.SetFocus
    Else
    ‘on remplit les données dans notre tableau
    ActiveSheet.Cells(numLigneVide, 1) = Civilite.Text
    ActiveSheet.Cells(numLigneVide, 2) = UCase(txtNom.Text)
    ActiveSheet.Cells(numLigneVide, 3) = Application.Proper(txtPrénom.Text)
    ActiveSheet.Cells(numLigneVide, 4) = txtSurnom.Text
    ActiveSheet.Cells(numLigneVide, 5) = txtPortable.Text
    ActiveSheet.Cells(numLigneVide, 6) = txtFixe.Text
    ActiveSheet.Cells(numLigneVide, 7) = txtBoulot.Text
    ActiveSheet.Cells(numLigneVide, 8) = txtEmail1.Text
    ActiveSheet.Cells(numLigneVide, 9) = txtEmail2.Text
    ActiveSheet.Cells(numLigneVide, 10) = txtAdresse.Text
    ActiveSheet.Cells(numLigneVide, 11) = txtCp.Text
    ActiveSheet.Cells(numLigneVide, 12) = txtVille.Text
    ‘on efface le formulaire et on replace le curseur sur le premier champs (Civilite)
    Civilite.Text = «  »
    txtNom.Text = «  »
    txtPrénom.Text = «  »
    txtSurnom.Text = «  »
    txtPortable.Text = «  »
    txtFixe.Text = «  »
    txtBoulot.Text = «  »
    txtEmail1.Text = «  »
    txtEmail2.Text = «  »
    txtAdresse.Text = «  »
    txtCp.Text = «  »
    txtVille.Text = «  »
    Civilite.SetFocus
    End If
    ActiveWorkbook.Worksheets(« Carnet »).AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(« Carnet »).AutoFilter.Sort.SortFields.Add Key:=Range( _
    « B2:B » & numLigneVide), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
    With ActiveWorkbook.Worksheets(« Carnet »).AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With

    End Sub

    cordialement

  10. Michel Michel dit :

    Merci pour cette réponse rapide et efficace car ca marche
    je me permet de vous soumettre un autre problème avec les combox
    j’ai mis çà dans le code pour mes combos apres avoir créer mes liste dans une autre feuil mais çà marche pas
    Private Sub Initialize()
    TDdate = Date
    cbsexe.RowSource = (« liste!sexe ») ‘remplit la combo sexe
    cbsexe.ListIndex = -1 ‘une ligne s’afiich au lancement
    cbActif.RowSource = (« liste!actif »)
    cbActif.ListIndex = -1
    CBtypelicence.RowSource = (« liste!typelicencie ») ‘remplit la combo type de licencie

    CBtypelicence.ListIndex = -1

    End Sub
    encore merci pour votre aide

  11. admin admin dit :

    Bonjour Michel,

    Tout d’abord, l’erreur que vous avez commise se situe au niveau de la récupération des valeurs des combobox. On n’utilise pas la propriété « Text » mais « Value ». Cela donnerait donc cbsexe.value ou cbActif.value et non pas cbsexe.text

    Ensuite, vous avez oublié le signe égal sur votre ligne d’effacement de la valeur du numéro de licence. Corrigez cela en tapant txtlicence.text = «  ».

    Enfin, les combobox n’ont pas besoin d’être vidés donc vous pouvez supprimer les lignes cbsexe.text = «  », cbtypeLicencie.text = «  » et cbActif.Text. Si toutefois vous souhaitez vider une combobox dans le futur, veuillez utiliser la méthode Clear : cbActif.Clear par exemple.

    En espérant avoir résolu votre problème !

  12. Michel Michel dit :

    Bonjour,
    Très bon tuto
    Pour gerer un club de pétanque j’ai rajouter trois champs, 1 pour le n° de licence (txtlicence) 2 un champ de type combo pour le sexe (cbsexe) et le 3éme de type combo (cbactif) voilà ce que j’ai ajouter dans le code du bouton ajouter mais une un message au niveau de ces trois nouveau champs.
    voilà le code :
    Private Sub cmdAjouter_Click()
    Dim numLigneVide As Integer
    ‘On active la feuille « Liste »
    Worksheets(« Liste »).Activate
    ‘On trouve la dernière ligne vide du tableau et on enregistre le numéro de la ligne dans la variable numLigneVide
    numLigneVide = ActiveSheet.Columns(1).Find(«  »).Row
    ‘On vérifie que les champs obligatoires sont correctement remplis
    If txtNom.Text = «  » Then
    MsgBox « Veuillez remplir le nom du licencié », vbCritical, « Champs manquant »
    txtNom.SetFocus
    ElseIf txtPrenom.Text = «  » Then
    MsgBox « Veuillez remplir le prénom du licencié », vbCritical, « Champs manquant »
    txtPrenom.SetFocus
    ElseIf txtlicence.Text = «  » Then
    MsgBox « Veuillez remplir le numéro de licence », vbCritical, « Champs manquant »
    txtlicence.SetFocus
    Else
    ‘On remplit les données dans notre tableau
    ActiveSheet.Cells(numLigneVide, 1) = txtlicence.Text
    ActiveSheet.Cells(numLigneVide, 2) = txtNom.Text
    ActiveSheet.Cells(numLigneVide, 3) = txtPrenom.Text
    ActiveSheet.Cells(numLigneVide, 4) = cbsexe.Text
    ActiveSheet.Cells(numLigneVide, 5) = txtAdresse.Text
    ActiveSheet.Cells(numLigneVide, 6) = txtCP.Text
    ActiveSheet.Cells(numLigneVide, 7) = txtVille.Text
    ActiveSheet.Cells(numLigneVide, 8) = txtEmail.Text
    ActiveSheet.Cells(numLigneVide, 9) = txtTelFixe.Text
    ActiveSheet.Cells(numLigneVide, 10) = txtTelPortable.Text
    ActiveSheet.Cells(numLigneVide, 11) = cbtypeLicencie
    ActiveSheet.Cells(numLigneVide, 12) = cbActif.Text
    ‘On efface le formulaire et on replace le curseur sur le premier champs (Nom)
    txtlicence.Text «  »
    txtNom.Text = «  »
    txtPrenom.Text = «  »
    ‘cbsexe.Text «  »
    txtAdresse.Text = «  »
    txtCP.Text = «  »
    txtVille.Text = «  »
    txtEmail.Text = «  »
    txtTelFixe.Text = «  »
    txtTelPortable.Text = «  »
    cbtypeLicencie.Text «  »
    cbActif.Text
    txtNom.SetFocus
    End If
    End Sub
    je suis débutant et je voudrai qu’elle est la solution
    merci

  13. Laurence Laurence dit :

    Merci ! C’est tellement clair avec vous!

  14. BOUD BOUD dit :

    Bonsoir, super tuto merci beaucoup, certaiement le meilleur

    J’aimerai approfondir ce tuto, pour mon travail j’aurai besoin ajouté une fonction locked après la saisie de mon formulaire. Tout en concervant mon tri auto croissant de ma colonne A. JE RECHERCHE DESESPEREMENT UNE SOLUTION si vous avez une solution se serait top! dans l’attente de lire vos commentaires merci beaucoup et bonne soirée

  15. Pierre-Marie Pierre-Marie dit :

    Merci pour ces tutoriels qui m’ont permis d’approfondir mes connaissances en quelques clics…

  16. Marbasang Marbasang dit :

    Merci Alexis, cela paraît simple lorsque je vois tes manipulations, je n’ai encore jamais tenté la VBA.

    Y aurait-il possibilité d’éditer par écrit ton cours afin que je le suive, pas par pas pour mon premier essai ?

    Grand merci par avance et encore bravo !

  17. SOULEY AMINOU SOULEY AMINOU dit :

    Bjr

    je viens de voir ce site, c’est très intéressant

    Bravo c’est génial

  18. labdelila labdelila dit :

    Bien expliquer Merciiiiiiiiiiiiii

  19. olga olga dit :

    Bravo , très pédagogique, j’attend la suite avec impatience

  20. chibana chibana dit :

    Bravo pour votre investissement et la clarté des explications

  21. Ducime Ducime dit :

    C’est la classe mondiale. Merci beaucoup pour votre investissement.

    Meilleures salutations

  22. sheila sheila dit :

    Bonsoir,

    UN grand merci pour cette pédagogie je ne comprend rien à Excel et encore moins a VBA et la je peux reproduire, existerait il des livres pour les novices.? je veux pas développer mais au moins savoir lire et écrire les codes.
    Et encore merci pour cette vidéo.

  23. Cédric Cédric dit :

    Merci,
    Cette vidéo est formidable et dédramatise le VBA.
    Elle donne un exemple simple et concret qui représente un point de départ sérieux à partir duquel nous pouvons essayer de progresser par nous même.

    Félicitation

  24. Siva Siva dit :

    Bonjours Alexis

    Super demo bien détaillé, est-ce possible de télécharger dans nos PC votre tuturiel vidéo afin de revoir le demo sans passer par le net.

    Merci d’avance

    Siva

  25. Daniel Turchi Daniel Turchi dit :

    Bravo, Alexis.
    c’est un travail pédagogique de grande qualité.
    je vous remercie de votre investissement temps.
    Bien à vous,
    Daniel

  26. Clementine Clementine dit :

    Bonjour Alexis!
    Merci beaucoup pour ce tuto qui est très clair et très bien commenté !!! Une grande aide pour moi.
    Serait-il possible de continuer avec l’envoi d’un email en utilisant les adresses email du carnet que nous venons de créer ? Je dois envoyer un email à plusieurs centaines d’adresses et j’aimerais le faire à partir de mon carnet d’adresses de Excel !
    Merci pour ton aide.
    Clémentine

  27. admin admin dit :

    Bonjour à tous,

    Tout d’abord, je vous prie de m’excuser pour le retard constant que prend mon site. Ayant, comme vous vous en doutez, une vie à côté de ce site et travaillant depuis quelques mois sur une nouvelle version je n’ai pas vraiment le temps de continuer ce cas pratique qui remporte un franc succès ! La partie « Recherche » sera encore malheureusement retardée à une date indéterminée.

    Ensuite, suite à beaucoup de demandes, j’ai ajouté un lien directement sous la vidéo pour que vous puissiez télécharger le fichier original du carnet d’adresses.

    Enfin, je vous remercie encore une fois de profiter de ce site Internet et d’en parler autour de vous !

    Alexis.

  28. Pierre Pierre dit :

    Bonjour,
    Super tuto tres tres bien detaillé, c’est vraiment comprehensible .
    Serait-il possible de m’envoyer le formule de ce carnet d’adresse.
    Cdlt

  29. Bogaerts Bogaerts dit :

    Bonjour,
    j’ai apprécier votre vidéo mais je bute dans visual basic, là ou il faut rentrer les valeurs:
    Ecriture sur une feuille Excel avec VBA.
    Utilisation de structures conditionnelles IF.
    Utilisation de la fonction MSGBOX.
    Création et utilisation de variables.
    Serait-il possible de m’envoyer le formule de ce carnet d’adresse.
    En vous remercient d’avance

  30. David David dit :

    Merci pour les explications, Parallèlement j’apprends le PHP , mais j’aimerai savoir si il existe des livres avec des tuto sur le vba merci

  31. Isa Isa dit :

    Sympa, aucun souci pour adapter à ma liste. Dommage que la partie sur la commande recherche n’a pas été réalisée

  32. SPEEDERPING SPEEDERPING dit :

    Bravo et Merci….
    Tres bien expliqué, pour un débutant en VBA comme moi c’est tres util.

  33. matthieu matthieu dit :

    super démo, juste une petite question:
    après avoir inséré des lignes au dessus de nom, prénom… la recherche de la ligne vide dans la 1er colonne passe en A1 ? y a-t-il une instruction pour rechercher en dessous (ou à partir d’une ligne après A4 par exemple ?
    de même après avoir cliquer sur le bouton fermer si on relance la macros c’est le bouton « fermer » qui reste par défaut, est il possible que se soit tjr le bouton « ajouter » et que le curseur soit actif dans txtNom ?
    De toute façon c’est une grande aide pour les debutant en VBA comme moi encore merci

  34. Guillaume Guillaume dit :

    Bravo et merci pour ce tutoriel sur le carnet d’adresses.
    Après la macro sur la création de contacts, on est impatient de voir celle sur la recherche.
    encore merci

  35. Taufond Christophe Taufond Christophe dit :

    Bonjour,
    j’ai apprécier votre vidéo mais je bute dans visual basic, là ou il faut rentrer les valeurs:
    Ecriture sur une feuille Excel avec VBA.
    Utilisation de structures conditionnelles IF.
    Utilisation de la fonction MSGBOX.
    Création et utilisation de variables.
    Serait-il possible de m’envoyer le formule de ce carnet d’adresse.
    En vous remercient d’avance.

  36. gautier gautier dit :

    Merci bcp, grace à cette vidéo un gros gain de temps pour l’aprentissage.

  37. Ju Ju dit :

    Excellent, aucun soucis de réalisation.
    A quand la suite, sur le « bouton » recherche??
    Un grand merci

  38. yvan yvan dit :

    Bravo et merci pour tout, tr?®s utile, ?ßa m’a permis de me lancer un peu plus dans le vba.

  39. PERRET PERRET dit :

    Bravo pour votre investissement et la clarté des explications. Je suis formateur et j’apprécie ce travail. BRAVO !!!

  40. Bert Bert dit :

    Alexis, merci,
    Ça m’a bien aidé, tu es très pédagogue

Commenter ce tutoriel vidéo

Attention, les questions relatives aux vidéos ne seront plus traitées par le biais des commentaires. Si vous souhaitez obtenir une réponse, veuillez vous inscrire et écrire sur notre forum d'entraide ou par le biais de la messagerie instantanée. Inscrivez-vous gratuitement en quelques secondes en cliquant ici.