Function afsluiten na if

Status
Niet open voor verdere reacties.

karell

Gebruiker
Lid geworden
19 jun 2007
Berichten
138
Hallo,
Heb mijn vraag beneden in de Function staan.



Code:
Function GoedGedaan() As String
   ' Dim Soundfile As String
        If ActiveCell.Column <> 23 Then Exit Function
    GoedGedaan = "Heel goed gedaan"
    Randomize
    Select Case Int(1 * Rnd) + 1
        Case 1:  Soundfile = "c:\aZinaExel\goedzozina"  'Brit
        Case 2:  Soundfile = "c:\aZinaExel\goedzozina2" 'K3
        Case 3:  Soundfile = "c:\aZinaExel\germaine"    'germaine
        Case 4:  Soundfile = "c:\aZinaExel\k3"
        Case 5:  Soundfile = "c:\aZinaExel\a"
        Case 6:  Soundfile = "c:\aZinaExel\karel"       'karel
    End Select
    
        If Soundfile <> "" Then
        sndPlaySound32 Soundfile, &H1
        If Soundfile = "c:\aZinaExel\goedzozina2" Then
            With UserForm16
                .Show vbModeless
                .Caption = "Heel goed gedaan!"
                .Repaint
                Sleep 3000
                .Hide
            End With
        End If
    End If
  
  If Soundfile <> "" Then
          If Soundfile = "c:\aZinaExel\goedzozina" Then
            With UserForm17
                .Show vbModeless
                .Caption = "Ons Brit zegt,dat het JUIST is Zina!"
                .Repaint
                Sleep 2000
                .Hide
            End With
        End If
    End If
   
   If Soundfile <> "" Then
          If Soundfile = "c:\aZinaExel\k3" Then
            With UserForm18
                .Show vbModeless
                .Caption = "Ons Brit zegt,dat het JUIST is Zina!"
                .Repaint
                Sleep 3000
                .Hide
            End With
        End If
    End If
     ActiveCell.Offset(0, -1).Select
  'Function doet welk ie moet doen(dank zij edmoor)
   
If Soundfile = "c:\aZinaExel\goedzozina" And Range("f7") = "1" Then Range("k1") = Range("k1") + 1

'maar mijn vraag gaat over dit hierboven dat ik er zelf bij zette en welk wel werkt maar,er is natuurlijk een Maar aan ;-)
'namelijk als ie die = Range("k1") + 1 gedaan heeft zou ie End Function moeten doen en inplaats daarvan gaat ie naar
'boven en begint opnieuw.Welk moet ik ingeven zodat ie na die if naar End Function gaat ?

End Function
 
Dat ligt niet aan de functie die je hier plaatst maar aan de Worksheet_Change functie die deze aanroept. Laat die dus zien.
 
Hallo ED,

Dit hieronder bedoelde eh....,maar die function wordt wel aangeroepen als je de som van die vermenigvuldiging juist hebt en je entert dan,dan komt in activecel "Heel goed gedaan staan".


Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell = "Heel goed gedaan" Then Run "kleur"
If ActiveCell = " " Then Run "kleur"
If Range("s10").Value = Range("u10").Value Then Run "allesGoed"
End Sub

Knipselaaa.jpgCel F7 is omdat in groepsvak1 het keuzerondje op 1 staat,vandaar' die if in die Function.
 
Laatst bewerkt:
Nee. Ik bedoel de VBA functie die heet Worksheet_Change. Die zit achter het werkblad.

Plaats anders je document.
 
Was ernaast boven,want die function wordt aangeroepen door die formule in het werkblad eh....en als die function dan stopt, word de sub "kleur" aangeroepen die dan "Heel goed gedaan" in een random kleur zet en dan staat de cursor goed voor de volgende uitkomst.
 
Wijzig deze regel:
If Soundfile = "c:\aZinaExel\goedzozina" And Range("f7") = "1" Then Range("k1") = Range("k1") + 1

Eens in dit:
Code:
If Soundfile = "c:\aZinaExel\goedzozina" And Range("F7") = "1" Then
    Application.EnableEvents = False
    Range("K1") = Range("K1") + 1
    Application.EnableEvents = True
End If

Als dat niet helpt wil ik graag het document zelf even zien.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan