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 :

Manipuler une (sous)zone de texte appartenant à un groupe (de zones de texte)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 66
    Par défaut Manipuler une (sous)zone de texte appartenant à un groupe (de zones de texte)
    Bonjour,

    J'ai un fichier excel (généré par macro) qui contient beaucoup de zones de texte (qui finissent par "_1", "_2"ou "_3") que j'ai groupées lot par lot (qui commencent par "PB_") :

    Nom : screen.png
Affichages : 377
Taille : 16,3 Ko

    J'aimerais récupérer les données contenues dans les zones de texte qui finissent par "_3" et dont la zone de texte finissant par "_2" est égale à OK.
    Par exemple, ci-dessus, j'aimerais récupérer "texte 3". mais pas "Texte 6"

    Voici le code que j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        For Each S In ActiveSheet.Shapes                   'Je parcours l'ensemble des shapes de ma feuille
                If Left(S.Name, 3) = "PB_" Then                                      'Je fais le tri sur uniquement les groupes commencant par PB_ parce que j'ai aussi d'autres shapes dans mon fichier (images, flèches, ...) --> OK
                    Identifiant_PB = Right(S.Name, Len(S.Name) - 3)         'Je récupère l'identifiant du bloc --> OK
                    S.Range(Identifiant_PB & "_2").Select                          'J'essaye de selectionner le sous-bloc finissant par _2. --> NOK
                    If S.Range(Identifiant_PB & "_2").TextFrame2.TextRange.Characters.Text = "OK" Then                              'Je teste si le sous-bloc finissant par _2 est égal à "OK" --> NOK
                        Contenu_PB = S.Range(Identifiant_PB & "_3").TextFrame2.TextRange.Characters.Text                           'Je stocke le contenu du sous-bloc finissant par _3 dans une variable --> NOK
     
                    End If
                End If
        Next S
    Dans ce code, tant que je manipule le groupe, pas de souci.
    dès que j'essaye d'atteindre une sous zone --> Echec

    Une idée?

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Février 2013
    Messages : 66
    Par défaut
    Merci à tous pour vos réponses.
    J'ai trouvé l'erreur.

    En écrivant S.Range(Identifiant_PB & "_2").Select, j'essayais de trouver la zone de texte Identifiant_PB & "_2" situé dans le shape S.

    Hors S était celle d'a coté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For Each S In ActiveSheet.Shapes
                If Left(S.Name, 3) = "PB_" Then
                    Identifiant_PB = Right(S.Name, Len(S.Name) - 3)
                    Fichier_Synoptique.Sheets(1).Shapes.Range(Identifiant_PB & "_2").Select
                    If Fichier_Synoptique.Sheets(1).Shapes.Range(Identifiant_PB & "_2").TextFrame2.TextRange.Characters.Text = "OK" Then
                        Contenu_PB = Fichier_Synoptique.Sheets(1).Shapes.Range(Identifiant_PB & "_3").TextFrame2.TextRange.Characters.Text
     
                    End If
                End If
    Next S

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/04/2007, 15h06
  2. Réponses: 3
    Dernier message: 20/04/2007, 17h26
  3. Réponses: 1
    Dernier message: 28/03/2007, 11h38
  4. Réponses: 2
    Dernier message: 20/12/2006, 08h26
  5. copie d'une zone de texte vers une autre zone de texte
    Par db48752b dans le forum Access
    Réponses: 7
    Dernier message: 23/08/2006, 08h41

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