Verkeerde tijdsweergave

Status
Niet open voor verdere reacties.

antonwas

Gebruiker
Lid geworden
11 nov 2006
Berichten
254
Beste computervrienden,

Ik heb het volgende sripje geschreven:
Sub Hallo()
Gebruiker = InputBox("Typ uw naam a.u.b.")
If Gebruiker = Empty Then End
If Hour(Time) >= 6 Then MsgBox "Goedemorgen"
If Hour(Time) >= 12 Then MsgBox "Goedemiddag"
If Hour(Time) >= 18 Then MsgBox "Goedenavond"
If Hour(Time) >= 24 Then MsgBox "Goedenacht"
MsgBox "Hallo" + Gebruiker + "!"
End Sub

Wanneer ik dit uitvoer, zou ik afhankelijk van de tijd 3 vensters moeten zien: 1. Naam invoeren 2: Tijd weergeven 3: Hallo + naam van de gebruiker.

Nu heb ik het volgende: Als ik bijv. 's avonds dit programmatje uitvoer, dan geeft hij ook Goedemorgen en Goedemiddag i.pv. alleen Goedenavond. Hoe los ik dit op?

Groetjes Anton
 
Kontroleer of het huidige uur tussen 2 waarden ligt; dus niet alleen maar groter dan een bepaalde waarde
Code:
Sub Hallo
sGebruiker = InputBox("Typ uw naam a.u.b.")
iTijd=Hour(Time)
if iTijd>=0 and iTijd <6 then sGroet="Goedenacht"
if iTijd>=6 and iTijd <12 then sGroet="Goedemorgen"
if iTijd>=12 and iTijd <18 then sGroet="Goedemiddag"
if iTijd>=18 and iTijd <=23 then sGroet="Goedenavond"
Msgbox "Hallo " & sGebruiker & "... " & sGroet
End sub
 
Laatst bewerkt:
Iets mooier is de oplossing met 'geneste' IF en ELSE :
Code:
Sub Hallo()
sGebruiker = InputBox("Typ uw naam a.u.b.")
iTijd = Hour(Time)
If iTijd >= 18 Then
  sGroet = "Goedenavond"
Else
  If iTijd >= 12 Then
    sGroet = "Goedemiddag"
  Else
    If iTijd >= 6 Then
      sGroet = "Goedemorgen"
    Else
      sGroet = "Goedenacht"
    End If
  End If
End If
MsgBox "Hallo " & sGebruiker & "... " & sGroet
End Sub
 
agree. Wat mischien NOG mooier is: select case (haha)

Code:
Sub Hallo()


[COLOR="SeaGreen"]'vraag de naam, en als-ie leeg is, vraag het opnieuw :p[/COLOR]
sGebruiker = InputBox("Typ uw naam a.u.b.")
If Gebruiker = Empty Then
   InputBox("Typ uw naam a.u.b.")
end if

[COLOR="seagreen"]'begin met kijken naar de tijd[/COLOR]
iTijd = Hour(Time)
select case iTime
   case 1 to 6
      sGroet = "Goedemorgen"
   case 7 to 12
      sGroet = "Goedemiddag"
   case 12 to 18
      sGroet = "Goedenavond"
   case else
      sGroet = "Goedenacht"
end select

[COLOR="seagreen"]'geef output[/COLOR]
MsgBox "Hallo " & sGebruiker & "... " & sGroet


End Sub



edit: ik geloof dat ik de tijden verkeerd heb gedaan, maar het principe is duidelijk ;)
 
Laatst bewerkt:
Select Case -> idd altijd wel handig!!! :thumb:

Maar (en dit is waarschijnlijk wel Off-Topic):
als je toch kontroleert of er wel een naam is opgegeven, waarom dan maar 1 keer?
Ik heb ook even de cijfertjes juist gezet;)
Code:
Sub Hallo()
  'vraag de naam, en als-ie leeg is, vraag het opnieuw :p
  Do
    sGebruiker = InputBox("Typ uw naam a.u.b.")
  Loop Until Not (sGebruiker = Empty)
  'begin met kijken naar de tijd
  iTijd = Hour(Time)
  Select Case iTime
    Case 0 To 5
      sGroet = "Goedenacht"
    Case 6 To 11
      sGroet = "Goedemorgen"
    Case 12 To 17
      sGroet = "Goedemiddag"
    Case Else
      sGroet = "Goedenavond"
  End Select
  'geef output
  MsgBox "Hallo " & sGebruiker & "... " & sGroet
End Sub
 
Ik reageer maar ff in één berichtje,

Allemaal bedankt voor jullie moeite,

En fijne feestdagen,

Anton
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan