Récupérer tout le fichier excel et non le classeur ouvert
Fermé
Enshuk
-
14 févr. 2020 à 10:24
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 15 févr. 2020 à 11:17
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 15 févr. 2020 à 11:17
A voir également:
- Récupérer tout le fichier excel et non le classeur ouvert
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Fichier rar - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
4 réponses
yg_be
Messages postés
23448
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
Ambassadeur
1 562
14 févr. 2020 à 10:57
14 févr. 2020 à 10:57
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.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
14 févr. 2020 à 11:06
14 févr. 2020 à 11:06
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
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
15 févr. 2020 à 11:17
15 févr. 2020 à 11:17
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
yg_be
Messages postés
23448
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
1 562
Modifié le 14 févr. 2020 à 11:41
Modifié le 14 févr. 2020 à 11:41
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