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

VBA Word Discussion :

Inversion de lettres et des lignes


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Points : 14
    Points
    14
    Par défaut Inversion de lettres et des lignes
    Bonjour tout le monde,

    Je souhaite transformer en inversant les lettres :
    en
    Pour cela j'utilise ce code VBA :
    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
    Sub inversion()
    '
    ' essai Macro
    ' Macro enregistrée le 20/03/2004 par RV
    '
    Dim a, b, c, d
    a = Selection.Text
     
     
    c = ""
    For I = 0 To Len(a) - 1 Step 1
    b = Mid(a, Len(a) - I, 1)
    c = c & b
    Next I
     
    Selection.TypeText Text:=c
     
    End Sub
    Je souhaiterai juste que texte puisse se lire de haut en bas et non de bas en haut.

    Je ne trouve pas comment faire.

    Merci à tous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Fouko Voir le message
    Je souhaiterai juste que texte puisse se lire de haut en bas et non de bas en haut.
    Bonjour,

    Je ne suis pas sûr d'avoir compris. Quel est le résultat à obtenir par rapport à votre exemple ?

    Cordialement.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 24
    Points : 14
    Points
    14
    Par défaut
    Voici une capture d'écran.
    ici la police utilisée est PRmirror, c'est une police qui retourne l'aspect visuel de chaque caractère, l'important pour moi est surtout le sens de lecture.

    Nom : word.JPG
Affichages : 235
Taille : 74,9 Ko

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Fouko Voir le message
    Voici une capture d'écran.
    c'est une police qui retourne l'aspect visuel de chaque caractère, l'important pour moi est surtout le sens de lecture.
    Pour réaliser ce que vous souhaitez, il vous faut travailler ligne par ligne. Il y a bien un moyen de numéroter les lignes dans Word :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub NumerotationDesLignes()
     
        With ActiveDocument.PageSetup.LineNumbering
            .Active = True  ' Mettre False pour dénuméroter le document
            .StartingNumber = 1
            .CountBy = 1
            .RestartMode = wdRestartContinuous
        End With
     
    End Sub
    Mais je n'ai pas trouvé la méthode pour récupérer le texte de chaque ligne.

    Un moyen pour arriver à vos fins serait de faire correspondre chaque ligne à un signet. Le code serait celui ci :

    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
     
    Sub InversionParSignets()
     
    Dim A As String, B As String, C As String, D As String
    Dim I As Long
    Dim J As Long
     
        C = ""
     
        For J = 1 To Selection.Bookmarks.Count
     
            A = Selection.Bookmarks(J).Range.Text
            For I = 0 To Len(A) - 1 Step 1
                B = Mid(A, Len(A) - I, 1)
                C = C & B
            Next I
     
        Next J
     
        Selection.TypeText Text:=C
     
    End Sub
    Cette méthode est acceptable si le nombre de lignes est réduit et si la transformation est occasionnelle.

    Enfin, une autre méthode plus simple mais tout à fait pareille consiste à copier le texte dans une forme et de lui faire faire une rotation à 180 °. Dans cette méthode, la rotation s'effectue sur les lettres également, ce n'est pas forcément ce que vous souhaitez.

    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
     
    Sub CreationShape()
     
    Dim TexteSelectionne As String
    Dim LargeurPage As Long
    Dim MargeGauche As Long
    Dim FormeEnCours As Shape
     
        TexteSelectionne = Selection.Text
        With ActiveDocument.PageSetup
             MargeGauche = .LeftMargin
             LargeurPage = .PageWidth - .LeftMargin - .RightMargin
        End With
     
        Set FormeEnCours = ActiveDocument.Shapes.AddShape(msoShapeRectangle, MargeGauche, 400, LargeurPage, 200)
            ' 200 est la hauteur de la forme : à ajuster en fonction du texte sélectionné
     
        With FormeEnCours
     
             With .TextFrame
                  .AutoSize = msoAutoSizeShapeToFitText
                  .MarginLeft = 0#
                  .MarginRight = 0#
                  With .TextRange
                       .Text = TexteSelectionne
                       .ParagraphFormat.Alignment = wdAlignParagraphJustify
                       With .Font.Fill
                            .Visible = msoTrue
                            .ForeColor.RGB = RGB(0, 0, 0)
                            .Transparency = 0
                            .Solid
                       End With
                 End With
            End With
            .Fill.Visible = msoFalse
            .Line.Visible = msoFalse
            .ThreeD.RotationX = -180
     
        End With
     
        Set FormeEnCours = Nothing
     
    End Sub
    Cordialement.
    Dernière modification par Invité ; 18/11/2016 à 09h16.

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour, bonjour !

    Citation Envoyé par Fouko Voir le message
    Je souhaite transformer en inversant les lettres
    C'est du standard VBA comme documenté dans l'aide VBA interne, en y jetant un œil …

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Demo()
        MsgBox StrReverse("Mon texte à inverser")
    End Sub
    Voilà, voilà !

    _________________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Fouko Voir le message
    Bonjour,

    Avez-vous réglé votre problème ?

    Cordialement.

Discussions similaires

  1. inverser les champs des lignes vers les colonnes dans un XML
    Par almanar dans le forum Général Python
    Réponses: 0
    Dernier message: 19/02/2010, 21h04
  2. Inverser l'ordre des lignes ?
    Par tintin72 dans le forum Débuter
    Réponses: 8
    Dernier message: 16/12/2008, 13h57
  3. [POO] Inverser des lignes dans une table
    Par marts dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/10/2008, 18h57
  4. Inverser des lignes dans un fichier
    Par sentinnelle dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 25/02/2008, 10h42
  5. Copier coller des lignes à l'inverse
    Par SybVicious dans le forum Excel
    Réponses: 4
    Dernier message: 23/02/2008, 11h56

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