Exercices VBA Traitements de chaines de caractères Série 01
Sommaire
- 1- Objectifs
- 2- Exercice 01
- 2.1- Énoncé
- 2.2- Solution
- 3- Exercice 02
- 3.1- Énoncé
- 3.2- Solution
- 4- Exercice 03
- 4.1- Énoncé
- 4.2- Solution
- 5- Exercice 04
- 5.1- Énoncé
- 5.2- Solution
- 6- Exercice 05
- 6.1- Énoncé
- 6.2- Solution
- 7- Exercice 06
- 7.1- Énoncé
- 7.2- Solution
- 8- Exercice 07
- 8.1- Énoncé
- 8.2- Solution
- 9- Exercice 08
- 9.1- Énoncé
- 9.2- Solution
- 10- Exercice 09
- 10.1- Énoncé
- 10.2- Solution
- 10.2.1- Sommaire du cours Excel
Exercices VBA Traitements de chaines de caractères Série 01
-
Objectifs
- Être capable de manipuler les chaines de caractères en VBA
-
Exercice 01
-
Énoncé
- Créer un programme qui permet de récupérer les caractères (majuscule et minuscule) en fonction de ses valeurs dans un jeu de caractères, dans les deux colonnes A et B.
- La liste affichée ne doive comprendre de caractères autres que des lettres de l’alphabet (minuscule ou majuscule)
- Les lignes vides ne seront pas affichées
- Dans votre Feuille de calcul, l’utilisation ressemblera à ceci:
-
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
-
Exercice 02
-
Énoncé
- Écrire un programme VBA qui lit une chaîne de caractères saisie dans la cellule B2 et qui affiche :
- Le nombre de caractères présentes dans cette chaine dans la cellule B3.
- Le nombre de voyelles présentes au sein de cette chaine dans la cellule B4.
- Le nombre de lettres minuscules contenues dans cette chaine dans la cellule B5.
- Le nombre de lettres majuscules contenues dans cette chaine dans la cellule B6.
- L’inverse de la chaine (inverse l’ordre d’apparition des lettres dans la chaine de caractères saisie). Ainsi la chaîne « apcpedagogie » devient « eigogadepcpa ».
-
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
-
Exercice 03
-
Énoncé
- Soit 2 nombres x et y donnés par l’utilisateur, puis une lettre donnée par l’utilisateur. Si la lettre tapée est « p« , le résultat calculé par le programme vaut le produit x*y ; si la lettre tapée est « s », le résultat calculé vaut la somme x+y.
- Faire la somme de 10 nombres aléatoires : chaque nombre est le résultat d’un tirage au hasard, et la somme des nombres est calculée au fur et à mesure. Calculer ensuite la moyenne de ces nombres.
- Faire la somme de plusieurs nombres positifs en arrêtant ce calcul lors de la saisie d’un nombre négatif. Calculer ensuite la moyenne de ces nombres.
- Modifier l’exercice précédent pour que maintenant le jeu s’arrête soit lorsque l’utilisateur répond « non » à une question posée soit lorsque le nombre de réalisations de ce jeu dépasse 10.
-
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
-
Exercice 04
-
Énoncé
- Écrire un programme qui lit un mot saisie par l’utilisateur dans la cellule B2 d’une feuille de calcul Excel et dans la cellule C2 le programme propose une lettre et l’affiche.
- Le programme vérifie si la lettre est une lettre du mot. Le programme s’arrête dès qu’on a vérifié que la lettre est une lettre du mot.
- N.B Pour connaitre la longueur du mot on utilisera len(« mot ») et pour obtenir la ième lettre mid(« mot »,i,1)
-
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
-
Exercice 05
-
Énoncé
- Chercher la position d’un caractère dans une chaîne en VBA
- Écrire un programme en VBA qui demande à l’utilisateur de saisir une chaîne de caractère ch et de lui renvoyer un message indiquant si la chaîne contient la lettre ‘p’ tout en indiquant sa position dans la chaîne.
- Exemple si l’utilisateur tape la chaîne ch = "apcpedagogie" le programme lui renvoie :
- Le caractère ‘p’ se trouve à la position : 1 dans la chaîne ch
- Le caractère ‘p’ se trouve à la position : 3 dans la chaîne ch
-
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
-
Exercice 06
-
Énoncé
- Chercher le nombre d’occurrence d’un caractère dans une chaîne en VBA
- Écrire un programme en VBA qui lit une chaine de caractère saisit par l’utilisateur dans la cellule D2 (cellules fusionnées) d’une feuille de calcul Excel et de lui afficher un message indiquant le nombre d’occurrences de chaque caractère dans la chaîne.
- Le programme demande à l’utilisateur de saisir une chaine si la cellule D2 est vide et sort du procedure
- Exemple pour la chaîne de caractère ch = " apcpedagogie.com c’est une plateforme qui fournit des cours pédagogiques accessibles à tous les niveaux" le programme doit afficher :
-
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
-
Exercice 07
-
Énoncé
- Soit une chaîne de caractère chaine01 = « P@#ynMo@HameD26at^&i5ve«
- Écrire une fonction VBA qui permet de compter toutes les caractères, minuscules, majuscules, chiffres et symboles spéciaux de cette chaîne (chaine01)
- Les résultats seront affichés dans la plage B2:B4 d’une feuille de calcul excel
- Organiser les chaînes de caractères de manière à ce que les lettres minuscules viennent en premier, puis les majuscules ensuite les nombres et enfin les symboles, afficher la nouvelle chaine dans la cellule B5
- Écrire une fonction VBA qui renvoie la somme et la moyenne des chiffres qui apparaissent dans la chaîne, en ignorant tous les autres caractères, afficher le résultat dans la plage B7:B9
- Écrire une fonction VBA qui compte les occurrences de tous les caractères de cette chaîne, le résultat doit ressembler à l’exemple suivant: {‘P’: 1, ‘@’: 2, ‘2’: 1, ‘o’: 1}, afficher le résultat dans la cellule B10
- Réaliser une fonction qui permet d’inverser la chaîne donnée (chaine01) et l’afficher le résultat dans la cellule B11
- Réaliser une fonction qui permet de trouver la dernière position d’une sous-chaîne "^&i" dans cette chaîne.
-
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
-
Exercice 08
-
Énoncé
- On veut crypter une chaîne de caractères données CH dont la taille ne dépasse pas 50 caractères en une chaîne résultat Res de la manière suivante :
- Parcourir la chaîne CH de gauche à droite en comptant le nombre d’occurrences successives de chaque caractère de la chaîne CH, puis de ranger la chaîne Res, ce nombre suivi du caractère en question.
- Écrire un programme VBA permettant de lire la chaine CH qui doit être non vide et formée uniquement par des lettres alphabétiques, puis de former et d’afficher la chaîne Res selon le principe décrit précédemment.
- Exemple :
- Si CH=’aaaFyBssssssssssssazz’ alors la chaine Res qui sera affichée est ‘3a1F1y1B12s1a2z’
-
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !
-
Exercice 09
-
Énoncé
- Écrire un programme en VBA qui génère le message affiché dans la boîte de dialogue suivante:
- Les jours de la semaines sont générés automatiquement, notant que la première lettre est en majuscule.
- Utiliser la fonction
Chr()
pour insérer un retour chariot (Chr(13)) et une puce (Chr(149)) devant chaque jour de la semaine. -
Solution
- Essayez de faire l’exercice de votre côté avant de regarder la Solution !