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 :

Gerer les propriété d'un TextBox (With, end With)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 46
    Points : 38
    Points
    38
    Par défaut Gerer les propriété d'un TextBox (With, end With)
    Bonjour,
    J'essaye de creer sur une feuille excel un Textbox qui a les propriétés suivantes:
    1. Il ne se déplace pas et ne se redimentionne pas avec les mouvements des cellules
    2. L'interieur de textbox est transparant(aucune couleur)
    3. la couleur du cadre est transparante(aucune couleur)
    4. les paramètres du textes sont aussi à determiner: taille, police......

    J'ai utilisé l'enregistreur de macros et dans le code qu'il me donne il y a plusieurs blocs With... End With. Et quand j'essaye de compliler il me sort des erreurs de non appartenance de la propriété à cet objet.(prop non gérée par cet objet...)
    Le problème c'est que je ne sais pas trop gerer les With... End With.(quand est ce que je peux imbriquer de s blocs With....)

    voila mon 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
    28
    29
    30
    31
    32
    33
    34
    Sub Procedure()
     
    Dim Chaine_de_caracteres As String
    Dim ZoneText As Shape 'Je ne suis pas tout à fait sûr
     
    Set ZoneText = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 380, 60, 180, 20)
     
            With .TextFrame.Characters(Start:=1, Length:=longeur de la chaine).Font
                .Name = "Arial"
                .FontStyle = "Normal"
                .Size = 10
                .Strikethrough = False
                .Superscript = False
                .Subscript = False
                .OutlineFont = False
                .Shadow = False
                .Underline = xlUnderlineStyleNone
                .ColorIndex = xlAutomatic
            End With
     
            ZoneText.ShapeRange.Fill.Visible = msoFalse
            ZoneText.ShapeRange.Fill.Transparency = 0#
            ZoneText.ShapeRange.Line.Weight = 0.75
            ZoneText.ShapeRange.Line.DashStyle = msoLineSolid
            ZoneText.ShapeRange.Line.Style = msoLineSingle
            ZoneText.ShapeRange.Line.Transparency = 0#
            ZoneText.ShapeRange.Line.Visible = msoFalse
     
            With ZoneText
                .Placement = xlFreeFloating 'Ne dépend pas des mouvements des cellules
                .PrintObject = True
            End With
     
    End Sub
    PS: J'essaye le plus possible de ne pas utiliser de "Select" dans mon code.

    Merci pour vos eclaircissements.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 150
    Points
    20 150
    Par défaut
    bonjour

    Tu ppeux adapter cette syntaxe

    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
    Dim Chaine_de_caracteres As String
    Dim ZoneText As Shape
     
    Set ZoneText = ActiveSheet.Shapes. _
            AddTextbox(msoTextOrientationHorizontal, 380, 60, 180, 20)
     
    With ZoneText
        With .TextFrame.Characters.Font
            .Name = "Arial"
            .FontStyle = "Normal"
            .Size = 10
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ColorIndex = xlAutomatic
        End With
     
        .Fill.Visible = msoFalse
        .Fill.Transparency = 0#
        .Line.Weight = 0.75
        .Line.DashStyle = msoLineSolid
        .Line.Style = msoLineSingle
        .Line.Transparency = 0#
        .Line.Visible = msoFalse
     
        .Placement = xlFreeFloating 'Ne dépend pas des mouvements des cellules
        .ControlFormat.PrintObject = True
    End With


    bonne soirée
    michel

Discussions similaires

  1. Utilité de With/End With ?
    Par OtObOx dans le forum Général VBA
    Réponses: 4
    Dernier message: 27/02/2011, 02h30
  2. [CR ?] gerer les propriétés des objets via les formules?
    Par Flamby38 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 25/06/2008, 18h01
  3. [VBA-E] Limitation des With...End With
    Par bernard38 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/10/2006, 16h59
  4. [VB.NET] With...End With et performances ?
    Par Dnx dans le forum Windows Forms
    Réponses: 9
    Dernier message: 06/04/2005, 13h37

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