Mettre deux tableaux à côté

Bonjour,

J'ai une macro qui prend des screen de tableau et les insère dans un mail et je voulais savoir si c'était aussi possible de mettre deux tableaux côte à côte?

Je veux quatre tableaux :

- (B4:I26), (V4:AB26) qui sont côte à côte dans le mail

- (K4:R26), (AD4:AJ26) qui sont aussi à côte l'un de l'autre dans le mail.

J'ai essayé de mettre plusieurs plages dans mon Range, comme ceci mais cela ne fonctionne pas :

' 1er et 2ème tableaux
    Sht.Range("B4:I26,V4:AB26").CopyPicture xlScreen, xlBitmap
    Set Rng = wDoc.Content
    Rng.InsertParagraphAfter
    Rng.Move wdParagraph, 1
    Rng.Paste

J'ai aussi crée 4 tableaux mais du coup il me les met l'un en dessous de l'autre et j'aimerais qu'ils soient l'un à côté de l'autre, voici le code :

Option Explicit

Const wdParagraph As Long = 4

Sub Test()
  Dim Sht As Worksheet
  Dim OutApp As Object
  Dim MyItem As Object, wDoc As Object, Rng As Object

  Set Sht = ActiveWorkbook.Sheets("Tableaux")
  On Error Resume Next
  Set OutApp = GetObject(, "Outlook.Application")
  If Err <> 0 Then Set OutApp = CreateObject("Outlook.Application")
  On Error GoTo 0
  Set MyItem = OutApp.CreateItem(0)
  Set wDoc = MyItem.GetInspector.WordEditor
  With MyItem
    .BodyFormat = 3
    .Display
    .To = "blabla@test.fr"
    .CC = "dupont@test.fr"
    .BCC = ""
    .Subject = "Test 1"
    .HTMLbody = "Bonjour, <br><br>" _
    & "Voici mes deux premiers tableaux : <br>"
    ' 1er tableau
    Sht.Range("B4:I26").CopyPicture xlScreen, xlBitmap
    Set Rng = wDoc.Content
    Rng.InsertParagraphAfter
    Rng.Move wdParagraph, 1
    Rng.Paste
    Rng.Move wdParagraph
    ' 2ème tableau
    Sht.Range("V4:AB26").CopyPicture xlScreen, xlBitmap
    Set Rng = wDoc.Content
    Rng.InsertParagraphAfter
    Rng.Move wdParagraph, 1
    Rng.Paste
    Rng.Move wdParagraph
    .HTMLbody = .HTMLbody & "<br>Et mes deux suivants : "
    ' 3ème tableau
    Sht.Range("K4:AR26").CopyPicture xlScreen, xlBitmap
    Set Rng = wDoc.Content
    Rng.InsertParagraphAfter
    Rng.Move wdParagraph, 1
    Rng.Paste
    Rng.Move wdParagraph
    ' 4ème tableau
    Sht.Range("AD4:AJ26").CopyPicture xlScreen, xlBitmap
    Set Rng = wDoc.Content
    Rng.InsertParagraphAfter
    Rng.Move wdParagraph, 1
    Rng.Paste
    Rng.Move wdParagraph
    ' .send
  End With
  ' Penser à effacer les variables objet pour libérer de la mémoire
  Set Rng = Nothing: Set wDoc = Nothing: Set MyItem = Nothing: Set OutApp = Nothing
End Sub

Merci d'avance pour vos réponses !

Bonjour

Une idée

Pourquoi ne pas mettre les tableau cote à cote et copier un range englobant tous les tableaux. Cela ferait une seule image de l'ensemble.

Bonjour,

C'est une bonne idée le seul problème c'est que dans mon mail j'ai vraiment besoin que ce soit en premier mes deux tableaux (B4:I26) et (V4:AB26) comme je compare et les analyse dans un premier temps et après je compare les tableaux (K4:R26) et (AD4:AJ26). Mais si jamais personne n'a de solution je peux toujours modifié mon classeur Excel et mettre les deux tableaux (B4:I26) et (V4:AB26) et les deux autres (K4:R26) et (AD4:AJ26) à côté et cela me donnera deux captures et cela marchera très bien.

Mais j'aimerais si possible savoir si il y a une commande vba pour mettre les deux captures côte à côte, histoire de ne rien modifier dans mon classeur et d'apprendre des commandes vba.

Merci de ta réponse en tout cas.

En créant une feuille temporaire regroupant les tableaux le temps de la photo ça ne modifierait pas la structure du classeur.

C'est vrai que ce n'est pas la solution la plus élégante mais personnellement je n'ai jamais exploré ni les mails ni les images sur excel. Donc je ne vois pas mieux.

Bonne chance

Oui c'est vrai ça va marcher, je vais attendre de voir si jamais quelqu'un peut m'aider avec la demande initiale mais en tout cas merci beaucoup pour le temps que tu m'as accordé ! Bonne journée.

Rechercher des sujets similaires à "mettre deux tableaux cote"