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 :

Recherche du code de marque de fin de ligne dans un tableau Word [Toutes versions]


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 24
    Points : 22
    Points
    22
    Par défaut Recherche du code de marque de fin de ligne dans un tableau Word
    Bonjour le monde !
    Bon weekend pascal, même si ce n'est pas votre prénom !
    J'ai bien compris que les codes définissant une marque de fin de cellule sont "Chr(13) & Chr(7)" et ai pu les intégrer dans une macro, mais...
    Non di ch'toupette pas moyen de trouver l'équivalent pour une marque de fin de ligne dans un tableau Word.
    Si quelqu'un de l'honorable assistance pouvait m'aider, je voudrais éviter le classique "On Error Resume Next"
    à bientôt, j'espère,
    Daniel Bretelles

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Bonjour à toi,

    Que penses tu de ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      Dim oTbl As Table
      Set oTbl = ActiveDocument.Tables(1)
     
      For Each oRow In oTbl.Rows 'Chaque ligne du tableau
        For Each oCell In oRow.Cells 'Chaque colonne de la ligne
            Debug.Print oCell.Range.Text
        Next
      Next

  3. #3
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 24
    Points : 22
    Points
    22
    Par défaut Bin, bof, euh...
    Hello cerede2000 ,
    Bien aimable pour la tentative, mais...
    J'ai un scrongneugneu de document Word que je dois examiner caractère par caractère, d'où mon interrogation sur les codes ASCII !
    Voili, voilà,
    Bonne journée et bien merci de Belgique

  4. #4
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ah oui !
    Dans ce cas je comprends
    Une ligne se termine par le même ensemble qu'une cellule.
    Donc dernière cellule de la ligne : <valeur de la cellule> Chr(13) Chr(7) Chr(13) Chr(7)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Hello cerede2000 ,
    Malheureusement cela ne fonctionne pas
    Le document sur lequel je travaille est ici
    À noter que la détection de fin de cellule fonctionne parfaitement. Il n'en est pas de même avec la détection de fin de ligne de tableau
    Si je m'équipe du célébrissime "On Error Resume Next", tout fonctionne comme je veux, mais... Je voudrais me passer de cet artifice.
    À toi et au monde entier, par avance, merci.
    Cordialement,
    Daniel Bretelles

  6. #6
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 24
    Points : 22
    Points
    22
    Par défaut Trouvé ! Ouf !
    À tous présents et à venir, salut (J'aime bien dire ça )
    Le problème est contourné en supprimant une instruction que j'avais mise, je ne sais plus pourquoi, damned !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If Asc(Selection) = 123 Then
                While Asc(Selection) <> 125
                    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
                    Selection.Delete
                Wend
                'Suppression de l'accolade fermante
                Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
                Selection.Delete
            Else
                'Selection = Selection
    End If
    J'ai donc mis un Rem devant Selection=Selection.
    Merci à tous ceux qui se seraient penchés sur mon ch'ti problème.
    À bientôt,
    Daniel Bretelles

  7. #7
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Et du coup, comment détermine tu la fin de ta ligne de tableau ?
    Car dans le code posté je ne vois rien la dessus ??

  8. #8
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 24
    Points : 22
    Points
    22
    Par défaut C'est vrai !
    Hello la France et cerede2000
    Effectivement, mon code saute l'obstacle sans vraiment l'identifier. Malheureusement je n'ai pas le temps d'investiguer plus, il faut que je continue le travail qui m'est demandé.
    Si par bonheur tu trouves une solution plus "intelligente" que la mienne, je prends avec un plaisir et une humilité non dissimulé.
    Bonne continuation,
    Daniel Bretelles

  9. #9
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ben je comprends pas ce qui te manque, essaye ceci :
    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
    Sub parcours()
        Dim letter
        Dim precLetter
     
        For Each letter In ActiveDocument.Range.Characters
            If letter = Chr(13) & Chr(7) Then
                If precLetter = Chr(13) & Chr(7) Then
                    Debug.Print "EOL marker" 'fin de ligne detectée
                Else
                    Debug.Print "EOC marker" 'fin de cellule detectée
                End If
            Else
                Debug.Print letter
            End If
            precLetter = letter
        Next
    End Sub
    Je parcours le document caractère par caractère et je détecte les fin de cellules et les fin de lignes indépendamment

  10. #10
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2016
    Messages : 24
    Points : 22
    Points
    22
    Par défaut Promis
    Je vais essayer ! Promis
    D'autant plus que cela me donne des idées pour la suite de mon travail
    De toutes les manières, merci
    Daniel

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

Discussions similaires

  1. Enlever les fins de ligne dans certaines conditions
    Par timpoi dans le forum Langage
    Réponses: 3
    Dernier message: 01/08/2011, 14h58
  2. Réponses: 9
    Dernier message: 14/04/2009, 16h20
  3. Réponses: 5
    Dernier message: 17/06/2008, 15h38
  4. [Unix KSH] Ajout caractère fin de ligne dans fichier
    Par -COil- dans le forum Autres langages
    Réponses: 1
    Dernier message: 04/05/2006, 16h06
  5. Fin de ligne dans un fichier
    Par Neekow dans le forum Langage
    Réponses: 6
    Dernier message: 03/06/2005, 19h54

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