Mémento sur la programmation en VBA pour EXCEL
Bonjour,
Je vous propose ce mémento sur la programmation en VBA pour Excel.
Citation:
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. ;)
:fleche: Retrouvez les meilleurs cours et tutoriels pour apprendre Microsoft Excel
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.
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.
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:
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... :mrgreen: )
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:
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 |
Grand merci pour ces tutoriels
Un grand merci pour ce tutoriel (il me tarde d'explorer les 2 tomes suivants) parfait pour un néophyte comme moi. :lol:
Responsable associatif, j'espère très rapidement moderniser les différents suivis obsolètes que nous possédions.
Pierre