Ma 1ère macro VBA Excel

Ma 1ere macroVous entendez souvent vos collègues ou vos amis parler de Macro Visual Basic et de programmation,  mais vous pensez que cet univers complexe n’est pas fait pour vous…

Détrompez-vous, grâce à cette leçon en deux parties, vous allez apprendre les techniques et les réflexes de base pour bien débuter sur les macros Visual Basic et Excel.

Au programme :

Partie 1

  • Introduction  VBA.
  • Les macros VBA sur Excel.
  • Activer l’anglet développeur.
  • Énoncé de l’exercice. 
  • Travaux pratiques.
  • Préparation du classeur Excel.
  • L’enregistreur de macro.
  • L’environnement VBA.
  • Copie des cellules avec une macro VBA.

Partie 2

  • Mise en forme des cellules avec une macro VBA.
  • Les variables dans une macro VBA.
  • Utiliser les conditions « Si » dans une macro VBA.
  • Utiliser la boucle « Tant que » dans une macro VBA.
  • Attribuer une formule à une cellule avec une macro VBA.
  • Créer un bouton pour exécuter une macro VBA.

Télécharger le fichier Excel de la leçon et les raccourcis clavier Excel.

Télécharger le PDF de la leçon.






TAGS: , , , ,

83 Comments

  1. yaclim dit :

    Franchement bravo 🙂 et merci bcp

  2. hassan dit :

    Très bonne explication. Merci

  3. omar dit :

    merciiiiii tr fooort

  4. simcorp dit :

    Vraiment sympa t cours ! je bosse actuellement en banque depuis quelques mois (étudiant à dauphine)… et j’ai souvent besoin d’automatiser des tâches…je galèrais parce que j’allais pas au cours d’info à la fac jusqu’au jour où…j’ai découvert t tuto!!

    merci Kamel tu es un BRAVE du net 😉

  5. Brice dit :

    Super.
    Sauf la partie ctrl+Shift qui ne s’enregistre pas dans ma macro.
    Je suis sur mac.
    Une idée ?
    Merci!

    • LES PROS DE LA SOURIS dit :

      Merci Brice,
      Effectivement il y a quelques bugs sur la version MAC !!
      Pour éditer les macros, je vous conseille de travailler sur la version PC…
      Bon courage.

      • Ouas dit :

        Bonjour, je suis ultra novice en la matière.
        j’ai une version anglaise d’excel (que je souhaite pas changer), je voudrai donc connaitre la traduction exacte de « finligne » et de « numeroligne », sachant aue last row et rownumber ne fonctionnent pas. du coup je suis bloquée pour la la macro couleurs.

        Merci!

    • Fabian dit :

      Salut,
      à la place de ctrl il faut faire « pomme »

  6. marc dit :

    superbe démonstration cela m’aide régulièrement , par contre vous avez fait une boucle tant que ligne par ligne , mais pourriez vous continuer la macro avec une boucle pour incrémenté une colonne
    Sinon superb
    cordialement

  7. Manu dit :

    Merci beaucoup Kamel
    Cordialement

  8. kahina dit :

    mille merci kamel, c’est une super explication, vous expliquez mille fois mieux que mon prof de fac,

  9. JR dit :

    Bonjour,

    J’apprécie votre site internet qui permet d’aborder des thèmes compliqués de façon très simple et ainsi de décomplexer les personnes face aux différentes problématiques.
    Avez-vous eu assez de demandes afin de pouvoir créer une vidéo concernant la création de base de données sur ACCESS avec formulaires, créations d’états et autres ?

    Merci encore pour votre compétence et votre disponibilité.

    Cordialement,

    Jean-René

    • LES PROS DE LA SOURIS dit :

      Bonjour Jean-René,

      Merci pour l’intérêt que vous portez à mes vidéos ..!

      J’ai bien prévu une série de vidéos pour Access…. J’espère avoir le temps de les réalisées prochainement.

      Bonne continuation et encore merci.

      Kamel.

  10. mmakkour dit :

    Merci beaucoup Kamel. vous expliquer d’une manière très facile merci une 2eme fois pour ces cours important

  11. Rachid dit :

    merci pour votre explication facile

  12. djebbar dit :

    merci pour l explication mais je n arrive pas a distinguer rcomment vous avez écris la variable findeligne=???

    • LES PROS DE LA SOURIS dit :

      Bonjour,

      Vous avez la possibilité de télécharger le fichier Excel sur le site pour avoir toutes les infos !

  13. Godefroid dit :

    C’est le tuto le plus didactique que j’ai vu sur le sujet jusqu’à présent. Bravo!

  14. moha dit :

    parfait bonne continuation.

  15. cécile dit :

    Merci beaucoup pour ces cours ! ils m’ont permis de décrocher mon stage de fin d’études !

  16. Nora dit :

    Bonjour Kamel,

    merci bcp pour ce super site, je voudrais savoir quel logiciel utilisez vous pour l’effet zoom, merci encore une fois et bonne continuation.

    • LES PROS DE LA SOURIS dit :

      Bonjour Nora,
      Merci à vous aussi !!
      Moi J’utilise « Screenflow » (Mac), pour moi c’est le meilleur ! Il doit avoir son équivalent sur windows…
      Bonne journée

  17. Mohammed karim dit :

    Salem , franchement bravo . merci

  18. Catherine dit :

    Un grand merci

    Il m’a fallu atteindre l’âge de 54 ans pour comprendre les macros.
    Bravo!!

  19. eyeman dit :

    Merciiiiiiiiiiiiiiiiiiiiiiiiiii 😀

  20. DRISS dit :

    Merci,c’est très simples d’apprendre avec toi tout est claire et bien présenté. bonne continuation

  21. IBENCHANEB dit :

    Vraiment je me trouve bien avec vos vidéos, merci beaucoup pour vos efforts.
    Je voudrais savoir s’il y a une autre façon de faire des relations entre les feuilles de calcul Excel.
    Merci d’avance

  22. said dit :

    salut , y a une petit suci , chaque fois que j’excute le Sub Somme()
    , il ajoute nouveau cellue avec la somme de lancienne cellule.

  23. slim025 dit :

    Bonjour,

    Je vous remercie pour ces tutoriels.
    Je souhaiterai savoir comment on fait pour vérifier toutes les cellules.
    Exemple : Si dans le fichier il y a des lignes vides au milieux.
    Donc, cette méthode ne fonctionne pas, il faut écrire un code qui nous permets de vérifier toutes les cellules des lignes, jusqu’à ce qu’il n’y aurait plus de valeur.

    Je vous remercie par avance.

    Bien cordialement.

  24. JEAN-CLAUDE dit :

    Bonjour,
    Merci pour votre tutoriel très pédagogique qui permet de débuter en VBA.
    Bien cordialement

  25. maacu6038 dit :

    Il n’y a pas de nul.
    Merci pour la clarté des explications.

  26. Bebs dit :

    Je ne peux que vous féliciter de la qualité des vidéos et surtout de la superbe façon d’expliquer les applications, il ne manque aucun détail.
    Bravo
    Bravo
    Bravo

  27. didi dit :

    bonjour,
    avant tout, je vous félicite pour ce boulot magnifique que vous faites,
    j’ai trouvé particulière le tuto ‘ma première macro ‘ très riche. J’aimerai savoir comment on procède pour placer le raccourcis du tableau final que vous avez mis juste au dessous de la barre de formule. Le tableau avec lequel on clic sur ‘+’ pour l’afficher et ‘-‘ pour le cacher. merci.

  28. charles dit :

    Bonjour,
    j’ai suivi avec intérêt vos tutos et j’ai commencé à créer un logiciel de pré-inscription des élèves dans un collège d’enseignement. J’ai pu créer déjà trois forms (fenêtres) en Visual Basic munis de textebox, combobox,…….. et je voudrais afficher les informations de ces trois forms à la fin d’un enregistrement en vue de modification ou d’impression.
    Aidez moi SVP!

  29. Joël morand dit :

    trop fort ! explication claire et précise ! merci

    peut-on espérer avoir le même type de tutoriel pour access?

    merci d’avance

  30. geek2014 dit :

    merci pour ce superbe tuto

  31. med dit :

    bonjour Je vous remercie pour ces tutoriels et Je souhaiterai de m’aider à faire un petite exercice sur VBA

  32. Yacine dit :

    Clair, précis, pratique! Vous-avez un belle manière d’enseigner, merci beaucoup !

  33. Dindin dit :

    Merci beaucoup, c’est très pédagogique !

  34. Lexx Tovo dit :

    Merci à vous pour ces 2 tutos

  35. municipum dit :

    bonjour, et merci pour ce magnifique travail.
    je profite l’occasion pour vos poser mon probleme.
    je dois copier tous les donnees d’une feuille1 du classeur « donnees » vers la feuille « importees » d’un classeur « final ».

    voici le code:

    Sub import1()

    ‘ import1 Macro

    Windows(« donnees.xlsm »).Activate
    Sheets(« incidents »).Select
    Rows(« 2:2 »).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

    Windows(« final.xlsm »).Activate
    Sheets(« importees »).Select
    Derniereligne = ActiveSheet.UsedRange.Rows.Count + 1
    Range(« A » & Derniereligne).Select
    ActiveSheet.Paste

    End Sub

    la première fois que j’ai exécuté ce code c’était bien,le problème c’est que, depuis que j’ai effacé les données de la feuille « importees » du classeur « final » et que j’exécute a nouveau le code, il me colle les données dans la 1ere cellule vide après ma première exécution de cette macro.
    ex:
    1ere exécution de la macro, ca m’a coller 200 lignes a partir de la cellule « A2 » ( la 1ere ligne contient l’entête).
    j’efface ces donnees (sans l’entete), et j’execute encore une fois la macro, elle me les colle a partir de la cellule 202.
    j’efface a nouveau et j’execute la macro, elle me colle les donnees dans la cellule (202+200). c’est comme ci elle garde en memoire le chiffre 200 qui sont les 200 lignes de donnees de la 1ere execution.
    merci pour votre aide.

    • municipum dit :

      Erratum: ci-dessous le code, le premier est avec un prob de caracteres speciaux.
      bonjour, et merci pour ce magnifique travail.
      j’ai un probleme avec ma macro
      je dois copier tous les donnees d’une feuille1 du classeur « donnees » vers la feuille « importees » d’un classeur « final ».

      voici le code:

      Sub import1()

      ‘ import1 Macro

      Windows(« donnees.xlsm »).Activate
      Sheets(« incidents »).Select
      Rows(« 2:2″).Select
      Range(Selection, Selection.End(xlDown)).Select
      Selection.Copy

      Windows(« final.xlsm »).Activate
      Sheets(« importees »).Select
      Derniereligne = ActiveSheet.UsedRange.Rows.Count + 1
      Range(« A » & Derniereligne).Select
      ActiveSheet.Paste

      End Sub

      la première fois que j’ai exécuté ce code c’était bien,le problème c’est que, depuis que j’ai effacé les données de la feuille « importees » du classeur « final » et que j’exécute a nouveau le code, il me colle les données dans la 1ere cellule vide après ma première exécution de cette macro.
      ex:
      1ere exécution de la macro, ca m’a coller 200 lignes a partir de la cellule « A2″ ( la 1ere ligne contient l’entête).
      j’efface ces donnees (sans l’entete), et j’execute encore une fois la macro, elle me les colle a partir de la cellule 202.
      j’efface a nouveau et j’execute la macro, elle me colle les donnees dans la cellule (202+200). c’est comme ci elle garde en memoire le chiffre 200 qui sont les 200 lignes de donnees de la 1ere execution.
      merci pour votre aide.

  36. Samia dit :

    Je ne sais comment vous remercier !
    J’avais peur de ne jamais être prête pour mon stage début Janvier dans une banque mais grâce à vous je suis plus sereine. Vidéos expliquées de façon très pédagogue.
    Encore merci!

  37. Henri dit :

    Bravo, merci pour cette démo très claire et très pédagogue.
    Pour compléter celle-ci pourriez-vous m’indiquer comment, par exemple,
    dans cette démo on pourrait calculer la somme totale de chaque pays.

  38. Abdel-Tarik dit :

    Bonjour Kamel,

    D’abord un grand merci pour vos explications claires et simples.

    J’ai refait chaque macro, mais j’ai un message d’erreur (erreur de compilation / variable non définie)
    Cela apparaît au niveau de FinLingne.

    J’ai même désactivé « déclaration des variables obligatoires » mais le message apparaît quand même.

    Je pense que c’est un message logique vu que je n’ai pas déclaré ma variable…

    Merci d’avance pour votre aide

    Tarik

  39. Abdel-Tarik dit :

    Bonjour Kamel,

    Le message n’apparaît plus !

    Merci
    Tarik

  40. Antoine dit :

    Bonjour,

    J’ai créé une macro qui fonctionne bien mais j’ai encore quelques questions pourriez m’aider, svp ?

  41. Dali dit :

    Merci beaucoup pour ce tutoriel .
    vraiment très simple à comprendre, et votre méthode pédagogique attire l’attention , encore merci Kamel

  42. kolamou augustin dit :

    je veux apprendre excel aidez moi Mr. comment s’inscrire?

  43. kimbole dit :

    tres bonne explication

  44. kimbole dit :

    mais et la deuxieme partie

  45. soufiane benziane dit :

    Bonjour Merci pour ce tutoriel excellent travail
    la question que j’ai a vous poser c’est comment utiliser la macro pour des etudes statistiques avancées tels l’échantillonnage la modélisation etc. ou pour des analyse financières
    Par avance merci

    • LES PROS DE LA SOURIS dit :

      Bonjour merci à vous aussi !!
      Commencez par définir vos sources de données, ensuite créez une ou plusieurs macros pour faire les traitements et enfin créer par exemple un bouton qui exécute votre macro ..!
      Pour des traitements complexes je vous conseille de commencer sur un brouillon en papier pour bien structuré votre travail !
      Bonne continuation.
      Kamel.

    • kolamou augustin dit :

      merci mr j’ai bien profiter des cours que vous m’aviez envoyé je compte sur vous pour un cour complet sur les macros. merci

  46. Seba dit :

    SVP aidez moi!!! tout d’abord un grand merci pour vos explications.
    J’essaye de créer une macro qui va créer des dossiers à partir d’une liste qui se trouve dans la colonne D
    avec la commande mkDir je suis incapable de continuer pouvez-vous m’aider svp???!!!
    Voilà le début de code que j’ai fait
    Merci d’avance!

    Public Sub Créer_reps()
    Dim col As Integer, lig As Long, mxc As Integer, rep As String, nbc(), mes As String
    Dim CHX As FileDialog ‘ selection Repertoire
    Set CHX = Application.FileDialog(msoFileDialogFolderPicker)
    CHX.Show

    Range(« D1 »).Select
    Range(selection, selection.End(xlDown)).Select

    End Sub

  47. manon dit :

    Bonjour;

    Ca serait trés aimable à vous de m’aider à résoudre mon probléme:

    1-tracer avec une macro une courbe a partir de données qui se trouve sur une feuille excel et l’afficher sur une interface vba
    2-faire une macro pour récuperer un point x sur la courbe en connaissant y sachant que x et y ne sont as forcement dans mon tableau de données voici un exemple:
    t=1 3 6 8 7
    v=10 30 60 70
    j’aimerai tracer la courbe v(t) sur une interface vba et quand l’utilisateur entre v=33(il n’est pas dans le tableau ci-dessus) alors la macro me retourne la valeur lui correpondant ici c’est une valeur entre 6 et 8.

    Merci beaucoup

  48. caro23 dit :

    Je voulais vous remercier de cette leçon fort bien expliquée. Je vais devenir une adepte de votre site. Encore bravo et merci beaucoup!

  49. diego dit :

    bonjour ,

    Je suis très satisfait de vos leçon ,j apprend ,et les explications sont précise et clair

    Je suis les étapes de ma première macro
    et mon problème est le suivant

    Sub couleur_Ligne()

    If Range(« A2 »).Value = « france » Then Range(« A2:D2 »).Interior.Color = 65535
    If Range(« A2 »).Value = « Belgique » Then Range(« A2:D2 »).Interior.Color = 5296274
    If Range(« A2 »).Value = « Maroc » Then Range(« A2:D2 »).Interior.Color = 255
    If Range(« A2 »).Value = « suisse » Then Range(« A2:D2 »).Interior.Color = 15773696

    ‘Range(« A2:D2 »).Interior.Color = 65535
    ‘Range(« A3:D3 »).Interior.Color = 5296274
    ‘Range(« A4:D4 »).Interior.Color = 255
    ‘Range(« A5:D5 »).Interior.Color = 15773696

    End Sub

    lorsque je fais exécuté rien ne ce passe pourquoi ???
    merci de votre aide 

    • gaston85 dit :

      Diego, je suis un débutant, je n’ai jamais fait de programation mais j’ai remarquer que tu a placé un guillemet français suivi d’un guillemet anglais.
      If Range(« A2″).Value = « france » Then Range(« A2:D2″).Interior.Color = 65535
      Il aurait fallu tapper :
      If Range( » A2″).Value = « france » Then Range( » A2:D2″).Interior.Color = 65535 et comme tu a recopier tu a la même erreur à chaque ligne.
      Mais renseigne toi au près des pros de la souris

      • gaston85 dit :

        J’ai oublier de corriger les guillemets excuse moi
        If Range( » A2″).Value = « france » Then Range( » A2:D2″).Interior.Color = 65535

        • gaston85 dit :

          Je suis désolé mais je tape bien les guillement « anglais » mais cela ne les prend pas.il faut tapper le même signe que tu as à droite du A « 

  50. Pierre dit :

    Bonjour,
    j’aimerai créer une macro, pour ranger toutes les sommes dans une feuille ayant le même numéro de plan comptable dans une autre feuille classées par numéro de plan comptable.

    Je manque d’éléments suite a vos vidéo VBA (très bien faite).

    merci pour votre aide

    Pierre

  51. Mounir dit :

    Si Kamel, Bravo et merci pour tout ce que vous faites pour nous faciliter la vie. Je voudrais bien savoir quel est le logiciel que vous utilisez pour la présentation de ces tutos? est-ce gratuit ou pas? je pense que son utilisation devra faire l’objet d’un certain nombre de tutos à nous offrir si votre temps le permet.
    Merci d’avance.
    Mounir

  52. jojo66 dit :

    Bonjour,
    Il y a près de trente ans que j’utilise « Excel » et je suis tombé par hasard sur une de vos vidéos « ma 1ère Macro ».
    Je me dois de vous faire savoir que j’ai énormément apprécié la qualité de vos explications. Elles « transpirent » le soucis pédagogique et je tiens à vous en féliciter. Surtout continuez car la société a besoin de personnes comme vous ayant le souci de transmettre leur savoir et leurs connaissances en essayant de se mettre la portée du plus grand nombre.
    Chapeau!!!
    Surtout continuez tant que vous le pourrez.
    Merci beaucoup.
    Jojo66

  53. Robert Plouffe dit :

    Merci beaucoup la vulgarisation est très bien faite félicitation
    et encore BRAVO!

    p.s. : vous êtes très généreux…

  54. céline dit :

    Bonjour,

    Merci bcp pour ce tutoriel!! Ca fait un moment que je regardais des tuto macro et avec votre tutoriel, j’ai mieux compris la logique car c’est vraiment bien expliqué!

  55. razak33 dit :

    Grand merci
    bravo

  56. wolni dit :

    Bonjour Kamel.et d’entrée Grand Bravo
    J’ai 78 ans et entre nous je ne veux pas mourir idiot.
    Votre formation à VBA est une merveille, je bois du petit lait à regarder et m’instruire de la chose.
    Permettez moi une question. Existe t’il un bouquin permettant dxe parfaire ce que vous enseignez sur votre blog et pour ne pas vous solliciter, vous avez bien d’autres choses à faire, je n’en doute pas .
    Ah aussi une autre question, tous les sujets que vous avez traités sont ils sur ce blog (ou site)
    En vous renouvelant mes félicitations.
    Bravo. Cordialement
    wolni

  57. Mounir dit :

    Si Kamel, excusez-moi mais quel logiciel utilisez-vous pour préparer ces vidéos? gratuit ou pas?
    Merci.
    Mounir

  58. Yanick dit :

    Soyez béni.
    Vous nous donnez une occasion de se former à son rythme et gratuitement. C’est une manne.

  59. messaadia dit :

    je vous remercie beaucoup pour vos énormes effort

  60. messaadia dit :

    je vous remercie beaucoup pour vos énormes effort,le problème persiste dans l’etape de coloration

  61. hoxam dit :

    Bonjour

    j’ai besoin de votre aide pour coller le contenu d’une ou plusieurs feuilles sur une feuille consolidation svp

    merci d’avance

  62. Maadjou dit :

    Le video m’a baucoup aidé
    c’est très bien expliqué
    merci.
    lorsque je met en pratique ça donne mais après la fermeture du classeur
    le macro ne donne pas.
    je voudrai que vous m’expliquer comment faire pour que j’utilise le macro après ou dans une autre classeur
    merci

  63. Edi dit :

    Je tien a vous remercié vivement du travail que vous fait, ça ma donner une formation du VBA que je ne connaissais pas.
    J’ai une question a vous poser. Est ce que je peu crée une application avec est que sa soit sep parer d ‘Exel?

    Merci pour votre collaboration et votre effort.

  64. Fabian dit :

    Bonjour Kamel,

    Excellent, rien à rajouter!

    Moi qui n’en n’avait jamais fait, c’est la première fois que je vois une présentation aussi claire sur le sujet et avec une vitesse qui permet de bien digérer les infos!

    Bravo pour votre patience

    Salutations

  65. rado dit :

    Je vous félicite monsieur pour la qualité de votre leçon, aussi bien sur le coté pédagogique que sur celui de l’utilité, alors bravo et je vous en remercie d’avantage
    salutations

  66. T-unsyo dit :

    Merci beaucoup Kamal pour ce toto très pédagogue.
    Vous refaites gagner espoir aux débutants !

    Que Dieu vous bénisse en ce mois béni

LAISSER UN COMMENTAIRE