Macro VBA pour supprimer une cellule d'un tableau (Excel) exporté dans Word

Bonjour,

Je cherche à créer une macro VBA qui me permettrait de supprimer une cellule

L'idée est de d'abord sélectionné manuellement le tableau souhaité, ensuite la macro réaliserait les opérations suivante :

- Supprime la cellule ou se trouve actuellement l'image ( dans la 1ère colonne à gauche)

- Redimensionne ensuite la colonne 2 pour quelle s'ajuste à la taille maximum de la largeur de page

J'ai essayé avec l'enregistreur de macro, ça ne fonctionne pas du tout,

de plus je crois que l'enregistreur ne gère pas les images.

Cette macro ne fonctionne pas non plus :

Sub Macro1()
    If Selection.Information(wdWithInTable) Then
        Dim tbl As Table
        Set tbl = Selection.Tables(1)

        If tbl.Columns.Count > 1 Then 
            Dim firstCell As Cell
            Set firstCell = tbl.Columns(1).Cells(1) 

            For Each Row In tbl.Rows
                Row.Cells(2).Range.FormattedText = Row.Cells(2).Range.FormattedText
            Next Row

            firstCell.Delete
        End If
    Else
        MsgBox "Tableau non sélectionné"
    End If
End Sub

Je vous remercie pour votre aide,

Cordialement,

Bonjour,

A tester.

Pour lancer la macro, cliquez sur le bouton vert dans la barre d'accès rapide. Dans la liste, sélectionnez votre tableau et cliquez sur le bouton Modifier.

Merci beaucoup,

La cellule de gauche est effectivement retirée au profit d'une seule cellule prenant la taille du tableau, c'est top.

Par contre, comment pourrait on faire pour garder l'image et la transférer dans le nouvel espace obtenu et également conserver le texte présent à l'origine.

Faut il passer par un copié / collé, je ne vois pas trop comment faire du fait qu'il y a une image et du texte dans 2 éléments séparés ...

Tableau d'origine :

screenhunter 16 may 20 21 33

L'idéal serait d'obtenir ceci :

screenhunter 19 may 20 21 36

A tester :

Sub TestDeplacerUnsInLineShape()

    DeplacerUnsInLineShape ActiveDocument.Tables(1)

End Sub

Sub DeplacerUnsInLineShape(ByVal MaTable2 As Table)

Dim I As Integer, J As Integer

    With MaTable2.Range
         For I = 1 To .Rows.Count
             With .Rows(I)
                  If .Cells.Count = 2 And .Cells(1).Range.InlineShapes.Count > 0 Then
                     .Cells(1).Range.InlineShapes(1).Range.Copy
                     With .Cells(2)
                          .Select
                          With Selection
                               .HomeKey unit:=wdLine, Extend:=wdMove
                               .Range.Text = Chr(10) & Trim(.Range.Text)
                               Selection.Paste
                               Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
                          End With
                     End With

                     With .Cells(1)
                          .Range.InlineShapes(1).Range.Delete
                          .Delete
                     End With

                     .Cells(1).Width = MaTable2.Rows(1).Range.Cells.Width

                  End If
             End With
         Next I
   End With

End Sub

Ça fonctionne parfaitement, c'est vraiment bien !

Du coup, la Sub SupprimerLesInLineShapes n'est plus nécessaire.

Est qu'il est possible d'appeler DeplacerUnsInLineShape depuis le userform permettant de sélectionner les tableaux présents dans le documents ?

Cette fonctionnalité est vraiment très pratique.

Je n'ai pas réussi à adapter le bouton 'Modifier' du Userform pour appeler correctement la nouvelle Sub.

Set MaTable = .Tables(Me.ListBoxTables.ListIndex + 1)

Il faut juste remplacer la procédure :

Private Sub BoutonModifier_Click()
           DeplacerUnsInLineShape MaTable
End Sub

Merci beaucoup,

Je voulais voir avec l'enregistreur de macro si il serait possible de rajouter une ligne supplémentaire sous la ligne d'entête, afin d'y ajouter un titre complémentaire par défaut mais l'enregistreur ne gère pas les tableaux.

ligne supplementaire

Pouvez vous m'indiquer comment rajouter dans la macro existante la création de cette seconde ligne svp ?

J'aimerai qu'un titre par défaut y prenne place : ANIMAUX , que la hauteur de cette ligne soit paramétrée à 1cm et que la couleur de fond soit en vert avec l'écriture en noir.

image

J'ai continué d'avancer grâce à votre code,

Après réflexion, il faudra que la photo du chat soit seule sur une ligne entière et le texte 'Joli chat' soit seul sur la ligne suivante.

J'ai essayé de changer l'ordre des copié / collé mais ça ne va pas.

Le fait d'insérer une ligne supplémentaire pour sous le titre " Tableau d'origine " puis en rang 3 une nouvelle ligne pour accueillir l'image du chat pose problème.

Depuis ce nouveau fichier exemple, j'aimerai passer l'image du chat en ligne n°3 tout en gardant le texte dans la ligne 4, je n'y parviens pas.


Le résultat espéré serait ceci : image
Rechercher des sujets similaires à "macro vba supprimer tableau exporte word"