• VBA Excel – Comment remplacer des formules par leur résultat

    Nous sommes régulièrement amenés à remplacer une plage de cellules contenant des formules par leur résultat. Autrement dit un Copier/Collage spécial – Valeur. En VBA, après avoir éventuellement utiliser l’enregistreur de macros pour nous aider, nous aurions tendance à utiliser ce code. Exemple pour la page A1:H100 de la feuille nommée Feuil1

    L’astuce consiste à utiliser la propriété Value de l’objet Range

     

    [Lire plus...]
  • Comment incrémenter le nom d’une feuille Excel, lorsqu’il existe déjà ?

    Créer une feuille et la renommer Lorsque l’on crée dynamiquement une feuille dans un classeur Excel à l’aide de l’instruction

    et que l’on souhaite lui attribuer un nom particulier, par exemple le texte CA suivi de l’année et du numéro du mois en cours

    il est possible que ce nom existe déjà et dans ce cas une erreur sera générée Nous pourrions intercepter l’erreur en l’ignorant, comme l’illustre le code ci-dessous

    Ce qui aura pour effet d’éviter l’affichage du message d’erreur mais qui nous laissera la feuille récemment créée avec son nom incrémenté comme par exemple Feuil7

    [Lire plus...]
  • Comment mettre en couleur des mots se trouvant dans une plage de cellules ?

    Mettez en évidence des mots contenus dans une plage de cellules. Lorsque l’on sélectionne une ou plusieurs cellules, il est possible de mettre la police de la valeur contenue dans ces cellules dans une couleur choisie; Il est possible également de mettre dans une certaine couleur un ou plusieurs mots contenu dans cette cellule. Pour cela, il suffit de sélectionner le mot et choisir sa police. Ce que je vous propose dans ce billet, c’est de le faire à l’aide d’une procédure VBA. Le code de la procédure

    Exemple d’une procédure d’appel

    Liens Je vous conseille la lecture

    [Lire plus...]
  • VBA Excel – Fonction qui renvoie une liste de données résultant d’une requête SQL dans Access

    Introduction Je vous propose une petite procédure qui importe le résultat d’une requête faite sur une base de données Access dans une feuille Excel. Cette requête est exécutée par une fonction nommée QueryAccess qui renvoie une table contenant le résultat d’une requête faite sur une base de données Access. Les arguments utilisés dans la fonction dbFullName de type String, contient le chemin complet + le nom de la base de données. SqlQuery de type String, contient la requête SQL. [WithLabel] de type booléen, argument facultatif, True ou omis renvoie les étiquettes de colonnes Le code de la procédure

     

    [Lire plus...]
  • Excel VBA – Exporter des lignes suivant critères avec la méthode AdvancedFilter

    Avant-Propos Lorsque l’on doit exporter des données suivant des critères, la solution la plus simple à mettre en place et la plus rapide au niveau exécution est l’utilisation des filtres avancés d’excel soit en VBA la méthode AdvancedFilter de l’objet Range. Scénario : Nous souhaitons exporter les données se trouvant en cellules A1:F261 de la feuille nommée [db] vers la feuille nommée [Export] avec les critères se trouvant en cellules A1:B3 de la feuille nommée [Param] Si vous ne connaissez pas les filtres avancés d’excel, je vous invite à lire ce didacticiel  Les filtres avancés ou élaborés dans Excel Code

    [Lire plus...]
  • Excel VBA – Supprimer des lignes suivant critères avec la méthode AdvancedFilter

    Je vous propose cette semaine, une fonction qui vous permettra de supprimer les lignes d’une liste de données suivant les critères que vous aurez choisi comme par exemple toutes les personnes Célibataires, gagnant plus de 2.500€. Cette fonction est basée sur la méthode AdvancedFilter. La méthode AdvancedFilter d’un objet Range permet d’effectuer énormément d’opération en VBA et ce avec un minimum de lignes de code. Cette méthode est issue de la fonctionnalité des filtres avancés d’excel qui permettent une multitude d’opérations telles que l’exportation de données suivant des critères, l’extraction sans doublons, etc. SI vous ne connaissez pas les filtres

    [Lire plus...]
  • A l’aide de VBA, comment écrire une formule plus complexe dans une cellule ?

    Cet article est la suite du billet Comment écrire une formule dans une plage de cellules en VBA ? Nous allons apprendre comment écrire des formules plus complexes. Pour tous les plages de données évoquées plus bas la cellule de départ est la cellule A1 et la première ligne contient les étiquettes de colonnes. Comment écrire une formule plus complexe dans une cellule ? Prenons la formule NB.SI dont la syntaxe est NB.SI(Plage;Critère) et qui a pour but de compter le nombre de cellules répondant au critère. Pour illustrer notre exemple, imaginons une plage de données A1:F31 dont les cellules

    [Lire plus...]
  • Comment écrire une formule dans une plage de cellules en VBA ?

    Introduction Question fréquemment posée dans les forums est l’insertion de formule à l’aide d’une procédure VBA. Une façon simple d’intégrer une formule dans un code VBA est l’utilisation de l’enregistreur de macros. Cependant l’enregistreur génère la formule en style R1C1 ce qui n’est pas toujours simple à gérer. Le plus simple est d’écrire la formule dans excel et de la lire ensuite à l’aide d’une simple instruction en utilisant la propriété Formula de l’objet Range. Comment écrire une formule simple dans une cellule ? Exemple 1 : Prenons un exemple en plaçant en cellules A2 et B2 un nombre quelconque

    [Lire plus...]
  • Fonction qui remplace les caractères proscrits de Windows par un caractère de substitution

    Introduction Lorsque l’on sauve un fichier dans Windows, certains caractères sont proscrits du fait qu’ils sont réservés pour des usages particuliers. > Plus grand que (Redirection ) < Plus petit que (Redirection inversée) |  Barre verticale (Pipe)  »  Les guillemets :  Deux points /  Slash (Chemin) \  Antislash (Fractionnement) * Sert de joker (représente de 0 à x caractères quelques soient leurs valeurs) ? Sert de joker (représente 1 caractère quelque soit sa valeur) Code de la procédure

    Exemple de son utilisation

    La chaîne de caractères envoyée par la variable nommée FileName à la fonction ReplaceCharactersFileName est égal

    [Lire plus...]
  • Fonction testant l’existence d’une feuille dans un classeur

    Voici une fonction qui renvoie True ou False si la feuille dont le nom est passé en argument existe ou pas et que j’ai nommé IsSheetExist La procédure

    Exemple de son utilisation

    [Lire plus...]