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 :

Vérifier l'existence d'une shape


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1
    Par défaut Vérifier l'existence d'une shape
    Bonsoir à tous,

    J'ai un petit soucis avec une programmation en VBA,
    Voilà, j'ai un tableau croisé dynamique, jusqu'à là rien de difficile, et quand j'ai une certaine valeur pour disons A, je veux qu'il me crée une forme et y inscrit dedans la valeur de A, çà j'y arrive, également, quand A = 0 qu'il m'efface cette forme, çà j'y arrive aussi, mais quand je modifie la valeur de A, une erreur se produit.
    En clair,
    Si A <> 0 et Forme de A n'existe pas alors faire la forme et y inscrire la valeur de A
    Si A <> 0 et Forme de A existe alors inscrire la valeur
    (Si A = 0 et Forme de A n'existe pas alors ne rien faire, se fait naturellement ^^)
    Si A = 0 et Forme de A existe alors effacer la Forme de A.

    Voici ma macro qui va avec:
    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
    Sub NVAapparition()
     
        Dim ValTextBox As String
        ValTextBox = Format(Range("F1").Value, "#0.00") & " %"
     
                If Format(Range("F1").Value) <> 0 Then
                    ActiveChart.Shapes.AddShape(msoShapeRoundedRectangle, 542.25, 48#, 82.5, _
                        23.25).Select
                    Selection.ShapeRange.Fill.Visible = msoTrue
                    Selection.ShapeRange.Fill.Solid
                    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 43
                    Selection.ShapeRange.Fill.Transparency = 0#
                    Selection.ShapeRange.Line.Weight = 0.75
                    Selection.ShapeRange.Line.DashStyle = msoLineSolid
                    Selection.ShapeRange.Line.Style = msoLineSingle
                    Selection.ShapeRange.Line.Transparency = 0#
                    Selection.ShapeRange.Line.Visible = msoTrue
                    Selection.ShapeRange.Line.ForeColor.SchemeColor = 53
                    Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
                    Selection.ShapeRange.AlternativeText = "NVA"
                    Selection.ShapeRange.Name = "NVA"
                    Selection.Characters.Text = "NVA: " & ValTextBox
                    Selection.AutoScaleFont = False
                    With Selection.Font
                        .Name = "Arial"
                        .FontStyle = "Gras"
                        .Size = 10
                        .Strikethrough = False
                        .Superscript = False
                        .Subscript = False
                        .OutlineFont = False
                        .Shadow = False
                        .Underline = xlUnderlineStyleNone
                        .ColorIndex = 3
                    End With
                    With Selection
                        .HorizontalAlignment = xlCenter
                        .VerticalAlignment = xlCenter
                        .ReadingOrder = xlContext
                        .Orientation = xlHorizontal
                        .AutoSize = False
                    End With
                End If
     
     
                If Format(Range("F1").Value) = 0 Then
                    ActiveChart.Shapes("NVA").Delete
                Else
     
                End If
    Merci d'avance aux courageux qui m'aideront
    Bonne soirée

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonjour,

    En ajoutant ceci cela fonctionne chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    On Error GoTo suite
        ActiveChart.Shapes("NVA").TextFrame.Characters.Text = "NVA: " & ValTextBox
        Exit Sub
     
    suite:
    On Error GoTo 0
    entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      If Format(Range("F1").Value) <> 0 Then
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveChart.Shapes.Add  .....

Discussions similaires

  1. TComponent: vérifier l'existence d'une propriété
    Par TicTacToe dans le forum Delphi
    Réponses: 6
    Dernier message: 31/05/2006, 15h28
  2. Vérifier l'existence d'une valeur?
    Par ashen dans le forum Access
    Réponses: 8
    Dernier message: 19/05/2006, 17h10
  3. Vérifier l'existence d'une table SQL
    Par rock_thunder159 dans le forum C++Builder
    Réponses: 5
    Dernier message: 16/02/2006, 13h41
  4. vérifier l'existance d'une table dans une base de donnée
    Par zidenne dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/10/2005, 11h39
  5. Réponses: 3
    Dernier message: 05/04/2005, 14h36

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