Récupérer tout le fichier excel et non le classeur ouvert
Enshuk
-
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je travaille sur une macro, dont l'objectif est de récupérer dans un fichier Word tous les graphiques commençant par le même nom et ayant la même couleur d'onglet.
Si les graphiques sont sur le même onglet, ça fonctionne. Mais si ils sont sur un onglet différents, ils ne se copient pas sur le document Word.
J'ai essayé
Voici ma boucle :
Merci d'avance.
Je travaille sur une macro, dont l'objectif est de récupérer dans un fichier Word tous les graphiques commençant par le même nom et ayant la même couleur d'onglet.
Si les graphiques sont sur le même onglet, ça fonctionne. Mais si ils sont sur un onglet différents, ils ne se copient pas sur le document Word.
J'ai essayé
ActiveBookau lieu de
ActiveSheets, mais sans succès...
Voici ma boucle :
For Each Chart In ws.ChartObjects 'a = Left(Chart.Name, 1) 'MsgBox a If Left(Chart.Name, 1) = "(" And ws.Tab.Color = RGB(128, 128, 128) Then ActiveBooks.ChartObjects("(Test)").Chart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture wrdApp.Selection.Goto what:=wdGoToBookmark, Name:="Graphique2" ' on recherche le signet dans Word pour se positionner wrdApp.Selection.MoveRight wdCharacter, 1 'wrdApp.Selection.MoveLeft wdCharacter, 1 ' optionnel : pour se placer AVANT le signet (move left) wrdApp.Selection.PasteSpecial link:=False, DataType:=wdPasteMetafilePicture, Placement:=wdInLine, DisplayAsIcon:=False
Merci d'avance.
Configuration: Windows / Chrome 78.0.3904.97
A voir également:
- Récupérer tout le fichier excel et non le classeur ouvert
- Fichier bin - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Fichier epub - Guide
- Word et excel gratuit - Guide
- Fichier rar - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
classeur et fichier étant synonymes, ton titre est un peu bizarre.
tu ne nous montres qu'une partie de ton code.
je suppose que ws est déclaré comme worksheet, et que tu fais une boucle pour faire le tour de tous les onglets de ton classeur.
je me demande si tu ne t'embrouilles pas en ayant choisi d'utiliser "Chart" comme nom de variable: utilises plutôt "graphique". Sois certain, aussi, d'avoir bien
Je pense que tout s'éclaircira et que tu découvriras ton erreur.
classeur et fichier étant synonymes, ton titre est un peu bizarre.
tu ne nous montres qu'une partie de ton code.
je suppose que ws est déclaré comme worksheet, et que tu fais une boucle pour faire le tour de tous les onglets de ton classeur.
je me demande si tu ne t'embrouilles pas en ayant choisi d'utiliser "Chart" comme nom de variable: utilises plutôt "graphique". Sois certain, aussi, d'avoir bien
option expliciten haut de ton module.
Je pense que tout s'éclaircira et que tu découvriras ton erreur.
Bonjour,
comme le dit yg_be si justement, ton titre est équivoque. Il s'agit d'onglet et non de classeur!
Dans ton dernier post je t'ai indiqué ce lien. Il ne fait pas le job?
Essaie de mettre un MsgBox pour voir si il boucle sur tous les graphiques. Si oui, c'est ta macro qui ne fait pas le job!
https://vb.developpez.com/faqvba/?page=3.5#listgraphique
comme le dit yg_be si justement, ton titre est équivoque. Il s'agit d'onglet et non de classeur!
Dans ton dernier post je t'ai indiqué ce lien. Il ne fait pas le job?
Essaie de mettre un MsgBox pour voir si il boucle sur tous les graphiques. Si oui, c'est ta macro qui ne fait pas le job!
https://vb.developpez.com/faqvba/?page=3.5#listgraphique
Cela devrait t’intéresser en l'adaptant à ton environnement:
https://forum.excel-pratique.com/viewtopic.php?t=68158
@+ Le Pivert
https://forum.excel-pratique.com/viewtopic.php?t=68158
@+ Le Pivert
Bonjour et merci pour vos réponses,
Si, cela m'a aidé. Je vous remercie encore infiniment.
Mais je n'ai réussi à l'appliquer qu'à l'onglet actif, et non au classeur tout entier.. C'est pour cette raison que j'ai posté ce sujet.
Veuillez m'excuser, si je n'ai pas été assez explicite.
Voilà le reste du code.
Si, cela m'a aidé. Je vous remercie encore infiniment.
Mais je n'ai réussi à l'appliquer qu'à l'onglet actif, et non au classeur tout entier.. C'est pour cette raison que j'ai posté ce sujet.
Veuillez m'excuser, si je n'ai pas été assez explicite.
Voilà le reste du code.
Sub Export_Graphiques_Vers_Word() Dim wrdApp As Word.Application Dim wrdDoc As Word.Document Dim ws As Worksheet Dim sh As Worksheet, i As Long Dim AnyString, a Application.ScreenUpdating = False Set ws = ThisWorkbook.Sheets(1) 'Onglet contenant les graphiques Set wrdApp = GetObject(, "Word.Application") Set wrdDoc = wrdApp.ActiveDocument For Each Chart In ws.ChartObjects If Left(Chart.Name, 1) = "(" And ws.Tab.Color = RGB(128, 128, 128) Then 'ws.Tab.Color = RGB(40, 150, 160) Then '("Sheet1") = RGB(40, 150, 160) Then ActiveBooks.ChartObjects("(µ) Fv_SL_MECH").Chart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture wrdApp.Selection.Goto what:=wdGoToBookmark, Name:="Graphique2" ' on recherche le signet dans Word pour se positionner wrdApp.Selection.MoveRight wdCharacter, 1 'wrdApp.Selection.MoveLeft wdCharacter, 1 ' optionnel : pour se placer AVANT le signet (move left) wrdApp.Selection.PasteSpecial link:=False, DataType:=wdPasteMetafilePicture, Placement:=wdInLine, DisplayAsIcon:=False End If Next Chart ' -- Terminer wrdDoc.Save Set wrdDoc = Nothing: Set wrdApap = Nothing Application.ScreenUpdating = True 'Else: MsgBox "Erreur" End Sub
Option Explicit Sub Export_Graphiques_Vers_Word() Dim wrdApp As Word.Application Dim wrdDoc As Word.Document Dim onglet As Worksheet Dim graphique As Chart Application.ScreenUpdating = False Set wrdApp = GetObject(, "Word.Application") Set wrdDoc = wrdApp.ActiveDocument For Each onglet In ThisWorkbook.Sheets If onglet.Tab.Color = RGB(128, 128, 128) Then For Each graphique In onglet.ChartObjects If Left(graphique.Name, 1) = "(" Then 'ws.Tab.Color = RGB(40, 150, 160) Then '("Sheet1") = RGB(40, 150, 160) Then graphique.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture wrdApp.Selection.Goto what:=wdGoToBookmark, Name:="Graphique2" ' on recherche le signet dans Word pour se positionner wrdApp.Selection.MoveRight wdCharacter, 1 'wrdApp.Selection.MoveLeft wdCharacter, 1 ' optionnel : pour se placer AVANT le signet (move left) wrdApp.Selection.PasteSpecial link:=False, DataType:=wdPasteMetafilePicture, Placement:=wdInLine, DisplayAsIcon:=False End If Next graphique End If Next onglet ' -- Terminer wrdDoc.Save Set wrdDoc = Nothing: Set wrdApp = Nothing Application.ScreenUpdating = True End Sub