VBA – Quelques retours.

Bonjour à tous,

Désolé pour ce long silence, j'étais en "immersion" d'enseignement avec plus d'une centaine d'étudiants formés à Excel et VBA :-).

De ces quelques semaines, voici une synthèse qui devrait vous plaire si vous faîtes un peu de programmation en VBA :

- Adoptez une nomenclature pour les noms de vos variables. Par exemple, j'essaie de toujours commencer par une abréviation du type de variable (str pour String, rge pour Range, txb pour TextBox, etc.).

- De fait, utilisez CTRL + ESPACE lorsque vous commencez à taper des instructions. Ceci permet d'afficher automatiquement la liste des valeurs possibles.

vba-ctrl-space-1

- N'oubliez pas d'utiliser les espions (clic droit sur le nom de la variable et choisir ajoutez un espion).
espions-vba

- N'oubliez pas d’arrêter l'enregistrement d'une macro. Un classique 🙂
vba-enregistrement-1

- Utilisez autant que possible des références à des noms définis plutôt que des références statiques comme A1.
Par exemple, utilisez Range("Nom") au lieu de Range("B5"), ainsi, si vous insérez des nouvelles colonnes ou lignes, la référence reste valide.

- Finalement, utilisez le "CodeName" de VBA ((Name) dans la fenêtre "propriété" pour faire référence aux noms de feuille. Ainsi, si vous renommez les feuilles dans Excel, le codename reste le même et votre code est plus robuste !
nom-feuilles-vba-1-1

Si vous voulez aller plus loin, je vous recommande mes formations VBA :

Il y a encore beaucoup de choses à apprendre et vous aurez le plaisir de les voir bientôt dans un nouveau CD 🙂

A bientôt.

Gaëtan Mourmant

Faire une recherche dans un segment (la solution)

Suite à ce précédent post, voici une solution possible en 3 points :
1/ Ajouter un deuxième tableau croisé dynamique (TCD) via un copier-coller.
2/ Si nécessaire, lier le segment à ce TCD :
tcd-segment-recherche
3/ Mettre uniquement un filtre dans le TCD et l'utiliser pour chercher dans le segment :
connexion tcd segments recherche 1

Vous pouvez télécharger le fichier ici.

Et comme disent les anglophones : "et voilà" 🙂

A bientôt.

Gaetan

Au secours, la validation des données ne fonctionne plus

Bonjour à tous,

Voici un "bug" qui m'a causé quelques sueurs froides.

Si vous regardez ce fichier, la validation ne fonctionne pas dans la première cellule, mais elle fonctionne bien dans la deuxième.

En fait, la validation est basée sur un nom défini sur une plage, laquelle plage contient une cellule vide. C'est cette cellule vide qui est à l'origine de ce comportement bizarre.

La solution consiste donc à décocher la case "ignorer si vide" et le problème disparait.

Comme ça m'a pris une petite demi-heure pour trouver la solution, je voulais la partager avec vous pour vous faire gagner du temps.

Merci au site de Contextures pour la solution : http://www.contextures.com/xlDataVal08.html

data validation 1