Commandbuttons hiden in excel sheet afhankelijk van 2 variabelen

Status
Niet open voor verdere reacties.

WhiteSky

Gebruiker
Lid geworden
15 feb 2018
Berichten
54
Hoi,

Ik heb in een excelblad 108 commandbuttons staan mooi gesorteerd in rijen en kolommen.
In elke kolom gaat het over taken van 1 tot 12 en de rijen operatoren van A tot I.

Afhankelijk van hoeveel operatoren er werken en hoeveel taken er zijn moeten de rest van de kolommen of rijen verborgen worden net zoals de kolommen.
De knoppen hebben ook afgezonderd van deze 2 variabelen allemaal dezelfde naam: cbuOperAT1. A zijnde de verwijzing naar de operator en 1 de verwijzing naar de taak.

Ik heb geprobreerd dit te doen met Select case. Waarin dan staat:
Code:
Dim i as string
Dim j as byte

Select case i
Case A
     Select case j
          Case 1
             If j > 2 Then
                     me.controls("cbuOper" & i & "T" & j).hide = true
             Else
                     me.controls("cbuOper" & i & "T" & j).hide = false
             End if

enz......

Nu geeft hij foutmeldingen over controls dit kent hij niet. Ik heb van iemand vernomen dat dit tot microsoft 2013 in de code stond maar nu niet meer. Waar vind ik de vervanger hiervan?
Kan iemand mij aub helpen?
In bijlage het bestand.

Thx WhiteSky
 

Bijlagen

  • test.xlsm
    295,2 KB · Weergaven: 34
-
Bij mij (Office 2016) werkt het.
maar ik heb wel
HTML:
.Hide
vervangen door
HTML:
.Visible
en dan uiteraard ook False en True omwisselen.
 
Of:
Code:
Me.Controls("cbuOper" & i & "T" & j).Visible = j > 2
 
Ja .visible is inderdaad correct, maar dan nog geeft hij een fout bij .controls

Bij mij op het werk hebben ze office365. Hier werkt dit niet. Iemand een ander idee?
 
Loop door ActiveX objecten op een werkblad:
Code:
For Each objx In Sheets("Blad2").OLEObjects
    If TypeName(objx.Object) = "CommandButton" Then
        [COLOR="#008000"]'MsgBox objx.Name[/COLOR]
        objx.Visible = True
    End If
Next
 
Het is gelukt. Ik heb de volgende code gebruikt:
Code:
Sub AantalKnoppen()
Dim strOper As String
Dim bytTaak As Byte
Dim objx As OLEObject
Dim bytNaam As Byte

For Each objx In Sheets("Blad2").OLEObjects
    bytNaam = Len(objx.Name)
    
    If bytNaam = 10 Then
        bytTaak = Right(objx.Name, 1)
        strOper = Mid(objx.Name, 8, 1)
    ElseIf bytNaam = 11 Then
        bytTaak = Right(objx.Name, 2)
        strOper = Mid(objx.Name, 8, 1)
    Else
        GoTo Volgende
    End If
    
    Select Case bytOper
        Case 1
            Sheets("Blad2").Rows("1:3").EntireRow.Hidden = False
            Sheets("Blad2").Rows("4:19").EntireRow.Hidden = True
            
            Select Case bytTaken
                Case 1
                    Sheets("Blad2").Columns("B:D").EntireColumn.Hidden = False
                    Sheets("Blad2").Columns("E:Z").EntireColumn.Hidden = True
                    If bytTaak > 1 Or strOper <> "A" Then
                        objx.Visible = False
                    Else
                        objx.Visible = True
                    End If
                ......

Ik heb nog een ander probleem nu en dat is als ik wil klikken op 1 van de knoppen dan verspringt die knop en moet ik daar klikken. Zolang de versprongen knop nog over dezelfde knop staat gaat dit, maar als je kijkt bij foto 2. Hierbij heb ik geklikt op de knop die zich bevindt in Cel I8. Vanaf ik wegga van deze cel verdwijnt ook de versprongen knop. Zie foto's in bijlage.
Ook de tekst verdwijnt uit de knop of wordt heel klein.
 

Bijlagen

  • knop verspringt 2.png
    knop verspringt 2.png
    22,7 KB · Weergaven: 41
  • knop verspringt.png
    knop verspringt.png
    41,9 KB · Weergaven: 47
Dat lijkt eerder een extra knop dan een versprongen knop.
Dat zal je zelf na moeten kijken want in een plaatje kunnen we dat hier niet.

Als dat niet zo is heb ik geen idee waarom die knop verpringt.
 
Laatst bewerkt:
Edmoor: vanaf dat je weg bent van de plaats waar de knop staat gaat de versprongen knop ook weg.
Ik heb het bestand ook nog eens in bijlage gezet.
 

Bijlagen

  • test.xlsm
    453 KB · Weergaven: 35
Ik zie dat niet gebeuren, dus geen idee wat de oorzaak kan zijn.
 
Ik heb geprobeerd om een mijn scherm te filmen, nu merk ik wel dat de cursor in het filmpje niet exact is waar ik was met mijn cursor.
De eerste keer heb ik op de knop in C2 geklikt, dan in G3 en dan in I8.
 

Bijlagen

  • test2.zip
    775,9 KB · Weergaven: 22
Het probleem is ondertussen 'opgelost'. Ik heb ontdekt dat dit enkel voorkomt indien ik een scherm aansluit op mijn laptop. Indien ik enkel de laptop gebruik heb ik geen probleem met het verspringen van knoppen. Mits ik dat programma niet aan een bureau ga gebruiken zal dit dus geen probleem zijn tijdens gebruik.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan