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 :

Traitement des tableaux dans WORD


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juin 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : juin 2019
    Messages : 57
    Points : 18
    Points
    18
    Par défaut Traitement des tableaux dans WORD
    Hello

    Je vous soumets le besoinb auquel je suis confronté.
    J'ai un document word avec plusieurs tableaux qui ont la meme structure ( nombre ligne /colonne ; noms des lignes / colonnes )
    Je souhaite faire un toilettage pour chaque tableau avec des instriuctions du type :

    Pour chaque tableau k ,
    aller dans la cellule (i,j)
    supprimer les lignes de la cellule 1 à 10 sauf ligne 5 et 6
    supprimer les lignes i+1 à i+5


    Merci bien de l'aide.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : avril 2013
    Messages : 4 388
    Points : 11 174
    Points
    11 174
    Billets dans le blog
    30
    Par défaut
    Citation Envoyé par cocopops78 Voir le message
    Bonjour,

    Le code ci-dessous répond à cela :
    supprimer les lignes de la cellule 1 à 10 sauf ligne 5 et 6
    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
     
    Option Explicit
     
    Sub SupprimerDesLignesDUnTableau()
     
    Dim DocEnCours As Document
    Dim I As Long, J As Long, IndexMatrice As Long, LigneEnCours As Long
    Dim MatriceDelete() As Variant
     
        Set DocEnCours = ActiveDocument
        With DocEnCours
             If .Tables.Count = 0 Then Exit Sub
             For J = .Tables.Count To 1 Step -1
                 IndexMatrice = 0
                 LigneEnCours = 0
                 With .Tables(J)
                      For I = 1 To .Range.Cells.Count
                          Select Case I
                                 Case 1 To 10
                                      With .Range.Cells(I)
                                           Select Case .RowIndex
                                                  Case 5, 6
                                                       LigneEnCours = .RowIndex
                                                  Case Else
                                                       If LigneEnCours < .RowIndex Then
                                                          ReDim Preserve MatriceDelete(IndexMatrice)
                                                          MatriceDelete(IndexMatrice) = .RowIndex
                                                          IndexMatrice = IndexMatrice + 1
                                                          LigneEnCours = .RowIndex
                                                       End If
                                            End Select
                                      End With
                                Case Else
                                     Exit For
                          End Select
                      Next I
                      If IndexMatrice > 0 Then
                         For I = .Rows.Count To 1 Step -1
                             For IndexMatrice = LBound(MatriceDelete) To UBound(MatriceDelete)
                                 If I = MatriceDelete(IndexMatrice) Then
                                    .Rows(I).Delete
                                    Exit For
                                 End If
                             Next IndexMatrice
                         Next I
                         Erase MatriceDelete
                      End If
                End With
             Next J
       End With
       Set DocEnCours = Nothing
     
    End Sub
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juin 2019
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : juin 2019
    Messages : 57
    Points : 18
    Points
    18
    Par défaut
    Hello.
    Merci du retour . Ca me semble lourd comme script pour pas grand chose.
    Du coup j ai pu avancer avec des fonctions basiques et la je suis confronté au probleme de devoir suprimer les saut de paragraphe qu il y a dans les cellules par des retour chariot simple. J ai essayé de coder la fonction rechercher /copier mais je n arrive pas a l appliquer uniquement au tableau que j etudie ( word l applique sur tout le document ).
    Merci de l aide si il y a une solution

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : avril 2013
    Messages : 4 388
    Points : 11 174
    Points
    11 174
    Billets dans le blog
    30
    Par défaut
    Citation Envoyé par cocopops78 Voir le message
    Curieuse réponse et ô combien désinvolte !
    Vous n'avez même pas essayé ce code pour voir si cela fonctionnait ?
    J'ai reçu votre réponse sur mon téléphone, j'ai rallumé mon pc juste pour vous "blacklister".
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2007, 19h48
  2. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 10h08
  3. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 10h06
  4. Traitement des tableaux de word avec VBA: balise index
    Par Invité dans le forum VBA Word
    Réponses: 20
    Dernier message: 29/11/2005, 16h39
  5. Réponses: 2
    Dernier message: 19/01/2004, 13h19

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