On ne fait pas de la magie

«Toute technologie suffisamment avancée est indiscernable de la magie.» Arthur C. Clarke

  • Comment lancer une macro Excel VBA à l’ouverture de n’importe quel classeur ?

    C’est une question souvent posée sur Internet et les réponses sont pratiquement toujours la façon d’exécuter une macro à l’ouverture d’un classeur spécifique, en créant fort correctement un module Workbook_Open dans le conteneur ThisWorkBook de ce classeur.

    Mais comment utiliser Excel VBA pour avoir une macro lancée quel que soit le classeur ouvert, sans faire de modification dans chaque classeur ?

    Il faut écrire une classe qui permet de traiter les événements de la classe Application, puis affecter l’objet Application réel à cette nouvelle classe.

    Par exemple, dans un module de classe appelé MonApp, tapez le code suivant :

    Option Explicit
    Public WithEvents App As Application

    Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
    MsgBox (« Ouverture du classeur  » & Wb.Name)
    End Sub

    Puis dans le conteneur ThisWorkBook du fichier de macro personnel (PERSO.XLS), il faut instancier la classe MonApp et écrire un module Workbook_Open. Le code ressemble à ceci :

    Option Explicit
    Dim MonExcel As New MonApp

    Private Sub Workbook_Open()
    Set MonExcel.App = Application
    End Sub

    Et le tour est joué.

    Si ces opérations vous semblent de la magie noire, c’est qu’il vous manque quelques notions de programmation VBA que vous pouvez découvrir lors d’une formation à Excel..

  • Comment utiliser Installshield pour effacer des fichiers lors d’une installation ?

    Une question récurrente qui m’est posée lors d’interventions sur Installshield concerne la suppression de fichiers présents sur la machine cible au moment de l’installation.

    Il est normal qu’elle soit posée, car la réponse n’apparaît pas de façon évidente dans l’interface du logiciel.

    Si vous souhaitez supprimer des fichiers qui sont présents lors de l’installation, il faut renseigner la table RemoveFile, en vérifiant l’action RemoveFiles est bien présente dans la séquence d’installation.

    Cette table contient contient une propriété DirProperty qui indique le chemin complet du répertoire du fichier à supprimer. InstallMode permet de spécifier si le fichier est effacé lors de l’installation, de la désinstallation ou dans les deux cas.

    EffacerFichierInstallshield1.png

    Le composant indiqué doit bien sur être associé à une fonctionnalité installée pour que l’opération soit exécutée.

    Attention, l »interface graphique d’Installshield ne montre pas la liaison entre le composant et la table RemoveFile. Notamment, si on demande à n’afficher que les nœuds non vide, le composant peut apparaitre comme vide alors que la table RemoveFile fait référence au composant.

    EffacerFichierInstallshield2.png

    Vous pouvez constater que le composant EffaceFichier semble vide alors qu’il est utilisé pour supprimer des fichiers au travers de la table RemoveFile :

    EffacerFichierInstallshield3.png

     

    .

  • Comment utiliser Installshield pour forcer l’installation de fichiers par Windows Installer ?

    Lors des prestations ou de formations sur Windows Installer ou Installshield, j’ai parfois la question de forcer l’installation de fichiers sans tenir compte des caractéristiques de taille ou de version de ceux qui seraient éventuellement déjà présents.

    C’est une possibilité que vous pouvez indiquer dans la fenêtre de propriété d’un fichier, en cochant l’option Always Overwrite.

    EcrasementFichierInstallshield.png

    Que fait Installshield lorsque cette option est cochée ? Il inscrit tout simplement la valeur 65535 dans la colonne Version de la table File. De cette façon, les mécanismes normaux de Windows Installer forcent l’installation du fichier, quelle que soit la version du fichier éventuellement installée sur le système.

    La difficulté de cette méthode est qu’il faut passer en revue tous les fichiers de tous les composants et cela peut devenir une tâche rédhibitoire s’ils sont nombreux.

    Pour éviter cela, à partir de Windows Installer 4, il est possible d’utiliser la propriété REINSTALLMODE ou l’option /f de la ligne de commande de msiexec.

    Cette option est normalement utilisée en combinaison avec la propriété REINSTALL, mais Windows Installer la prend aussi en compte lors d’une installation. En spécifiant la valeur a, tous les fichiers sont copiés, indépendamment des versions. Vous pouvez tout simplement l’indiquer sur la ligne de commande ou l’incorporer à votre installation en utilisant le Property Manager ou encore en modifiant la table Property avec le Direct Editor.

    Attention, il peut y avoir des effets de bords. Par exemple, si votre installation contient des modifications du registre, celles ci ne sont pas effectuées si REINSTALLMODE ne contient que la valeur a. Il faut ajouter les valeurs u ou m pour que le registre soit modifié !

  • Le SEO, ce n’est pas de la magie !

    Comment résister, dans le blog « On ne fait pas de la magie », à l’envie de citer un article luttant contre la magie ?

    Je vous invite à consulter l’article : Le web social ce n’est pas magique, dans lequel vous trouverez de bonnes pratiques pour utiliser au mieux les réseaux sociaux.

    Nous présentons certaines de ces bonnes pratiques dans les formations Webmarketing que nous proposons, et notamment dans les ateliers Utiliser Facebook pour communiquer sur son activité professionnelle.

  • Comment lire son spam avec laposte.net ?

    A titre personnel, j’utilise le service laposte.net pour disposer d’une adresse email « à vie », indépendante de tout abonnement, fournisseur d’accès ou société américaine.

    Mais je l’utilise à l’ancienne, avec un client local,Thunderbird, qui me permet d’avoir accès à mes mails reçus même si la connexion internet est coupée.

    Une des dernières nouveautés de ce service, comme beaucoup d’autres, est de déplacer les mails qu’il considère comme du spam dans un dossier « courrier indésirable ». C’est très louable de sa part, mais cela empêche d’utiliser correctement ses propres règles de filtrage dans Thunderbird. Surtout quand sa définition personnelle du spam n’est pas celle du service.

    Paramètre du filtre pour conserver le spam dans la boite de réception sur la poste.net
    Paramètre du filtre pour conserver le spam dans la boite de réception sur la poste.net

    Jusqu’à présent, il était possible de conserver ces mails dans sa boite de réception, et donc de les récupérer avec Thunderbird.

    Mais la dernière version, mise en ligne ces jours ci, n’offre plus directement cette fonctionnalité dans les paramètres.

    Heureusement, elle offre l’accès à la création de filtres, et il est tout à fait possible d’en créer un pour conserver le spam dans la boite de réception.
    L’image ci contre indique comment faire :