Erreur "408" pour une TextBox

aeliss

XLDnaute Nouveau
Bonjour,
J'ai un bouton activeX sur une feuille excel (ici nommée "Installation"), je veux qu'en appuyant dessus, une Textbox soit générée dans une autre feuille (nommée "Scheme")

J'ai déjà un bouton activeX directement sur la bonne feuille, qui fonctionne parfaitement. Mais si je mets ce code sur un bouton qui est dans une autre feuille ça ne fonctionne pas, cela m'affiche "Erreur 408 : Propriété ou méthode non gérée par cet objet".
L'erreur survient à la ligne "Selection.ShapeRange.Fill.Visible=msotrue mais si je supprime cette ligne, l'erreur se décale à toutes les lignes suivantes.


Worksheets("Scheme").Shapes.AddTextbox(msoTextOrientationHorizontal, 10.6 * Line, 41.5 * Column, 1.9 * Line, 1.6 * Column).Select
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 1#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.Characters.Text = Worksheets("Installation").Range("H6").Text
With Selection.Characters(Start:=1).Font
.Name = "Arial Black"
.Size = 10

End With

Je m'excuse d'avance, je ne peux pas mettre le fichier complet.

Merci pour votre aide !
 

vgendron

XLDnaute Barbatruc
Bonjour
si la feuille sur laquelle tu places ton bouton n'est pas la feuille active, tu risques effectivement d'avoir un pb

essaie ceci.. peut etre..
VB:
with Worksheets("Scheme")
      .activate
      .Shapes.AddTextbox(msoTextOrientationHorizontal, 10.6 * Line, 41.5 * Column, 1.9 * Line, 1.6 * Column).select
     with selection
              .ShapeRange.Fill.Visible = msoTrue
              .ShapeRange.Fill.Solid
              .ShapeRange.Fill.Transparency = 0#
              .ShapeRange.Line.Weight = 0.75
              .ShapeRange.Line.Style = msoLineSingle
               .ShapeRange.Line.Transparency = 1#
               .ShapeRange.Line.Visible = msoTrue
              .Characters.Text = Worksheets("Installation").Range("H6").Text
             With  .Characters(Start:=1).Font
                      .Name = "Arial Black"
                     .Size = 10
             end with
      end with
End With
 

job75

XLDnaute Barbatruc
Bonjour aeliss, vgendron,
Je n'avais pas du tout penser à un .Activate.
On l'a dit mille fois, en VBA les .Select ou .Activate sont inutiles, voire nuisibles :
VB:
With Worksheets("Scheme").Shapes.AddTextbox(msoTextOrientationHorizontal, 10.6 * Line, 41.5 * Column, 1.9 * Line, 1.6 * Column)
    .Fill.Visible = msoTrue
    .Fill.Solid
    .Fill.Transparency = 0#
    .Line.Weight = 0.75
    .Line.Style = msoLineSingle
    .Line.Transparency = 1#
    .Line.Visible = msoTrue
    .TextFrame.Characters.Text = Worksheets("Installation").Range("H6").Text
    With .TextFrame.Characters(Start:=1).Font
        .Name = "Arial Black"
        .Size = 10
    End With
End With
A+
 

Statistiques des forums

Discussions
312 215
Messages
2 086 322
Membres
103 178
dernier inscrit
BERSEB50