If / Then / And / Else

Status
Niet open voor verdere reacties.

weusty

Gebruiker
Lid geworden
23 feb 2007
Berichten
133
Ik heb een macro gemaakt voor een inlog systeem:

Code:
Sub Login()
'On Error Resume Next

If ComboBox1.Value = Sheets("Codes").Range("B63") And TextBox2.Value = Sheets("Codes").Range("C63") Then Run "GegevensDoorgeven" Else _
MsgBox "Wachtwoord is onjuist" & vbCrLf & bestandsnaam, , "Systeem Melding"

If ComboBox1.Value = Sheets("Codes").Range("B64") And TextBox2.Value = Sheets("Codes").Range("C64") Then Run "GegevensDoorgeven" Else _
MsgBox "Wachtwoord is onjuist" & vbCrLf & bestandsnaam, , "Systeem Melding"

If ComboBox1.Value = Sheets("Codes").Range("B65") And TextBox2.Value = Sheets("Codes").Range("C65") Then Run "GegevensDoorgeven" Else _
MsgBox "Wachtwoord is onjuist" & vbCrLf & bestandsnaam, , "Systeem Melding"


End Sub

Het is de bedoeling dat als de waarde in de rijen overeenkomen dat hij de sub "GegevensDoorgeven" gaat uitvoeren.
Zo niet dan komt er een systeem melding en moet de Sub worden beeindigd.

Kan iemand mij helpen?

Groet Weust
 
If then And Or Else

Ben al een tijdje aan het programmeren in VB en meen te weten dat er op elke "If" een "End If" moet volgen.
Hopelijk kan je hiermee verder.
Succes !
 
misschien zoiets?

Code:
If ComboBox1.Value = Sheets("Codes").Range("B63") And TextBox2.Value = Sheets("Codes").Range("C63") Then
Run "GegevensDoorgeven"
Else
MsgBox "Wachtwoord is onjuist" & vbCrLf & bestandsnaam, , "Systeem Melding"
Exit Sub
End If
 
If/Then/And/Else

Iets in de volgende zin;
If ......... ("C63") ....... then
else
If .............("C64") ................then
else
If ........... ("C65") .........then
else
MsgBox.......(foutmelding)
Go to Afbreken
End If
End If
End If
Run ...uw programma... (met de "Run" functie heb ik wel geen ervaring ! - gebruik gewoon de naam van de uit te voeren functie)
Afbreken:
End Sub
Zo het gaat om één van de drie personen (uit rij 63, 64 of 65) is alles OK. Zoniet moet een bericht gestuurd worden en moet de bewerking afgebroken worden door een sprong te maken naar het referentiepunt "Afbreken:" (een referentiepunt altijd eindigen met ":").
Succes!
 
Dag Ruuten,

hij werkt perfect!!

Hij ziet er zo uit:

Code:
Sub Login()
Application.ScreenUpdating = False
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B63") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C63") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B64") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C64") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B65") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C65") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B66") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C66") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B67") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C67") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B68") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C68") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B69") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C69") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B70") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C70") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B71") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C71") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B72") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C72") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B73") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C73") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B74") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C74") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B75") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C75") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B76") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C76") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B77") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C77") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B78") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C78") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B79") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C79") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B80") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C80") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B81") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C81") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B82") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C82") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B83") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C83") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B84") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C84") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B85") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C85") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B86") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C86") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B87") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C87") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B88") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C88") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B89") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C89") Then
Else
If UserForm5.ComboBox1.Value = Sheets("Codes").Range("B90") And UserForm5.TextBox2.Value = Sheets("Codes").Range("C90") Then
Else
MsgBox "Wachtwoord is onjuist" & vbCrLf & bestandsnaam, , "Systeem Melding"
GoTo Afbreken
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Run "GegevensDoorgeven"
Afbreken:
End Sub

Bedankt voor uw hulp!!!

Groet Weust
 
Dat kan 'iets' korter

Code:
sub inlog()
  with worksheetfunction
    sq=.transpose([Codes!B63:B90])
    st=.transpose([Codes!C63:C90])
  end with
  for j=[COLOR="Red"]1[/COLOR] to ubound(sq)
    sq(j)=sq(j) & "|" & st(j)
  next
  if ubound(filter(sq,Combobox1.Value & "|" & TextBox2.Text))=0 then gegevens_doorgeven
End Sub
 
Laatst bewerkt:
Iets korter zal wel mooi wezen maar die werkt niet.

Krijg de melding dat :
Code:
sq(j)=sq(j) & "|" & st(j)

buiten het bereik valt.

groet
 
Aardige reaktie.

Heb de vorige suggestie aangepast.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan