IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Aide à mettre des commentaires sur une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2015
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2015
    Messages : 86
    Par défaut Aide à mettre des commentaires sur une macro
    Bonjour mes amis

    Voila ma demande est très simple j'ai à ma possession la macro ci dessous et étant débutant en VBA j'aimerai bien la comprendre donc si quelqu'un peux me mettre là où il y a les étoiles un commentaire ça serai hyper gentil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Function Apurer$(x)
    '**********************
    Static dicoSubst As Object
    Dim i&, couple, Item01, y, k&, c$
    '**********************
    Const Subst = "Š|S Œ|OE Ž|Z š|s œ|oe ž|z Ÿ|Y ¡|I ¢|C ²|2 ³|3 ¹|1 À|A Á|A Â|A Ã|A Ä|A Å|A Æ|AE Ç|C È|E É|E Ê|E Ë|E Ì|I Í|I Î|I Ï|I Ñ|N Ò|O Ó|O Ô|O Õ|O Ö|O Ù|U Ú|U Û|U Ü|U Ý|Y à|a á|a â|a ã|a ä|a å|a æ|ae ç|c è|e é|e ê|e ë|e ì|i í|i î|i ï|i ñ|n ò|o ó|o ô|o õ|o ö|o ø|0 ù|u ú|u û|u ü|u ý|y ÿ|y"
    '**********************
      If dicoSubst Is Nothing Then
    '**********************    
    Set dicoSubst = CreateObject("Scripting.dictionary")
        For Each couple In Split(Subst)
          Item01 = Split(couple, "|")
    '**********************      
        dicoSubst.Add Item01(0), Item01(1)
        Next couple
      End If
    '**********************
      y = x: k = Len(y)
      For i = 1 To k
    '**********************
        c = Mid(y, i, 1)
    '**********************
        If dicoSubst.exists(c) Then Mid(y, i, 1) = dicoSubst(c)
      Next i
      Apurer = y
    End Function
    Merci par avance

    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Je n'accepte personnellement d'expliquer que deux des aspects de ce code (tout le reste étant très/trop facilement "explicable" par seule consultation toute bête de l'aide VBA interne).
    - Aspect 1 :
    ce code crée et abonde un dictionnaire en éléments issus de l'éclatement de la constante Subst.
    Tu trouveras sur ce forum (doté d'un moteur de recherche) tout ce qu'il te faut connaître en matière de dictionnaires ("Scripting.dictionary")
    - Aspect 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If dicoSubst.exists(c) Then Mid(y, i, 1) = dicoSubst(c)
    il s'agit là de l'utilisation de l'instruction Mid, à ne pas confondre avec la fonction Mid.
    L'instruction Mid permet de remplacer un nombre déterminé de caractères (1 dans ton cas) au sein d'une variable chaîne

    Voilà. J'estime que tout le reste est trop simple et qu'il suffit de consulter l'aide VBA interne.

    EDIT : j'ajoute qu'il est abusif d'utiliser un objet dictionnaire (à la fois lourd et de portabilité risquée) pour faire ce que fait cette fonction (remplacer certains caractères par un autre caractère).
    Alors que suffit l'utilisation d'une simple chaîne de caractères et des fonctions instr et Replace pour faire aisément la même chose.

    EDIT 2 : j'ajoute également que cette ligne de code utilisant l'instruction Mid "plantera" de surcroît sur certains (tels Œ, par exemple) qui, constitués à la base d'un seul caractère, doivent être transformés en deux caractères.

Discussions similaires

  1. Mettre des widgets sur une image
    Par takepatience dans le forum Tkinter
    Réponses: 3
    Dernier message: 25/08/2010, 23h29
  2. [phpMyAdmin] Ajouter des commentaires sur une table
    Par huit_six dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/05/2010, 11h35
  3. Mettre des commentaires dans une balise echo ?
    Par bond70 dans le forum Langage
    Réponses: 4
    Dernier message: 13/05/2010, 22h22
  4. mettre des commentaire sur des cellules
    Par newcodeur dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/09/2008, 16h03
  5. Réponses: 10
    Dernier message: 15/10/2006, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo