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 :

Mettre en forme une forme libre en la traçant


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut Mettre en forme une forme libre en la traçant
    Bonjour à tous,
    Désolé de vous déranger, je ne trouve pas de solution à mon problème et je m'arrache les cheveux dessus !
    J'ai une boucle qui trace une forme libre en fonction de coordonnées de noeuds que j'ai dans un onglet différent
    Voici le code associé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sheets("Data").Select
    Range(DébutdelaZoneATracer).Select
    Do Until ActiveCell.Value <> ZoneATracer
    With Sheets("Z1").Shapes.BuildFreeform(msoEditingAuto, ActiveCell.Offset(-1, 3).Value, ActiveCell.Offset(-1, 4).Value)
        .AddNodes msoSegmentLine, msoEditingAuto, ActiveCell.Offset(0, 3).Value, ActiveCell.Offset(0, 4).Value
        .ConvertToShape
    End With
    Activecell.Offset(1,0).Select
    Loop
    J'aurai besoin de mettre en forme cette forme (par exemple en pointillés verts) au fur et à mesure que je la trace, car ensuite j'ai d'autres boucles qui vont tracer d'autres formes par dessus celle-ci dans d'autres mise en forme pour simuler différentes "couches".
    Je ne peux donc pas sélectionner toute la forme car je dois faire de même avec les formes suivantes et je ne veux pas que toutes les couches soient les mêmes...

    Je m'arrache les cheveux dessus, s'il vous plaît aidez-moi à sauver mes cheveux !
    Merci par avance !

  2. #2
    Membre averti
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Juin 2020
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2020
    Messages : 33
    Par défaut
    Bon, j'ai trouvé une solution en remplaçant la forme libre par des segment et en utilisant un set.
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sheets("Data").Select
    Range(DebudelatZoneATracer).Select
    Do Until ActiveCell.Value <> ZoneATracer
    Set Forme = Sheets("Z1").Shapes.AddConnector(msoConnectorStraight, ActiveCell.Offset(-1, 3).Value, ActiveCell.Offset(-1, 4).Value, _
         ActiveCell.Offset(0, 3).Value, ActiveCell.Offset(0, 4).Value)
    With Forme.Line
                            .ForeColor.RGB = RGB(50, 125, 255)
                            .DashStyle = msoLineDash
                            .Weight = 2
                    End With
        
    ActiveCell.Offset(1, 0).Select
    Loop
    Merci à ceux auront lu et regardé au problème.

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

Discussions similaires

  1. modifier la couleur d'une forme libre
    Par TheRealMike dans le forum Excel
    Réponses: 3
    Dernier message: 25/07/2007, 18h33
  2. [access 2007] Mettre en forme du texte dans une requête
    Par kvoskol dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/03/2007, 16h35
  3. Réponses: 24
    Dernier message: 28/08/2006, 11h55
  4. Réponses: 4
    Dernier message: 30/06/2006, 15h26
  5. [VB]Comment mettre en forme une grille de données
    Par CBleu dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/02/2006, 09h58

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