Exercice pour s'entrainer en VBA sur excel

Bonjour à tous,

Dans un cadre professionnel, je dois réaliser des macros sur excel. Je vais être testé la dessus et j'ai besoin de faire des exercices pour m’entraîner donc si quelqu'un connait un site avec des exos corrigés en vba je suis preneur car je n'ai pas vraiment trouvé.
J'ai suivi tous les cours sur excel-pratique.com et j'ai un niveau intermédiaire.
Vous pouvez aussi m'envoyer des fichiers sources avec des problèmes que vous avez.

Merci à tous, vous allez peut être me permettre de décrocher mon premier emploi

4 réponses

  1. Bonjour,

    Tu as appris le VBA orienté objet ou pas encore?
    0
    1. je ne connais pas le terme orienté objet mais d’après ce que j'ai vu sur internet rapidement oui.
      Je connais bien workbooks("").worksheets("").activate
      range("").select
      selection.copy
      etc etc
      J'ai déjà fait une macro qui me permet d'aller ouvrir des fichiers excel, trier les données les copier dans un autre fichier et refermer le premier fichier et ensuite faire des opérations sur ces données par exemple for i = 1 to 100 if cells(i, 3) <> 0 then ... next i
      0
    2. La ce que tu me dis, tu utilise les objets d'Excel qui sont déjà créés, moi je te parle d'en créer toi même et de bien les utilisés.
      0
    3. ah non alors, pour l'instant j'ai juste besoin de maitriser la base du VBA et d'utiliser les outils excel. Normalement c'est bon mais comme ça fait 5mois que j'en ai pas fait j'aimerai m'entrainer car j'ai un entretien avec un test la dessus
      0
  2. Salut !

    Je suis aussi dans ton cas, à savoir : j'ai besoin de m'entraîner sur les macro pour mon travail, pour aller plus vite à chaque fois que j'ai besoin d'en faire une.

    Le mieux que je puisse te conseiller, c'est quand tu as du temps libre d'essayer de résoudre les problèmes que certains exposent sur ce même forum (même s'ils ont déjà été résolus par d'autres avant, juste pour t'entraîner).

    Sinon, petit conseil perso pour ne pas oublier : fais toi un document (type OneNote cest parfait) dans lequel tu colles des bouts de code VBA qui servent très souvent. Par exemple :
    - Calculer la 1ère ligne vide d'un tableau / la dernière colonne non vide
    - obtenir l'adresse d'une cellule selon son contenu
    etc.

    Bonne continuation ;)
    0
    1. Oui merci Theo, je vais suivre tes conseils. C'est vrai qu'il y a des bouts de code qui reviennent très souvent et c'est une bonne idée de les noter quelque part.
      Bonne continuation à toi et si je trouve quelque chose d'intéressant je re-commente ta réponse pour le partager.
      0
    2. Pas de souci, j'avoue que je suis en rad' d'exo intéressants là...
      0
    3. J'ai un petit exercice pour vous, il est sympa.
      Nouvelle feuille Excel.
      Cahier des charges :

      Réaliser un chateau de cartes à l'horizontale vu qu'en diagonale je doute que ce soit possible.
      Colorier les cellules dans les rectangles en bleu pour les paires et rouge pour les impaires.
      25 cellules de hauteur pour 15 de largeur.
      Exemple

      ____|_____|______|_____|_____
      _____ |____|_____|______|_____|_____|_______
      |_____|____|_____|______|_____|_____|_______|

      ça vous force à utiliser plusieurs objet excel tout en écrivant un algorithme.
      Il est un peu long à vue de nez donc je le propose juste après c'est vous qui voyez ;)
      0
    4. @Pierre1310Sympa l'idée !

      J'ai du mal à voir en quoi l'exemple est un château de carte ô_Ô ...

      Qu'est-ce qu'un rectangle "pair" ou "impair" ? Selon la colonne ? la ligne ?
      0
    5. Selon la ligne
      0
  3. Contributeur
    Salut btsn

    un apprentissage VBA (bandit manchot): un Sept fait sauter la banque

    Dans le zip : le jeu
    2 algos: "Las Vegas" et "bandit manchot" (sous algo de "las vegas") qui indiquent le système d'exploitation (étape indispensable)

    Ci dessous code pour les applaudissements (je n'en suis pas l'auteur)
    Option Explicit
    Public music As String

    Private Declare Function PlaySound32 Lib "winmm.dll" Alias "PlaySoundA" (ByVal IpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

    Const SND_SYNC = &H0
    Const SND_ASYNC = &H1
    Const SND_FILENAME = &H20000

    ' archives mpfe
    Sub PlayWAV()

    ' snd_async: son asynchrone (la musique n'arrete pas le programme)
    If Application.CanPlaySounds Then
    Call PlaySound32(ThisWorkbook.Path & "\" & "gagné.wav", 0&, SND_ASYNC Or SND_FILENAME)
    Else
    Exit Sub
    End If

    End Sub


    0