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 :

Boucle sur des objets d'une feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut Boucle sur des objets d'une feuille
    bonjour le forum

    je dispose de certains objet sur ma feuille que j'ai nommé "Rectangle" je voudrais masquer 16 d'entre eux j'ai met un code pour le faire mais malheureusement il masque tous et non pas 16.

    voici le code :

    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
    Sub MasqueFormulaire()
    Dim Sh As Shape
    Dim Tableau() As String
    Dim i As Integer
     On Error Resume Next
     
        'Boucle sur les formes de la feuille active
        For Each Sh In Feuil1.Shapes
            'Vérifie si le nom de la forme commence par "Rectangle".
            If Left(Sh.Name, 9) = "Rectangle" Then
                For i = 1 To 15
                'Redéfinit la taille du tableau et intègre le nom de la forme.
                ReDim Preserve Tableau(1 To i)
                Tableau(i) = Sh.Name
        Next
     
        'On sort si le tableau est vide.
        If i = 0 Then Exit Sub
     
        'Regroupe les formes dont le nom se trouve dans le tableau
        Set Sh = Feuil1.Shapes.Range(Tableau).Group
        'masquer les formes"
        Sh.Visible = msoFalse
        End If
        Next
     
    End Sub
    merci d'avance pour votre aide

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Pourquoi ne pas les masquer directement dans ta condition ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Left(Sh.Name, 9) = "Rectangle" Then
    Sh.Visible = msoFalse
    end if

  3. #3
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut
    bonjour EngueEngue merci

    le problème c'est que ce code masque tous les rectangle dans la feuille alors que moi je voudrais masqué de "Rectangle 01" a "Rectangle 16" c'est a dire 16 objets
    même si je met le code masque dans la condition comme tu l'a suggerer ça change rien.

    merci

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sub MasqueFormulaire()
    Dim Sh As Shape
    Dim i As Integer
     On Error Resume Next
     
        'Boucle sur les formes de la feuille active
    For i = 1 to 16
        For Each Sh In Feuil1.Shapes
            If Sh.Name= "Rectangle" & i Then
    Sh.Visible = msoFalse
    end if
    next sh
    next i
    end sub

  5. #5
    Membre confirmé Avatar de BERRACHED SAID
    Inscrit en
    Janvier 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Janvier 2009
    Messages : 192
    Par défaut
    salut

    j'ai essayé ton code mais apparemment il donne rien ?????????

    merci encore

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Des fois il faut essayer de voir ce qu'il se passe sans recopier sans comprendre... il manquait un espace après rectangle..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sub MasqueFormulaire()
    Dim Sh As Shape
    Dim i As Integer
     On Error Resume Next
     
        'Boucle sur les formes de la feuille active
    For i = 1 to 16
        For Each Sh In Feuil1.Shapes
            If Sh.Name= "Rectangle " & i Then
    Sh.Visible = msoFalse
    end if
    next sh
    next i
    end sub

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    pourquoi utiliser For Each (=tous !) si ce n'est pas pour tous les traiter ? …


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

Discussions similaires

  1. Faire une boucle sur des OptionButton d'une feuille dans une userform
    Par Marty57070 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/06/2015, 07h23
  2. [XL-2010] Fair une boucle sur des objets Ranges
    Par Escorpion dans le forum Excel
    Réponses: 6
    Dernier message: 18/03/2015, 18h14
  3. [XL-2010] Boucle sur des contrôles d'une feuille de calcul
    Par Korleone dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/01/2011, 15h16
  4. Ajouter une textures sur des objets 3D openGL
    Par rere56 dans le forum 3D
    Réponses: 1
    Dernier message: 27/07/2007, 11h08
  5. Réponses: 1
    Dernier message: 05/07/2007, 14h48

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