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

Mise en forme Discussion :

VBA dans LaTeX


Sujet :

Mise en forme

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 33
    Points : 16
    Points
    16
    Par défaut VBA dans LaTeX
    Hello,

    Je cherche à introduire un code source et j'ai un problème avec les accents français c'est-à-dire que quand je mets des commentaires, après avoir compilé le document tex, le pdf s'ouvre avec des erreurs d'accents.

    Voici mon code, par exemple :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    \usepackage{listings,xcolor}
     
    \lstset
    {
        breaklines=true,
        tabsize=3,
        showstringspaces=false
    }
     
     
    \lstdefinestyle{Common}
    {
        extendedchars=\true,
        language={[Visual]Basic},
        frame=single,
        %===========================================================
        framesep=3pt,%expand outward.
        framerule=0.4pt,%expand outward.
        xleftmargin=3.4pt,%make the frame fits in the text area. 
        xrightmargin=3.4pt,%make the frame fits in the text area.
        %=========================================================== 
        %rulecolor=\color{Red}
    }
     
    \lstdefinestyle{A}
    {
        style=Common,
        %backgroundcolor=\color{Yellow!10},
        basicstyle=\scriptsize\color{Black}\ttfamily,
        keywordstyle=\color{Blue},
        %identifierstyle=\color{Cyan},
        stringstyle=\color{Red},
        commentstyle=\color{Green}
    }
     
    [....]
     
     
    \begin{lstlisting}[style=A]
    Sub TitreEtMax()
        'Déclarations des cell
     
        [...]
     
    End Sub
    \end{lstlisting}
    Le résultat : 'éDclarations des cell avec le "é" déplacé au début du mot...

    Merci de votre aide,

    Juunii

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Ce n'est pas du VBA. Il n'y a jamais eu de BASIC avec des accolades, ni avec des lignes qui se terminent par des virgules. C'est peut-être du JAVAudiable, mais pas du VB.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Merci d'avoir répondu.

    Je viens de modifier mon premier post en corrigeant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    language={[Visual]Basic}
    Mais cela ne change rien...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Merci d'avoir répondu.

    Je viens de modifier mon premier code en corrigeant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    language={[Visual]Basic}
    source : http://tex.stackexchange.com/questio...-code-in-latex

    Des idées ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 344
    Points : 561
    Points
    561
    Par défaut
    Bonsoir,

    En allant voir dans la documentation de listings, on trouve un paragraphe sur les caractères unicodes (2.5 § National characters). Il faut les activer en ajoutant extendedchars=true dans la définition de ton style.

    J'ai testé avec pdfLaTeX, et comme dit dans la documentation, il y a une incompatibilité. Malheureusement, il semblerait qu'il n'y ai pas de solution actuellement.

    Par contre, bonne nouvelle, ça fonctionne à la perfection avec XeLaTeX. Du coup tu as deux options :

    • soit tu utilises pdfLaTeX (donc tu ne changes rien à ton préambule) et tu te passes des accents dans les commentaires des codes ;
    • soit tu passes à XeLaTeX et tu peux utiliser des caractères accentués dans tes codes sources. Ce changement implique quelques modifications dans le préambule.


    À toi de voir ce qui est le mieux dans ton cas
    La FAQ apporte souvent la solution aux problèmes
    Avant de demander de l'aide, pensez à faire un ECM ! Un problème bien expliqué est un problème à moitié résolu .

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Ok, je ne peux pas me passer des accents car dans mon code VBA, je demande également de chercher un mot qui contient "é" comme "secrétaire"... :/

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 344
    Points : 561
    Points
    561
    Par défaut
    Après un petit tour sur internet, j'ai une solution fonctionnelle à te proposer. Il suffit de rajouter ceci dans le \lstset :

    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
    literate=%
                {é}{{\'{e}}}1
                {è}{{\`{e}}}1
                {ê}{{\^{e}}}1
                {ë}{{\¨{e}}}1
                {û}{{\^{u}}}1
                {ù}{{\`{u}}}1
                {â}{{\^{a}}}1
                {à}{{\`{a}}}1
                {î}{{\^{i}}}1
                {ô}{{\^{o}}}1
                {ç}{{\c{c}}}1
                {Ç}{{\c{C}}}1
                {É}{{\'{E}}}1
                {Ê}{{\^{E}}}1
                {À}{{\`{A}}}1
                {Â}{{\^{A}}}1
                {Î}{{\^{I}}}1,
    En gros, ça va dire à listings de transformer les caractères spéciaux en leur équivalent LaTeX. Ainsi, le "é" deviendra \'e. Sur les tests que j'ai réalisé, ça fonctionne. À voir si cela fonctionne sur un code plus conséquent
    La FAQ apporte souvent la solution aux problèmes
    Avant de demander de l'aide, pensez à faire un ECM ! Un problème bien expliqué est un problème à moitié résolu .

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Presque résolu... Latex écrit Î à la place de é... J'ai regardé sur Google qu'il existe une autre solution avec la commande \lstinputlisting mais je n'ai pas réussi à insérer le code dans Latex !

  9. #9
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Bonjour,

    Fournissez un ECM(cf. signature) complet, le code fourni au premier message n'en est pas un.
    Avec celui-ci il sera sûrement plus facile de cerner ce qui ne fonctionne pas.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    D'accord voici le code "complet" :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
     
    \documentclass[dvipsnames,cmyk]{article}%           autres choix : report, book
     
    \usepackage[utf8]{inputenc}%       encodage du fichier source
    \usepackage[T1]{fontenc}%          gestion des accents (pour les pdf)
    \usepackage[francais]{babel}%      rajouter éventuellement english, greek, etc.
    \usepackage{textcomp}%             caractères additionnels
    \usepackage{amsmath,amssymb}%      pour les maths
    \usepackage{lmodern}%              remplacer éventuellement par txfonts, fourier, etc.
    \usepackage[a4paper]{geometry}%    taille correcte du papier
    \usepackage{graphicx}%             pour inclure des images
    \usepackage{xcolor}%               pour gérer les couleurs
    \usepackage{microtype}%            améliorations typographiques
     
    \usepackage{listings,xcolor}
     
    \title{VBA}
     
    \makeindex
     
    \usepackage{hyperref}%             gestion des hyperliens
    \hypersetup{pdfstartview=XYZ}%     zoom par défaut
     
     
    %-------------------------------------------------------------------
    % CODE VBA DANS LATEX
    %-------------------------------------------------------------------
     
    \lstset
    {
        breaklines=true,
        tabsize=3,
        showstringspaces=false
    }
     
     
    \lstdefinestyle{Common}
    {
        extendedchars=\true,
        language=VBScript,
        frame=single,
        %===========================================================
        framesep=3pt,%expand outward.
        framerule=0.4pt,%expand outward.
        xleftmargin=3.4pt,%make the frame fits in the text area. 
        xrightmargin=3.4pt,%make the frame fits in the text area.
        %=========================================================== 
        %rulecolor=\color{Red}
    }
     
    \lstdefinestyle{A}
    {
        style=Common,
        %backgroundcolor=\color{Yellow!10},
        basicstyle=\scriptsize\color{Black}\ttfamily,
        keywordstyle=\color{Blue},
        %identifierstyle=\color{Cyan},
        stringstyle=\color{Red},
        commentstyle=\color{Green}
    }
     
    %-------------------------------------------------------------------
    % FIN CODE
    %-------------------------------------------------------------------
     
    \begin{document}
     
     
    %---------------------------------------------------------------------
    % TITRE ET SOMMAIRE
    %---------------------------------------------------------------------
    \maketitle
    \clearpage
    \tableofcontents
    \clearpage
     
     
    %---------------------------------------------------------------------
    % INSTRUCTIONS
    %---------------------------------------------------------------------
    \section{Instructions}
     
    \begin{lstlisting}[style=A]
    Sub Titre()
        Dim cellTitre As Range
     
        For Each cellTitre In Worksheets("tableau des salaires").Range("E2:E16")
            Select Case cellTitre
                Case Is = "Vendeur"
                    cellTitre.Font.Color = RGB(0, 255, 0)
                Case Is = "Ouvrier"
                    cellTitre.Font.Color = RGB(0, 0, 255)
                Case Is = "Secrétaire"
                    cellTitre.Font.Color = RGB(204, 51, 204)
                Case Is = "Administrateur"
                    cellTitre.Font.Color = RGB(204, 255, 0)
            End Select
        Next
     
    End Sub
    \end{lstlisting}
    \end{document}
    En ne tenant pas compte du code VBA qui pourrait être incorrect, merci.

  11. #11
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Bonjour,

    Trouvé !

    La ligne 40 du listing que vous avez posté est fausse extendedchars=\true,.
    Elle devrait être extendedchars=true, (suppression de \).

    Pour fonctionner avec les caractères utf8, je vous conseille d'ajouter ceci à votre définition. Lset étant cumulatif le mettre en début de vos déclarations me semble une bonne idée. En pensant à supprimer les redondances.
    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
    \lstset{inputencoding=utf8, extendedchars=true, literate=%
    {é}{{\'e}}{1}%
    {è}{{\`e}}{1}%
    {à}{{\`a}}{1}%
    {ç}{{\c{c}}}{1}%
    {œ}{{\oe}}{1}%
    {ù}{{\`u}}{1}%
    {É}{{\'E}}{1}%
    {È}{{\`E}}{1}%
    {À}{{\`A}}{1}%
    {Ç}{{\c{C}}}{1}%
    {Œ}{{\OE}}{1}%
    {Ê}{{\^E}}{1}%
    {ê}{{\^e}}{1}%
    {î}{{\^i}}{1}%
    {ô}{{\^o}}{1}%
    {û}{{\^u}}{1}%
    {ë}{{\¨{e}}}1%
    {û}{{\^{u}}}1%
    {â}{{\^{a}}}1%
    {Â}{{\^{A}}}1%
    {Î}{{\^{I}}}1%
    }
    Avec ces deux seules modifications (lset et correction) j'ai obtenu un listing avec accents et parfaitement colorisé.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Ouiiiiiiiii, génial ! Je comprends le rôle d'un ECM, maintenant

    Merci beaucoup.

    Et merci tout le monde, même les lecteurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/04/2006, 19h09
  2. Récupération du mot de passe d'un module VBA dans access
    Par Doctor_M_387 dans le forum Access
    Réponses: 5
    Dernier message: 05/04/2006, 13h46
  3. concaténation en vba dans une formule de cellule Excel
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 22h58
  4. Réponses: 1
    Dernier message: 14/10/2005, 15h36
  5. erreur VBA dans un recordset
    Par rapace dans le forum Access
    Réponses: 4
    Dernier message: 12/10/2005, 15h52

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