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 :

Suppression d'un graphe S'IL EXISTE!


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Par défaut Suppression d'un graphe S'IL EXISTE!
    Bonjour,

    Je souhaite supprimer un graphe S'IL EXISTE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Pressure Plot").Select
    ActiveWindow.SelectedSheets.Delete
    Le probleme est que je ne sais pas comment mettre une condition sur l'existance du Graphe "Pressure Plot" pour le supprimer.

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Une solution consiste à ignorer l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    On Error Resume Next
    Sheets("Pressure Plot").Select
    ActiveWindow.SelectedSheets.Delete
    On Error Goto 0

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, à adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
     
    Private Function FeuilleExiste(ByVal sNom As String) As Boolean
        On Error Resume Next
        FeuilleExiste = Sheets(sNom).Name <> ""
        Err.Clear
    End Function
     
    Sub tst()
        Debug.Print FeuilleExiste("Pressure Plot")
    End Sub

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 171
    Par défaut
    Merci a tous,

    ce code fonctionne si "Pressure Plot" existe deja donc je le supprime (l'ancien dans le workbook) au debut du code ensuite je le recrée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    On Error Resume Next
    Sheets("Pressure Plot").Select
    ActiveWindow.SelectedSheets.Delete
    On Error GoTo 0
     
    Charts.Add
    ActiveChart.Name = "Pressure Plot"
    ActiveChart.ChartType = xlLine

    Par contre si le graphe n'existe pas il genere le snap joint (il me propose de supprimer la feuille selectionné; pas le graphique!). il faut cliquer sur Cancel pour le créer (le graphe). Alors que je souhaite qu'il le crée tout simplement s'il n'existe pas..

    Enfin je veux qu'il le crée simplement s'il n'existe pas et qu'il le supprime et le recrée s'il existe..
    Images attachées Images attachées  

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, à tester et adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        If FeuilleExiste("Pressure Plot") Then
            Application.DisplayAlerts = False
            Sheets("Pressure Plot").Select
            ActiveWindow.SelectedSheets.Delete
            Application.DisplayAlerts = True
     
            Charts.Add
            ActiveChart.Name = "Pressure Plot"
            ActiveChart.ChartType = xlLine
            Else
            '.....
        End If

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Essais comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    On Error Resume Next
    Application.DisplayAlerts = False
    Sheets("Pressure Plot").Delete
    Application.DisplayAlerts = True
    On Error GoTo 0
     
    Charts.Add
    ActiveChart.Name = "Pressure Plot"
    ActiveChart.ChartType = xlLine

  7. #7
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    il y a des écoles qui honnissent les traitements d'erreur dérivés à des fins pirouettiques (cf certains articles DVP), sans forcément aller jusque là, je suis pour les éviter si possible.

    Après c'est selon le contexte du traitement, unique ou non etc...
    je verrais donc les choses ainsi sauf dans le cas où developpeur82 aurait un grand nombre de feuilles de graph qui rendraient la boucle trop lourde.....

    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
    Option Explicit
     
    Sub gogo()
        Call Ajout
    End Sub
     
     
    Sub Ajout()
    Dim Cible As Chart
     
    For Each Cible In ThisWorkbook.Charts 'ou pas Thisworkbook...
        If Cible.Name = "Pressure Plot" Then
            Application.DisplayAlerts = False
            Cible.Delete
            Application.DisplayAlerts = True
            Exit For
        End If
    Next Cible
    Charts.Add
    ActiveChart.Name = "Pressure Plot"
    End Sub
    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

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

Discussions similaires

  1. suppression d'une feuille si elle existe
    Par benoi dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/12/2008, 20h56
  2. Réponses: 4
    Dernier message: 12/08/2008, 15h40
  3. [eXist] Suppression d'une collection.
    Par bitou dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 08/01/2007, 11h06
  4. [Excel] Suppression d'un Worksheet seul. si existant
    Par Ken.L dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2006, 08h58
  5. Réponses: 25
    Dernier message: 04/12/2004, 12h06

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