Bas Fluijt
Gebruiker
- Lid geworden
- 6 aug 2007
- Berichten
- 7
Momenteel ben ik met een Excel sheet bezig. Deze bestaat uit een aantal Werkbladen. Wanneer men op bepaalde cellen klikt binnen deze sheet, wordt er een controle uitgevoerd. Dit heb ik gedaan middels een "Worksheet_SelectionChange".
Wanneer ik de controle code rechtstreeks in deze sectie (Worksheet_SelectionChange) invoer werkt het perfect. Nu is het zo dat ik deze controle op alle werkbladen wil hebben. Het makkelijkste zou zijn om hier een Functie van te maken en te includen of aanroepen vanuit een elk gewenst blad.
Ik heb het volgende geprobeerd. De controle regels in een Module gezet (Module 10) Deze heb ik als een Public Funtion Controle_Sheet() gedefinieerd. Wanneer ik de functie vanuit Blad2 ("A1") aanroep krijg ik een Fout 424: Object Vereist. Wanneer ik doe debuggen krijg ik de volgende fout bij de INTERSECT Functie: "Methode Range van Object _Global Mislukt"
Hier de code:
Public Function Controle_Sheet(ByVal Werkblad As String) As String
Dim Locatie, Doel, Regelnr, Status, Huidig, History, Teller
Locatie = Selection.Address
Doel = "B" & Mid(Locatie, 4, 4)
Regelnummer = Mid(Locatie, 4, 4)
Kolomletter = Mid(Locatie, 2, 1)
Huidig = (Kolomletter & Regelnummer)
'On Error GoTo Fout
' Controle op bovenste velden
If Range("F1") = "" Or Range("F2") = "" Or Range("F3") = "" Or Range("F4") = "" Or Range("F5") = "" Then
FOUT If Not Intersect(Target, Range("A10:A103,B10:B103,C10:C103,D10
103,E10:E103,F10:F103")) Is Nothing Then
If Range("F1") = "" Then
MsgBox "U heeft nog geen datum ingevoerd"
Range("F1").Select
Else
If Range("F2") = "" Then
MsgBox "U heeft nog geen periode ingevoerd"
Range("F2").Select
Else
If Range("F3") = "" Then
MsgBox "U heeft nog geen afschriftnummer ingevoerd"
Range("F3").Select
Else
If Range("F4") = "" Then
MsgBox "U heeft nog geen beginsaldo ingevoerd"
Range("F4").Select
Else
If Range("F5") = "" Then
MsgBox "U heeft nog geen eindsaldo ingevoerd"
Range("F5").Select
Else
End If
End If
End If
End If
End If
End If
End If
Exit Function
'Controle binnen regels
If Not Intersect(Target, Range("B10:B103,C10:C103,D10
103,E10:E103,F10:F103")) Is Nothing Then
If Range("F" & (Regelnummer - 1)) = "" Then
MsgBox "U heeft in de voorgaande regel vergen een BTW kode op te geven"
Teller = Regelnummer
Range("F" & Teller).Select
Else
If Range(Doel) = "" And Not Huidig = Doel Then
MsgBox "Voer eerst een Grootboeknummer in!!"
Range(Doel).Select
Else
If Not Intersect(Target, Range("E" & Regelnummer, "F" & Regelnummer)) Is Nothing Then
If Range("C" & Regelnummer) = "" Then
MsgBox "U heeft geen omschrijving opgegeven"
Range("C" & Regelnummer).Select
Else
If Not Intersect(Target, Range("F" & Regelnummer)) Is Nothing Then
If Range("E" & Regelnummer) = "" Then
MsgBox "U heeft geen bedrag ingegeven"
Range("E" & Regelnummer).Select
End If
End If
End If
End If
End If
End If
End If
Exit Function
Fout:
MsgBox "Gelieve niet meer dan 1 cel te selecteren"
End Function
Als iemand mij kan helpen hoe ik deze code kan aanroepen of includen binnen VB zou dat een grote hulp zijn.
Alvast Bedankt:thumb:
Bas
Wanneer ik de controle code rechtstreeks in deze sectie (Worksheet_SelectionChange) invoer werkt het perfect. Nu is het zo dat ik deze controle op alle werkbladen wil hebben. Het makkelijkste zou zijn om hier een Functie van te maken en te includen of aanroepen vanuit een elk gewenst blad.
Ik heb het volgende geprobeerd. De controle regels in een Module gezet (Module 10) Deze heb ik als een Public Funtion Controle_Sheet() gedefinieerd. Wanneer ik de functie vanuit Blad2 ("A1") aanroep krijg ik een Fout 424: Object Vereist. Wanneer ik doe debuggen krijg ik de volgende fout bij de INTERSECT Functie: "Methode Range van Object _Global Mislukt"
Hier de code:
Public Function Controle_Sheet(ByVal Werkblad As String) As String
Dim Locatie, Doel, Regelnr, Status, Huidig, History, Teller
Locatie = Selection.Address
Doel = "B" & Mid(Locatie, 4, 4)
Regelnummer = Mid(Locatie, 4, 4)
Kolomletter = Mid(Locatie, 2, 1)
Huidig = (Kolomletter & Regelnummer)
'On Error GoTo Fout
' Controle op bovenste velden
If Range("F1") = "" Or Range("F2") = "" Or Range("F3") = "" Or Range("F4") = "" Or Range("F5") = "" Then
FOUT If Not Intersect(Target, Range("A10:A103,B10:B103,C10:C103,D10

If Range("F1") = "" Then
MsgBox "U heeft nog geen datum ingevoerd"
Range("F1").Select
Else
If Range("F2") = "" Then
MsgBox "U heeft nog geen periode ingevoerd"
Range("F2").Select
Else
If Range("F3") = "" Then
MsgBox "U heeft nog geen afschriftnummer ingevoerd"
Range("F3").Select
Else
If Range("F4") = "" Then
MsgBox "U heeft nog geen beginsaldo ingevoerd"
Range("F4").Select
Else
If Range("F5") = "" Then
MsgBox "U heeft nog geen eindsaldo ingevoerd"
Range("F5").Select
Else
End If
End If
End If
End If
End If
End If
End If
Exit Function
'Controle binnen regels
If Not Intersect(Target, Range("B10:B103,C10:C103,D10

If Range("F" & (Regelnummer - 1)) = "" Then
MsgBox "U heeft in de voorgaande regel vergen een BTW kode op te geven"
Teller = Regelnummer
Range("F" & Teller).Select
Else
If Range(Doel) = "" And Not Huidig = Doel Then
MsgBox "Voer eerst een Grootboeknummer in!!"
Range(Doel).Select
Else
If Not Intersect(Target, Range("E" & Regelnummer, "F" & Regelnummer)) Is Nothing Then
If Range("C" & Regelnummer) = "" Then
MsgBox "U heeft geen omschrijving opgegeven"
Range("C" & Regelnummer).Select
Else
If Not Intersect(Target, Range("F" & Regelnummer)) Is Nothing Then
If Range("E" & Regelnummer) = "" Then
MsgBox "U heeft geen bedrag ingegeven"
Range("E" & Regelnummer).Select
End If
End If
End If
End If
End If
End If
End If
Exit Function
Fout:
MsgBox "Gelieve niet meer dan 1 cel te selecteren"
End Function
Als iemand mij kan helpen hoe ik deze code kan aanroepen of includen binnen VB zou dat een grote hulp zijn.
Alvast Bedankt:thumb:
Bas
Laatst bewerkt: