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 :

err 1004 erreur définie par l'application ou par l'objet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Par défaut err 1004 erreur définie par l'application ou par l'objet
    Bonjour.
    Sur le fichier joint : j'ouvre un formulaire grâce au bouton de la feuille ("Morphotype"). Ensuite sur ce même formulaire en cliquant sur le bouton "Min" je crée un premier graphique derrière le formulaire pour voir ce graphique ce formulaire se réduit automatiquement.
    Lorsque j'agrandis à sa taille normale le formulaire et veux crée un autre graphique avec le bouton Normal. ça se plante et est affiché:
    err 1004 erreur définie par l'application ou par l'objet.
    En outre, lorsque l'on actionne le bouton "Normal" en premier et le bouton "Min" en second ça fonctionne mais si je reviens sur le bouton "Normal" ça se plante en commençant le graphique demandé et sans le finir. Là j'avoue vraiment ne rien y comprendre, je n'arrive vraiment pas à identifier où ça se plante.

    Si l'un de vous avait une idée....

    Merci par avance;
    cordialement
    Bernard
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Par défaut
    Bonjour, pourquoi minimiser le formulaire, n'est t-il pas plus simple de le fermer.
    un simple bouton qui passe d'un graphique a l'autre sur clic n'était t-il pas plus simple.
    je clic, si condition1 = vrai alors normal
    else alors min.
    J'ai modifier le code du bouton de la feuille morphotype de la facon suivante. Impec. Plus besoin de userform et pas de plantage.


    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
    Private Sub BtnSaisie_Click()
     '    UserForm1.Show
     
    If [d4] = "normal" Then
    Dissocier
    Initialisation
    GraphiquePoids
    [d4] = "min"
    Else
        Dissocier
        Initialisation
        CreationCentrageTxtBox
        TraceMorphotype
        [d4] = "normal"
    End If
     
    End Sub

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour

    déjà tu pourrais mettre ton userform a show 0 (modless) pour pouvoir travailler sur les cellules puisque c'est le cas
    plutôt qu'utiliser des apis donc le code commence un peu a dater


    ensuite pourquoi mettre le userform en barre des taches un simple hide suffirait si il fallait garder des information a l'intérieur
    ce qui n'est pas le cas je crois
    un unload suffit
    un reclique réaffiche le userform
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    A mon avis, le problème vient de la création du graphique et plus particulièrement de "SetSourceData" peut être qu'il faudrait définir l'adresse dans un String avant :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    Sub GraphiquePoids()
    '
    ' GraphiquePoids Macro
    ' Macro enregistrée le 18/06/2010 par bernard.maillot
    '
     
    Dim Graph As ChartObject
    Dim NomFeuil, Col, PoidsIdeal
    Dim NumCol As Long
    Dim C As Chart
    Dim WindowWidth As Double, WindowHeight As Double
    Dim Adr As String
     
    WindowWidth = ActiveWindow.UsableWidth * (100 / ActiveWindow.Zoom) - 18
    WindowHeight = ActiveWindow.UsableHeight * (100 / ActiveWindow.Zoom) - 18
    NomFeuil = Sheets("Data").Cells(24, 2).Value 'FrmMensurations.CBNom
     
    For Each Graph In Worksheets("Morphotype").ChartObjects
        If Graph.name = "SuiviPoids" Then
            Graph.Delete
                Else
                    GoTo Suite
     
        End If
     
    Next
    Suite:
     
    NumCol = Sheets(NomFeuil).Range("IV2").End(xlToLeft).Column
    Col = ChifVersLetre(NumCol)
    PoidsIdeal = Sheets(NomFeuil).Cells(5, 2).Value
     
        Set Graph = Worksheets("Morphotype").ChartObjects.Add(50, 100, 870, 410)
     
        Graph.name = "SuiviPoids"
     
        With Graph.Chart
     
            .ChartType = xlLineMarkers
            Adr = "C5:" & Col & "5,C1:" & Col & "1"
            'c'est ici à "SetSourceData" que le problème se produit parfois !!!!
            .SetSourceData Source:=Sheets(NomFeuil).Range(Adr), PlotBy:=xlRows
            .SeriesCollection(1).name = "=""Suivi"""
            .SeriesCollection.NewSeries
            .SeriesCollection(2).Values = "=" & NomFeuil & "!R7C3:R7C" & NumCol
            .SeriesCollection(2).name = "=""Idéal"""
            .HasTitle = True
            .ChartTitle.Characters.Text = "Suivi du poids"
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Dates"
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Poids (kg)"
            .HasAxis(xlCategory, xlPrimary) = True
            .HasAxis(xlValue, xlPrimary) = True
            .Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
            .Axes(xlValue).Select
            .PlotArea.Select
            .Axes(xlValue).Select
            .Axes(xlCategory, xlPrimary).CategoryType = xlCategoryScale
            .Axes(xlCategory).TickLabels.Orientation = 45
     
     
            With .SeriesCollection(2)
     
                .MarkerBackgroundColorIndex = xlAutomatic
                .MarkerForegroundColorIndex = xlAutomatic
                .MarkerStyle = xlNone
                .Smooth = False
                .MarkerSize = 5
                .Shadow = False
     
            End With
     
            With .Axes(xlValue)
     
                .MinimumScale = Int(PoidsIdeal - 10)
                .MaximumScaleIsAuto = True
                .MinorUnitIsAuto = True
                .MajorUnit = 10
                .Crosses = xlAutomatic
                .ReversePlotOrder = False
                .ScaleType = xlLinear
                .DisplayUnit = xlNone
     
            End With
     
        End With
     
     'Positionne le graphique au centre de la feuille
     Graph.Top = ((WindowHeight - Selection.Height) / 2) - 1
     Graph.Left = ((WindowWidth - Selection.Width) / 2) - 1
     
    End Sub
    Hervé.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Par défaut Re : erreur 1004 vba définie par l'application ou par l'objet
    Bonjour
    Merci pour ces réponses, mais je prèfère en rester à ma demande car je me creuse la tête pour comprendre pourquoi le graphique "poids" ne fonctionne pas alors qu'un autre graphique fonctionne très bien à sa place.
    Merci à vous trois.
    Cordialement
    Bernard

Discussions similaires

  1. [XL-2003] Erreur d'éxécution 1004 Erreur définie par l'application ou par l'objet
    Par tokis dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/06/2012, 14h18
  2. Erreur d'exécution 1004. Erreur définie par l'application ou par l'object
    Par Quentin15 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/06/2011, 20h59
  3. ERREUR 1004-erreur défini par l'application ou par l'objet
    Par zineb87 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2010, 16h40
  4. Erreur 1004 définie par l'application ou par l'objet
    Par GreatDeveloperOnizuka dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/12/2007, 09h33

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