• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Autovormen verbergen

Status
Niet open voor verdere reacties.

cverkooyen

Gebruiker
Lid geworden
13 sep 2006
Berichten
140
Is het mogelijk om met VBA autovormen te verberen & zichtbaar te maken?

De code:

Rechthoek45.Visible = (Range("G41") = 0)

werkt niet.

Is het ook nog mogelijk om de hoogte van een autovorm met behulp van vba te wijzigen?
 
Wanneer moet het switchen tussen zichtbaar en onzichtbaar gebeuren? Automatisch bij verandering van G41, of enkel bij uitvoering van bepaalde code?

Wigi
 
Ik zou zeggen:

speel eens met de macrorecorder en een autovorm?

Code:
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 156.75, 112.5, 116.25, 119.25). _
        Select
    Range("H13").Select
    ActiveSheet.Shapes("Rectangle 1").Select
    Selection.ShapeRange.ScaleWidth 1.54, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 1.53, msoFalse, msoScaleFromTopLeft
    Range("I23").Select
    ActiveSheet.Shapes("Rectangle 1").Select
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.Solid
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 65
    Selection.ShapeRange.Fill.Transparency = 1#
    Selection.ShapeRange.Line.Weight = 0.75
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = msoLineSingle
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoTrue
    Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
    Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
    Range("G26").Select


groet,
Ferenc
 
Dan is dit de code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$G$41" Then ActiveSheet.Shapes("Rectangle 1").Visible = (Range("G41") = 0)
End Sub

Wigi
 
Let op toekomstige lezers, code hierboven is beter!!!!!!!

Zie dat Wigi er alweer mee aan de haal is gegaan.
En ******* de code is zo minimaal als altijd.

maar toch om niet mijn zweet voor niets te hebben verbruikt:
de lange en meer hobby manier:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    If Range("G41") > 0 Then
        Shapes("Rectangle 1").Fill.Transparency = 1#
        Shapes("Rectangle 1").Line.Transparency = 1#
    Else
        Shapes("Rectangle 1").Fill.Transparency = 0#
        Shapes("Rectangle 1").Line.Transparency = 0#
    End If
    
End Sub

groet,
Ferenc

ps,
kan beter mijn post weghalen zeker? wordt er niet duidelijker op.
mmmmmmmmm.
 
Laat de post maar staan, leren we ook uit. 2 opmerkingen Ferenc:

1. Selection change is teveel en dus onnodig: telkens als je een andere cel selecteert wordt de code uitgevoerd. Dit is niet nodig, enkel als er een cel wijzigt in inhoud moet de code uitgevoerd worden..

2. .Visible gebruiken is iets beter, maar .Transparency is ook doenbaar.

Wigi
 
Nog een kort vraagje over snelheid, wat is in dit geval sneller

Dit

CommandButton3.Visible = (Range("G37") = "Ja") And (Range("G41") = "Ja")
CommandButton1.Visible = (Range("G37") = "Ja") And (Range("G41") = "Ja")
CommandButton13.Visible = (Range("G37") = "Ja") And (Range("G41") = "Ja")

Of

If (Range("G37") = "Ja" And Range("G41") = "Ja") Then
CommandButton3.Visible = True
CommandButton1.Visible = True
CommandButton13.Visible = True
Else
CommandButton3.Visible = False
CommandButton1.Visible = False
CommandButton13.Visible = False
End If
 
Ik zou dit doen

Code:
CommandButton3.Visible = (Range("G37") = "Ja" And Range("G41") = "Ja")
CommandButton1.Visible = CommandButton3.Visible
CommandButton13.Visible = CommandButton3.Visible

maar het gaat heeeeeel weinig uitmaken qua tijd.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan