• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

SelectCase

Status
Niet open voor verdere reacties.

Evelyne78

Gebruiker
Lid geworden
14 apr 2007
Berichten
11
Beste,

Met volgende code wil ik het volgende bereiken wat me ook gelukt is.
Dus als men meer of gelijk aan 4.5 heeft dan moet men kijken of men
meer dan 5.5 heeft in indien ja dan is men geslaagd zoniet heeft men
een herexamen. Indien minder dan 4.5 is men gezakt.
Maar in de tweede code zie je dat ik het graag eens had proberen te verwerken met
select case om die methode te leren kennen, maar het lukt me niet helemaal.
Kan iemand mij hieruit helpen?

Eerste code:
Public Sub ExamenGenest()
'het moet in deze volgorde als je het zou verander door eerst 5.5 te zetten en dan Herexamen ipv Geslaagd werkt het niet
'dan zou men lezen groter als 5.5 ja en groter dan 4.5 ja dus herexamen en dat gaat niet.
'zie de code van ExamenGenestOmgekeerdNietGebruiken
If Range("A1").Value >= 4.5 Then
If Range("A1").Value >= 5.5 Then
Range("B1").Value = "Geslaagd!"
Else
Range("B1").Value = "Herexamen"
End If
Else
Range("B1").Value = "Gezakt"
End If
End Sub

tweede code met select case

Public Sub MijnCase()
Dim x As Integer
x = Range("A1").Value
Select Case x
Case Is >= 4.5

If Range("A1").Value >= 4.5 Then
If Range("A1").Value >= 5.5 Then
Range("B1").Value = "Geslaagd"
Else
Range("B1").Value = "Herexamen"
End If

Case Is < 4.5
If Range("A1").Value < 4.5 Then
Range("B1").Value = "Gezakt"

End Select

End Sub
 

Bijlagen

Besten,

Ik heb er dit van gemaakt en dit lijkt te werken.
Is dit goed of heeft iemand een beter manier van werken met select case?
Groetjes,



Public Sub MijnCase()
Dim x As Integer
x = Range("A1").Value

With ["B1"]

Select Case x
Case Is < 4.5
Range("B1").Value = "Gezakt"
Case Is >= 4.5
If Range("A1").Value >= 4.5 Then
If Range("A1").Value >= 5.5 Then
Range("B1").Value = "Geslaagd"
Else
Range("B1").Value = "Herexamen"
End If
End If
End Select
End With

End Sub
 
Vooraleer er naar te kijken, zet eens code tags zoals hier trouwens gevraagd wordt. Die topic is prominent in beeld in het Excel forum.

Wigi
 
Ten eerste geheel eens met Wigi.
Plaats aub de code tekst om uw code heen (het # boven je bericht venster)

Maar we zijn de rotste niet :):
Code:
Public Sub MijnCase()

Select Case Range("A1").Value
    Case Is < "4.5"
        Range("B1").Value = "Gezakt"
    Case Is > "5.4"
        Range("B1").Value = "Geslaagd"
    Case Else
        Range("B1").Value = "Herexamen"
End Select

End Sub
 
eigenlijk gewoon de Excel vba helpfile raadplegen en de waarden veranderen vanuit het voorbeeld. Was je zelf nog iets sneller geweest :).
 
Dit werkt:

Code:
Sub MijnCase()
    Select Case Range("A1").Value
        Case 0 To 4.5: Range("B1").Value = "Gezakt"
        Case Is < 5.5: Range("B1").Value = "Herexamen"
        Case Else: Range("B1").Value = "Geslaagd"
    End Select
End Sub

Ferenc, waarom maak je tekst van de getallen door er " " rond te zetten?

Volgens mij kan deze sub in 1 regel gedaan worden ;)

Wigi
 
Volgens mij kan deze sub in 1 regel gedaan worden ;)

My gut feeling liet mij niet in de steek :D

Code:
Sub ineenregel()
    Range("B1").Value = WorksheetFunction.Lookup(Range("A1").Value, Array(0, 4.5, 5.5), _
        Array("Gezakt", "Herexamen", "Geslaagd"))
End Sub

Wigi
 
Damn Wigi, das nog eens een oplossing whoehah.

Ik heb er in mijn code tekst van gemaakt daar hij de . niet herkende in de celwaarde. Excel maakte er een geheel getal van. 4.4 werd 44 dus een ieder was geslaagd.
Denk dat dit weer in mijn windows instelleing ligt, maar had er ff geen zin in om verder te kijken dan mijn neus lang is, het idee van de case functie is duidelijk. Toch Evelyne?
 
hoi

waarom maak je er geen functie() van dan kun je hem overal in je sheet plaatsen

Code:
function MijnCase(invoer)
    Select Case invoer
        Case 0 To 4.5: MijnCase= "Gezakt"
        Case Is < 5.5: MijnCase= "Herexamen"
        Case Else: MijnCase= "Geslaagd"
    End Select
End function

deze functie in een nieuwe module plakken
en dan gewoon gebruiken als alle andere werkblad functie's

gr sylvester
 
Laatst bewerkt:
Syvester,

Jij hebt door wat ik (impliciet) bedoelde met mijn post over WorksheetFunction.Lookup

Wigi

Om het af te maken: de formule in de cellen zelf is:

=ZOEKEN(A1;{0;4,5;5,5};{"Gezakt";"Herexamen";"Geslaagd"})

Wigi
 
Amai, :shocked:

Ik krijg hier effe 4 verschillende mogelijkheden. Machtig gewoon.
Dit geeft inspiratie, als je ziet hoeveel manieren er zijn om iets op
te lossen.

Bedankt guys, Evelyne :) :thumb:
 
Graag gedaan Evelyne

En als je in het vervolg dit ook doet:

Vooraleer er naar te kijken, zet eens code tags zoals hier trouwens gevraagd wordt. Die topic is prominent in beeld in het Excel forum.

Wigi

dan zijn wij ook tevreden.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan