IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Macros et VBA Excel Discussion :

Macro qui ne passe plus sous office 2013


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Points : 45
    Points
    45
    Par défaut Macro qui ne passe plus sous office 2013
    Bonjour,
    on m'avait créé une macro qui permettait la copie d'une plage Xls, et de la transformer en image jpeg.
    Depuis le passage à office 2013 il y a une erreur 1004 sur LeGraph.Chart.Paste.
    Je n'y connais rien en programmation, quelqu'un pourrait-il m'aider à corriger ce bug ?

    Merci d'avance.

    Une image de la macro est aussi en fichier joint.

    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
    Sub export_hiver_jpg()
    '
    ' export_hiver_jpg Macro
    ''1 Nommer les plages à sélectionner
    'Par mapeh
    Dim NomPlage, NomFich
    Dim LeGraph As Object
    Dim Rep As String
    Dim i As Byte
    Application.ScreenUpdating = False
    Rep = "G:\sites web\locweb\images\"   'Répertoire de sauvegarde
    NomPlage = Array("tarifrdcpleneyhiver", "tarifduplexnyonhiver", "tarifduplexavoriazhiver", "tarifchaletarthurhiver", "tarifchaletlenidhiver", "tarifarthursaisonhiver")                       'Nom de tes plages
    NomFich = Array("tarifrdcpleneyhiver", "tarifduplexnyonhiver", "tarifduplexavoriazhiver", "tarifchaletarthurhiver", "tarifnidhiver", "tarifarthursaisonhiver")                    'Nom des fichiers de sortie correspondants
    ' "tarifrdcpleneyhiver", "tarifduplexnyonhiver", "tarifduplexavoriazhiver", "tarifchaletarthurhiver", "tarifchaletlenidhiver"
    ' "tarifrdcpleneyete", "tarifduplexnyonete", "tarifduplexavoriazete", "tarifchaletarthurete", "tarifchaletlenidete"
    With Sheets("HIVER")     'nom de la feuille ou sont les plages
       For i = LBound(NomPlage) To UBound(NomPlage)
          .Range(NomPlage(i)).CopyPicture
          Set LeGraph = .ChartObjects.Add(0, 0, .Range(NomPlage(i)).Width, .Range(NomPlage(i)).Height)
         LeGraph.Chart.Paste
          LeGraph.Chart.Export Filename:=Rep & NomFich(i) & ".jpg"
          LeGraph.Delete
       Next i
    End With
     
    '
    End Sub
    Nom : macroxls.jpg
Affichages : 320
Taille : 419,6 Ko
    Cordialement
    JC Richard

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 767
    Points : 10 764
    Points
    10 764
    Par défaut
    Bonjour, as-tu pensé ajouter la collection adéquate ?
    Dans visual basic editor, Outils puis référence. Notamment la collection Ole Automation.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Points : 45
    Points
    45
    Par défaut Ole automation
    Merci pour l'info, j'ai essayé, j'ai même installé des compléments depuis le site microsoft, mais le problème reste inchangé.
    Cordialement
    JC Richard

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je n'ai pas Excel 2013, mais j'ai voulu essayer votre code sur mon Excel 2010. Tout est OK.

    J'ai ensuite fait manuellement l'essai suivant :

    - J'ai d'abord créé une capture d'écran que j'ai collée sur la feuille. Puis j'ai copié l'image.

    - Puis avec l'enregistreur de macro (créer une macro)

    -J'ai créé un graphe (n'importe lequel)
    -J'ai fait un coller sur le graphe. L'image s'est bien déversée dans le graphe.

    -J'ai terminé la macro.

    J'ai transposé le résultat de la macro dans dans celle-ci :

    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
     
    Sub SansPlageAvecShapesAddChartAEssayer()
     
    Dim Rep As String
     
        Rep = "C:\Users\Eric\Documents\VBA Excel\Développez-Com\Images\Export Jpeg\"
     
        With ActiveSheet
     
             .Shapes.Range(Array("Picture 1")).Select
             Selection.Copy
             .Shapes.AddChart.Select
     
             'Application.DisplayAlerts = False
             With ActiveChart
                .Paste
                .Export Filename:=Rep & "tarifrdcpleneyhiver" & ".jpg"
             End With
             'Application.DisplayAlerts = True
     
        End With
     
    End Sub
    Et cela a fonctionné.

    Regardez ce que vous obtenez avec cette méthode.


    Cordialement.

Discussions similaires

  1. Boutons macro ne marchent plus sous office 2007
    Par Denis_67 dans le forum SAP
    Réponses: 6
    Dernier message: 09/12/2013, 13h49
  2. [XL-2013] Macros xl ne marchent plus sous excel 2013
    Par burotic2009 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/09/2013, 20h21
  3. [XL-2007] Macro développé sous Excel 2000 qui ne marche plus sous 2007
    Par gled2006 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 21/08/2009, 10h14
  4. Problème jointure gauche qui ne passe plus sous MySQL 5
    Par OuiOui007 dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/09/2006, 10h33
  5. un truc qui ne passe pas sous firefox ...
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 39
    Dernier message: 08/11/2005, 15h59

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