variabelen doorgeven naar een procedure

Status
Niet open voor verdere reacties.

leofact

Redacteur
Lid geworden
10 feb 2007
Berichten
6.377
Ik wil waardes tussen 2 procedures doorgeven.
Dat kan (niet zo netjes) door de variabele public te maken, maar dat werkt bij mij niet buiten de module.
Mooier is met argumenten, maar de waarde wordt toch steeds op 0 gezet.
Zonder optional krijg ik de foutmelding dat het argument niet optioneel is.
Wie weet raad?

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim rij As Integer
Dim kolom As Integer
Dim blad As String
kolom = Target.Column
rij = Target.Row
blad = Sh.Name
MsgBox (rij & "-" & kolom & "-" & blad)
If rij = 3 Then Hulp
End Sub

Sub Hulp(Optional ByRef rij As Integer, Optional ByRef kolom As Integer, Optional ByRef blad As String)

Dim str_help As String
Dim Int_helpindex As Integer
MsgBox (rij & "-" & kolom & "-" & blad)
end sub
 
Bij mij werkt onderstaande prima in Excel 2003:
Code:
Sub Hulp(ByVal rij As Integer, ByVal kolom As Integer, ByVal blad As String)
    Dim str_help As String
    Dim Int_helpindex As Integer
    
    MsgBox (rij & "-" & kolom & "-" & blad)
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim rij As Integer
    Dim kolom As Integer
    Dim blad As String
    
    kolom = Target.Column
    rij = Target.Row
'    blad = Sh.Name
    
    If rij = 3 Then Hulp rij, kolom, blad
End Sub

Ik heb de ByRef verandert in ByVal, want je wilt de waarden niet veranderen zo te zien.
Ook heb ik 'Workbook_SheetSelectionChange' moeten veranderen in 'Worksheet_SelectionChange' voor Excel2003.
 
De fout bij mij zat er dus in dat ik de variabelen niet genoemd had bij de aanroep van de sub
Nu werkt het prima, ook met workbookselectionchange in 2003
Dat is prettig want nu kan ik alle sheets afvangen
Hartstikke bedankt Eelco voor je snelle reatie.
Groeten Leo
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan