IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mémento sur la programmation en VBA pour EXCEL [Tutoriel]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 020
    Par défaut Mémento sur la programmation en VBA pour EXCEL
    Bonjour,
    Je vous propose ce mémento sur la programmation en VBA pour Excel.

    Il s'agit d'une compilation d'exemples pratiques pour apprendre la programmation en Microsoft Office Excel avec VBA.
    Vous allez aussi apprendre des exemples d'Excel avec les autres composants de Microsoft Office tels que Outlook et Access.

    C'est un cours qui peut servir de support de formation pratique pour apprendre la programmation VBA sous Microsoft Office Excel. Les exemples sont en Excel 2010, mais peuvent être adaptés pour les versions récentes : Excel 2013 et Excel 2016.
    Bonne lecture et n'hésitez pas à apporter vos commentaires.


    Retrouvez les meilleurs cours et tutoriels pour apprendre Microsoft Excel

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 226
    Par défaut
    Merci pour ce Mémento,

    Vraiment bien fait, ça permet de revoir les fondamentaux .

    Bonne continuation.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Par défaut
    Super bien fait !! Bravo et merci

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    bravo !!!, je crois que je vais m'y attarder dès que possible
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 020
    Par défaut
    Pour plus d'informations sur la compatibilité des API avec windows 64 bits je vous invite à lire l'excellente documentation de Thierry Gasperment : Développer avec office 64 bits.
    Cordialement.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Par défaut Pb avec programme final sur mesbonbon et mes scoubidous
    Bonjour ,
    C est mon premier post sur ce forum que je consulte trés souvent.
    Je programme un peu maladroitement et j aimerias me structurer et donc je reprends les bases .

    Dans la fonction CompterPoche du tuto Apprendre la programmation en VBA pour EXCEL par la pratique - Première partie , je ne retrouve pas les variables publics MesBonbon et MesScoubidou. On a NbBonbon = NbBonbon + 1 . N'ai je rien compris ou y a-t-il un pb de copier/coller dans ce tuto ?

    A tout cas merci pour ce tuto que je vais continuer a lire.

  7. #7
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 020
    Par défaut
    Si nous parlons du même code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Option Explicit
     
    Dim MesBonbon As Long    ' Variable numérique qui contiendra le nombre de bonbons
    Dim MesScoubidou As Long ' Variable numérique qui contiendra le nombre de scoubidous
     
    Sub CompterLeCartable()
     
    Call CompterPoche(3)  ' Alimente MesBonbon et MesScoubidou
     
    MsgBox "J'ai " & MesBonbon & " bonbons et " _
            & MesScoubidou & " scoubidous dans mon cartable."
     
    End Sub
     
     
    Function CompterPoche(MaColonne As Long) As Long
     
    Dim Ligne As Long               ' Variable numérique pour balayer les lignes de la feuille.
    Ligne = 1                       ' Initialise Ligne à 1
    MesBonbon = 0: MesScoubidou = 0 ' Variables mises à zéro par sécurité.
     
    While Cells(Ligne, MaColonne) <> ""  ' Tant que cellule(y,x) n'est pas vide.
     
        CompterPoche = CompterPoche + 1 ' Incrémente le nombre d'éléments trouvés.
        If Cells(Ligne, MaColonne) = "x" Then NbBonbon = NbBonbon + 1       ' Les bonbons.
        If Cells(Ligne, MaColonne) = "s" Then NbScoubidou = NbScoubidou + 1 ' Les scoubidous.
        Ligne = Ligne + 1 ' Passe à la ligne suivante.
     
    Wend
     
    End Function
    Les variables MesBonbon et MesScoubidou sont déclarées en début du module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim MesBonbon As Long    ' Variable numérique qui contiendra le nombre de bonbons
    Dim MesScoubidou As Long ' Variable numérique qui contiendra le nombre de scoubidous
    Par cette déclaration en début du module, la portée des variables s'étend à l'ensemble des procédures du module.

  8. #8
    Invité de passage
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 1
    Par défaut Pb avec programme final sur mesbonbon et mes scoubidous
    Bonjour
    Je débute également avec VBA, et suis pas à pas ce tuto très intéressant

    En fait, le problème soulevé par Bernardassyst vient des lignes 25 et 26 :
    Il faut renommer les variables NbBonbon et NbScoubidou (que l'on avait créées précédemment comme argument facultatif pour modifier la fonction CompterPoche) en : MesBonbon et MesScoubidou, qui elles, sont bien déclarées.
    Cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    While Cells(Ligne, MaColonne) <> ""  ' Tant que cellule(y,x) n'est pas vide.
     
        CompterPoche = CompterPoche + 1 ' Incrémente le nombre d'éléments trouvés.
        If Cells(Ligne, MaColonne) = "x" Then MesBonbon = MesBonbon + 1       ' Les bonbons.
        If Cells(Ligne, MaColonne) = "s" Then MesScoubidou = MesScoubidou + 1 ' Les scoubidous.
        Ligne = Ligne + 1 ' Passe à la ligne suivante.
     
    Wend
    Et là, ça refonctionne !

    (sauf erreur ou omission... )

  9. #9
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 020
    Par défaut Tome 1 - Coquille dans le code exemple
    Mea-culpa, effectivement il y a une coquille dans le code. Bravo à vous deux (bernardassyst et difilisyl) qui l’avez vue. Ça prouve qu’il y a au moins deux lecteurs. Bonne continuation dans votre apprentissage du VBA, et rendez-vous dans le tome 2 qui est bien plus ludique et vous permettra de mettre en application vos connaissances pour faire autre chose que de l’EXCEL avec EXCEL.
    Le code correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Option Explicit
     
    Dim MesBonbon As Long    ' Variable numérique qui contiendra le nombre de bonbons
    Dim MesScoubidou As Long ' Variable numérique qui contiendra le nombre de scoubidous
     
    Sub CompterLeCartable()
     
    Call CompterPoche(3)  ' Alimente MesBonbon et MesScoubidou
     
    MsgBox "J'ai " & MesBonbon & " bonbons et " _
            & MesScoubidou & " scoubidous dans mon cartable."
     
    End Sub
     
    Function CompterPoche(MaColonne As Long) As Long
     
    Dim Ligne As Long               ' Variable numérique pour balayer les lignes de la feuille.
    Ligne = 1                       ' Initialise Ligne à 1
    MesBonbon = 0: MesScoubidou = 0 ' Variables mises à zéro par sécurité.
     
    While Cells(Ligne, MaColonne) <> ""  ' Tant Que cellule(y,x) n'est pas vide.
     
        CompterPoche = CompterPoche + 1 ' Incrémente le nombre d'éléments trouvés.
        If Cells(Ligne, MaColonne) = "x" Then MesBonbon = MesBonbon + 1         ' Les bonbons.
        If Cells(Ligne, MaColonne) = "s" Then MesScoubidou = MesScoubidou + 1   ' Les scoubidous.
        Ligne = Ligne + 1 ' Passe à la ligne suivante.
     
    Wend
     
    End Function

  10. #10
    Nouveau candidat au Club
    Femme Profil pro
    Assistante de gestion
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Assistante de gestion
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Par défaut
    Citation Envoyé par bernardassyst Voir le message
    Bonjour ,
    C est mon premier post sur ce forum que je consulte trés souvent.
    Je programme un peu maladroitement et j aimerias me structurer et donc je reprends les bases .

    Dans la fonction CompterPoche du tuto Apprendre la programmation en VBA pour EXCEL par la pratique - Première partie , je ne retrouve pas les variables publics MesBonbon et MesScoubidou. On a NbBonbon = NbBonbon + 1 . N'ai je rien compris ou y a-t-il un pb de copier/coller dans ce tuto ?

    A tout cas merci pour ce tuto que je vais continuer a lire.
    Bonjour,
    Pour répondre à ta question, voici les étapes à faire :
    - ouvrir un classeur Excel
    - sélectionner dans le ruban "Développeur"
    - cliquer sur l'icône "Visual Basic" en haut à gauche
    - se positionner sur "Feuille 1" qui se trouve dans la colonne de gauche, faire un clique droit, se positionner sur "Insertion" puis sélectionner "Module"
    - la page "Module 1" apparaît
    - dans le module 1 il y a un ruban qui se trouve en haut, tu as " Fichier", "Edition", Affichage", "Insertion", "Format", etc...
    - cliquer sur "Insertion" puis choisir "Procédure" , une fenêtre apparait où l'on peut nommer la procédure en complétant la case "Nom:", choisir le type "Sub", "Function" ou "Property" et sélection la portée " Public" ou "Private".
    Dans le cas du mémento, tu aura juste à nommer la procédure par "CompterMesBonbons" puis valider par OK.
    Voilà pour le début.

  11. #11
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 020
    Par défaut
    Bonjour à tous,

    j'ai le plaisir de vous présenter le tome 2 de ce mémento qui aborde la programmation en mode graphique avec un cas de programmation d'un jeu d'arcade en VBA et Microsoft Excel.

    Dans le tome 1, nous avons étudié les bases de la programmation d'EXCEL en VBA. Ce tome 2 est consacré à une partie plus ludique : la programmation en mode graphique.

    Mais pourquoi programmer en mode graphique ? Imaginez que vous puissiez maîtriser chacun des pixels de votre écran, afficher des images, gérer des animations… Vous devinez toute la richesse qu'une programmation en mode graphique peut vous apporter. Certes, pas dans une application ordinaire, mais pour un jeu d'arcade, c'est l'outil idéal qui vous manquait pour laisser libre cours à votre imagination.

    Bonne lecture et n'hésitez pas à apporter vos commentaires

    Retrouvez les meilleurs cours et tutoriels pour apprendre Microsoft Excel

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Très intéressant, mais il est dommage qu'il n'y ait pas une image pour chaque code expliqué pour voir le résultat.

    Philippe

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    gestionnaire de flotte
    Inscrit en
    Septembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : gestionnaire de flotte

    Informations forums :
    Inscription : Septembre 2016
    Messages : 6
    Par défaut bloqué sur apprendre la programmation en VBA - TOME 1 - chapitre VII
    Bonjour,
    je m 'initie à VBA pour la 1ere fois de ma vie. j'ai découvert ce site et je te trouve très bien.
    Mon problème est que je suis bloqué au chapitre VII sur un exercice de triage de données.
    Dans un 1er exemple,L'auteur utilise un 1er programme couplé avec une fonction => pas de problème
    ensuite dans un 2éme , il combine la même fonction dans le même programme pour travailler plus rapidement et dans le 3éme il utilise quicksort combiné dans un programme.

    Mon problème est que je ne sais pas pourquoi mais les programmes 2 & 3 ne sont pas reconnus comme des programmes impossible de les utiliser.
    j'ai copier mot pour mot les programme rien à faire.
    Pour moi cela vient des parenthèses remplie avec des références dans le nom du programme.
    Comment puis-je me corriger ?

    Merci de votre aide.

Discussions similaires

  1. [VBA pour Excel] Différence entre activate et select
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/10/2008, 17h20
  2. [VBA-E] Help création d'un programme vba pour excel
    Par yampi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/01/2007, 11h46
  3. [VBA-E] tri sur VBA pour Excel
    Par mariedrouin dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/05/2006, 13h32
  4. Réaliser une macro en VBA pour excel afin de créer un graphe
    Par xavier le breuil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo