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 :

Supprimer un graphique s'il existe, sinon le créer


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut Supprimer un graphique s'il existe, sinon le créer
    Bonjour,

    En fouillant sur le forum j'ai trouvé ce code proposé par Mercatog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim ws as worksheet
    nom = ComboBox1.Value
    for each ws in worksheets
      if ws.name=nom then
        ws.delete
        exit for
      end if
    next ws
    Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = nom
    Cependant je n'arrive pas à l'adapter à mon utilisation (suppression d'un graphique s'il existe sinon le créer)

    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
    Dim G1 As Chart f as workchart
        Dim ws1 As Worksheet
        Dim PlageDonnees1 As Range
        Dim PlageX1 As Range
        Dim PlageY1 As Range
        Dim MaSerie1 As Series
        Dim Compteur1 As Long
        Dim Col1 As Long
        Dim Lig1 As Long
        Dim ws As Worksheet
     
        For Each ws In worksheets
            If ws.Name = ("Graphique") Then
                ws.Delete
                Exit For
            End If
        Next ws
     
        Set G1 = ThisWorkbook.Charts.Add 'Ajout d'une feuille MonGraphe au classeur
            G1.Name = "Graphique"
            G1.ChartArea.Clear 'Effacement des données du graphe
            G1.ChartType = xlXYScatter 'Définition du type de graphique (nuage de points)
    Merci pour votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Je n'ai pas compris si ton graphique est sur une feuille de données ou sur une feuille de graphique.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut
    Bonjour Daniel,

    Mon graphique est sur une feuille de graphique

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Je n'ai touché qu'à la partie suppression :

    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
    Sub test4()
        Dim G1 As Chart
        Dim ws1 As Worksheet
        Dim PlageDonnees1 As Range
        Dim PlageX1 As Range
        Dim PlageY1 As Range
        Dim MaSerie1 As Series
        Dim Compteur1 As Long
        Dim Col1 As Long
        Dim Lig1 As Long
        Dim f As Chart
     
        For Each f In Charts
            If f.Name = ("Graphique") Then
                Application.DisplayAlerts = False
                f.Delete
                Application.DisplayAlerts = True
                Exit For
            End If
        Next f
     
        Set G1 = ThisWorkbook.Charts.Add 'Ajout d'une feuille MonGraphe au classeur
            G1.Name = "Graphique"
            G1.ChartArea.Clear 'Effacement des données du graphe
            G1.ChartType = xlXYScatter 'Définition du type de graphique (nuage de points)
    End Sub

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut
    Ça fonctionne très bien merci beaucoup Daniel.C

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

Discussions similaires

  1. [XL-2003] Supprimer une feuille si elle existe, sinon la créer
    Par nekcorp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/10/2009, 11h03
  2. supprimer graphique s'il existe
    Par petibonohm dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2008, 10h25
  3. [Upload] Supprimer un fichier s'il existe
    Par snaxisnake dans le forum Langage
    Réponses: 1
    Dernier message: 22/05/2007, 13h31
  4. Réponses: 22
    Dernier message: 04/04/2007, 15h24
  5. Tester existance répertoire, sinon le créer
    Par sunvialley dans le forum Access
    Réponses: 2
    Dernier message: 11/07/2006, 11h07

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