Goedendag,
Ik heb een XLA met daarin een module die wordt aangeroepen bij Workbook open().
De procedure in de module genereert een werkbalk. De actie die uitgevoerd moet worden na het drukken op de button op de werkbalk is een procedure met een een variabele.
Nu lukt het wel om een numerieke waarde door te geven maar niet om een string waarde door te geven.
Wat wel lukt is:
En wat dan niet lukt is dit:
Voor het bovenstaande bestand is het niet zo van belang maar ik heb een bestand gemaakt waarbij dit wel van belang is. Aangezien ik de code die hierboven staat ergens had opgeslagen heb ik dit maar even als voorbeeld gebruikt.
Is het überhaupt mogelijk om via deze manier een string door te geven/ aan .onAction door te geven? Of pak ik het gewoon helemaal verkeerd aan?
Ik heb een XLA met daarin een module die wordt aangeroepen bij Workbook open().
De procedure in de module genereert een werkbalk. De actie die uitgevoerd moet worden na het drukken op de button op de werkbalk is een procedure met een een variabele.
Nu lukt het wel om een numerieke waarde door te geven maar niet om een string waarde door te geven.
Wat wel lukt is:
Code:
Sub bowser1(ByVal bytSheet As byte)
Dim intTeller As Integer
Application.ScreenUpdating = False
On Error Resume Next
With Sheets(strSheet)
For intTeller = 2000 To 1 Step -1
If .Range("d" & intTeller).Value = "" Then
.Rows(intTeller).Delete
End If
Next
End With
Rows(1).Delete
Application.ScreenUpdating = True
End Sub
Sub Openen()
Dim cb As CommandBar
Dim cbcRegelVerwijderen As CommandBarControl
Dim bytTeller As Byte
bytTeller = 1
On Error Resume Next
With Application
For Each cb In .CommandBars
If cb.Name = "VerwijderRegel" Then cb.Delete
Next
.CommandBars.Add(Name:="VerwijderRegel").Visible = True
Set cbcRegelVerwijderen = .CommandBars("VerwijderRegel").Controls.Add(Type:=msoControlButton)
With cbcRegelVerwijderen
.Caption = "verwijder lege regels"
[B][COLOR="Red"].OnAction = "bowser1(" & bytTeller & ")"[/COLOR][/B]
.FaceId = 643
.Style = msoButtonIconAndCaption
End With
End With
End Sub
En wat dan niet lukt is dit:
Code:
Sub bowser2(ByVal bytSheet As String)
Dim intTeller As Integer
Application.ScreenUpdating = False
On Error Resume Next
With Sheets(strSheet)
For intTeller = 2000 To 1 Step -1
If .Range("d" & intTeller).Value = "" Then
.Rows(intTeller).Delete
End If
Next
End With
Rows(1).Delete
Application.ScreenUpdating = True
End Sub
Sub Openen2()
Dim cb As CommandBar
Dim cbcRegelVerwijderen As CommandBarControl
Dim strSheet As String
On Error Resume Next
strSheet = Sheets(1).Name
With Application
For Each cb In .CommandBars
If cb.Name = "VerwijderRegel" Then cb.Delete
Next
.CommandBars.Add(Name:="VerwijderRegel").Visible = True
Set cbcRegelVerwijderen = .CommandBars("VerwijderRegel").Controls.Add(Type:=msoControlButton)
With cbcRegelVerwijderen
.Caption = "verwijder lege regels"
[B][COLOR="Red"].OnAction = "bowser2(" & strSheet & ")"[/COLOR][/B]
.FaceId = 643
.Style = msoButtonIconAndCaption
End With
End With
End Sub
Voor het bovenstaande bestand is het niet zo van belang maar ik heb een bestand gemaakt waarbij dit wel van belang is. Aangezien ik de code die hierboven staat ergens had opgeslagen heb ik dit maar even als voorbeeld gebruikt.
Is het überhaupt mogelijk om via deze manier een string door te geven/ aan .onAction door te geven? Of pak ik het gewoon helemaal verkeerd aan?