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 :

add shape ne fonctionne pas


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 add shape ne fonctionne pas
    bonjour a tous
    la ligne en rouge me genere une erreur variable non definie
    pourtant en mode debugage quand je pointe la souris sur la variable elle est bien definie
    la variable "forme " prend le tag d'un bouton de ma command bar...ca ca fonctionne

    quelqu'un aurais une idéee

    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
    Sub enleve()
    
    
    Dim ShapeObj As Shape
    
    For Each ShapeObj In Sheets(2).Shapes
            If ShapeObj.Name <> "CommandButton1" Then
            ShapeObj.Delete
        End If
        Next ShapeObj
    End Sub
    Sub particule()
    enleve
    forme = CommandBars.ActionControl.Tag
    Dim couleur As Long
    hauteur = Sheets("enveloppe").Range("a20").Top
    largeur = Sheets("enveloppe").Range("j1").Left
    
    '"""""""""""""""""""""""""""""""""""""""""
    '1 ere partie
    For j = 1 To 100
        texture = Int((24 * Rnd)) + 1 'il ya 24 texture disponible
        couleurbleu = Int((255 * Rnd))
        couleurrouge = Int((255 * Rnd))
        couleurverte = Int((255 * Rnd))
        taille = Int((15 * Rnd))
        If taille < 6 Then taille = 6
            Randomize
            DoEvents
            haut = Int((hauteur * Rnd)) + 1
          larg = Int((largeur * Rnd)) + 1
      With Sheets("enveloppe").Shapes
        .AddShape(forme, larg, haut, taille, taille).Name = "etoile" & jWith Sheets("enveloppe").Shapes("etoile" & j)
    .Line.Visible = msoFalse
            .Fill.Visible = msoTrue
            .Fill.ForeColor.RGB = couleurbleu & couleurrouge & couleurverte
            .Fill.OneColorGradient msoGradientHorizontal, 1, 0.39
            
    End With
     End With
     Next
    
    
    For Each ShapeObj In Sheets(2).Shapes
           
           
           If Left(ShapeObj.Name, 6) = "etoile" Then
           i = Right(ShapeObj.Name, 1)
                If ShapeObj.Top > [h9].Top And ShapeObj.Left > [h10].Left And ShapeObj.Top < [h15].Top Then
            ShapeObj.Delete
            End If
            
            End If
        
    suite:
        Next ShapeObj
     End Sub
    merci pour le coup de main

    au plaisir
    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

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 121
    Par défaut
    Salut
    Essai comme ca

    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
    Option Explicit
    Sub enleve()
     
     
    Dim ShapeObj As Shape
     
    For Each ShapeObj In Sheets(2).Shapes
            If ShapeObj.Name <> "CommandButton1" Then
            ShapeObj.Delete
        End If
        Next ShapeObj
    End Sub
    Sub particule()
    enleve
    forme = CommandBars.ActionControl.Tag
    Dim couleur As Long
    hauteur = Sheets("enveloppe").Range("a20").Top
    largeur = Sheets("enveloppe").Range("j1").Left
     
    '"""""""""""""""""""""""""""""""""""""""""
    '1 ere partie
    For j = 1 To 100
        texture = Int((24 * Rnd)) + 1 'il ya 24 texture disponible
        couleurbleu = Int((255 * Rnd))
        couleurrouge = Int((255 * Rnd))
        couleurverte = Int((255 * Rnd))
        taille = Int((15 * Rnd))
        If taille < 6 Then taille = 6
        Randomize
        DoEvents
        haut = Int((hauteur * Rnd)) + 1
        larg = Int((largeur * Rnd)) + 1
        With Sheets("enveloppe").Shapes
            With .AddShape(forme, larg, haut, taille, taille)
                .Name = "etoile" & j
            'With Sheets("enveloppe").Shapes("etoile" & j)
                .Line.Visible = msoFalse
                .Fill.Visible = msoTrue
                .Fill.ForeColor.RGB = couleurbleu & couleurrouge & couleurverte
                .Fill.OneColorGradient msoGradientHorizontal, 1, 0.39
     
            End With
        End With
     Next
     
     
    For Each ShapeObj In Sheets(2).Shapes
        If Left(ShapeObj.Name, 6) = "etoile" Then
            i = Right(ShapeObj.Name, 1)
            If ShapeObj.Top > [h9].Top And ShapeObj.Left > [h10].Left And ShapeObj.Top < [h15].Top Then
                ShapeObj.Delete
            End If
        End If
     
    suite:
    Next ShapeObj
     
    End Sub
    Pense a déclarer tes variables, ça évite parfois bien des problèmes et heu avant de poster un code, il serait sympa de l'indenter comme il faut, c'est illisible tel quel.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  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 re
    bonjour quazerty

    je te remercie pour ta reponse rapide je vais essayer tout de suite

    quand a mes variables elles sont bien declarée je n'ai pas tout mis dans le post

    j'essaie et je revient

    au plaisir
    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
    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 re
    re

    ca ne fonctionne pas du tout ca ne fait absolument rien la je ne comprend pas

    la difference avec la mienne c'est les deux boucles "with et end with "

    a tu une idée?
    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

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 121
    Par défaut
    re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            With .AddShape(forme, larg, haut, taille, taille)
                .Name = "etoile" & CStr(j)
                .Line.Visible = msoFalse
                .Fill.Visible = msoTrue
                .Fill.ForeColor.RGB = couleurbleu & couleurrouge & couleurverte
                .Fill.OneColorGradient msoGradientHorizontal, 1, 0.39
     
            End With
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    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 re
    bonjour

    j'ai trouver une solution

    dans le tag de mon commandbarbutton je mettais par exemple "msoshapeheart"(coeur)
    et la variable"forme" prenait son tag comme valeur et elle etait de type variant

    maintenant la variable "forme et de type long
    et dans le tag du bouton je met l'index du type de mso
    et ca fonctionne


    au plaisir
    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

Discussions similaires

  1. select.option.add() ne fonctionne pas
    Par Xeuch dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/05/2013, 10h29
  2. Réponses: 6
    Dernier message: 30/05/2012, 13h16
  3. MyPanel4.Style.Add ne fonctionne pas.
    Par windows2056 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 05/09/2011, 17h34
  4. [SWING] jframe.add() ne fonctionne pas
    Par thomfort dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 21/04/2006, 00h10
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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