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 Excel Erreur d'execution 1004 : Erreur définie par l'application ou par l'objet [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 3
    Par défaut Macro Excel Erreur d'execution 1004 : Erreur définie par l'application ou par l'objet
    Bonjour,
    J'essaie simplement de tracer une courbe (x,y)
    Lorsque les deux colonnes sont jointes : pas de Pb
    lorsque les deux colonnes sont disjointes => erreur d'execution'1004' : Erreur définie par l'application ou par l'objet
    à la ligne "ActiveSheet.Shapes.AddChart.Select" et même en supprimant la ligne précédente "Range("C1").Activate"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
    '' Macro1 Macro
    '
        Range("A1:B13").Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlXYScatterLinesNoMarkers
        ActiveChart.SetSourceData Source:=Range("Feuil1!$A$1:$B$13")
        
        Range("A1:A13,C1:C13").Select
        Range("C1").Activate
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlXYScatterLinesNoMarkers
        ActiveChart.SetSourceData Source:=Range("Feuil1!$A$1:$A$13;Feuil1!$C$1:$C$13")
    End Sub
    Quelqu'un à une solution ?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Essaye:
    ActiveChart.SetSourceData Source:=Range("Feuil1!$A$1:$A$13 , Feuil1!$C$1:$C$13")
    même en supprimant la ligne précédente "Range("C1").Activate"
    A quoi te sert cette ligne ?
    Si la réponse est à rien que fait-elle dans ton code ?

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    A quoi te sert cette ligne ?
    Si la réponse est à rien que fait-elle dans ton code ?
    Je suis prêt à miser une pièce sur une réponse du style : "c'est l'enregistreur de macro qui l'a placée là et je ne me suis pas demandé pourquoi".
    (vu que le code ressemble furieusement au résultat brut de ce que fait l'enregistreur)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 3
    Par défaut erreur d'execution'1004' VBA Excel
    Merci, mais j'ai toujours le Pb,
    de la ligne 1 à 9 tout est OK,
    A la ligne 9 les cases A1:A13 et C1:C13 sont bien sélectionnées mais à la ligne 10 ça se plante avec le message "erreur d'execution'1004' : Erreur définie par l'application ou par l'objet"

    Effectivement la ligne "Range("C1").Activate" ne servait à rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub essai()
    
    '' Essai Macro
    '    Range("A1:B13").Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlXYScatterLinesNoMarkers
        ActiveChart.SetSourceData Source:=Range("Feuil1!$A$1:$B$13")
        
        Range("A1:A13,C1:C13").Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlXYScatterLinesNoMarkers
        ActiveChart.SetSourceData Source:=Range("Feuil1!$A$1:$A$13,Feuil1!$C$1:$C$13")
    
    End Sub
    Nota : La remarque de Menhir est très pertinente mais pas très constructive

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Citation Envoyé par Nicalb Voir le message
    Merci, mais j'ai toujours le Pb
    [...]
    Nota : La remarque de Menhir est très pertinente mais pas très constructive
    Désolé je n'avais pas vu que tu avais indiqué où se trouve le problème, j'en avais vu un plus loin mais pas le premier.

    Au contraire la remarque de Menhir est tout a fait constructive, l'enregistreur de macro c'est très bien mais il ajoute des lignes inutiles voir parfois sources d'erreur, c'est ton cas ici.
    La plupart des select sont inutile en VBA, le fait de sélectionner ta source avant de faire le graphe est inutile puis que tu la reprécise plus tard donc ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlXYScatterLinesNoMarkers
        ActiveChart.SetSourceData Source:=Range("Feuil1!$A$1:$A$13,Feuil1!$C$1:$C$13")
    suffit à créer ton graphe, et ne génère pas d'erreur

  6. #6
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour à tous,

    Sans vouloir défendre l'auteur du sujet, même l'exemple de la méthode AddChart de l'aide VBA sélectionne la plage avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Range("A10:B14").Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=Range("Sheet1!$A$10:$B$14"), PlotBy:= _
            xlColumns
        ActiveChart.ChartType = xlCylinderColStacked
    Cela dit, une variante du code d'Halaster08, avec les objets déclarés et le positionnement du second sous le premier, donne :

    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
    28
    29
    30
    Option Explicit
     
    Sub essai()
    Dim Sh As Shape, Chrt As Chart, WshSource As Worksheet, RngSource As Range
    Dim Top As Long, Left As Long, Height As Long
     
       Set WshSource = Worksheets("Feuil1")
       With ActiveSheet
          'premier
          Set Sh = .Shapes.AddChart(xlXYScatterLinesNoMarkers)
          With Sh
             Set Chrt = .Chart
             Top = .Top + 5
             Left = .Left
             Height = .Height
          End With
          Set RngSource = WshSource.Range("$A$1:$B$13")
          Chrt.SetSourceData Source:=RngSource
     
          'second
          Set Sh = .Shapes.AddChart(xlXYScatterLinesNoMarkers, Left, Height + Top)
          Set Chrt = Sh.Chart
          Set RngSource = WshSource.Range("$A$1:$A$13,$C$1:$C$13")
          Chrt.SetSourceData Source:=RngSource
       End With
       Set Sh = Nothing
       Set Chrt = Nothing
       Set WshSource = Nothing
       Set RngSource = Nothing
    End Sub

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2018
    Messages : 3
    Par défaut erreur d'execution'1004' : Erreur définie par l'application ou par l'objet
    Merci beaucoup,
    ça marche

    pas évident de trouver quand on est pas expert et que l'on développe des macros ponctuellement

    Cordialment

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur d'execution '1004' Erreur définie par l'application ou l'objet
    Par crameur dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/10/2018, 15h44
  2. Réponses: 2
    Dernier message: 09/04/2017, 09h53
  3. [XL-2007] Erreur d'execution 1004 - Erreur définie par l'application ou l'objet
    Par askior dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/04/2015, 11h34
  4. [XL-2010] Erreur d'execution 1004: Erreur définie par l'application ou par l'objet
    Par Grolligrolla dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/12/2013, 15h19

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