• 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.

if then else

Status
Niet open voor verdere reacties.

westra77

Gebruiker
Lid geworden
2 mrt 2007
Berichten
149
Hallo
Indien er in m44 een 0,1, een 2 of een 3 voorkomt dat de volgende code wordt uitgevoerd
ik doe echter iets fout, want de code werkt niet?



Code:
If Sheets("invoer mengopdracht").Range("m44").Value = 0 or 2 Then
        Sheets("mengopdracht").Range("d8:d27").Copy
        Sheets("mengopdracht").Range("c63:c82").PasteSpecial Paste:=xlPasteValues
If Sheets("invoer mengopdracht").Range("m44").Value = 1 Then
        Sheets("mengopdracht").Range("t8:t27").Copy Sheets("mengopdracht").Range("d63:d82")
    If Sheets("invoer mengopdracht").Range("m44").Value = 3 Then
        Sheets("mengopdracht").Range("s8:s27").Copy Sheets("mengopdracht").Range("c63:c82")
end if
 
Beste westra77 ;)

Als je 3 keer If hebt gebruikt moet ge ook 3 keer End If hebben in de code of heb ik het mis.
Voeg anders eens de hele code door.

Groetjes Danny. :thumb:
 
De titel is if then else.
Waar is je else?

Deze werkt wel maar kan korter.

Code:
If Sheets("invoer mengopdracht").Range("m44").Value = 0 Or _
    Sheets("invoer mengopdracht").Range("m44").Value = 2 Then
        Sheets("mengopdracht").Range("d8:d27").Copy
        Sheets("mengopdracht").Range("c63:c82").PasteSpecial Paste:=xlPasteValues
ElseIf Sheets("invoer mengopdracht").Range("m44").Value = 1 Then
    Sheets("mengopdracht").Range("t8:t27").Copy Sheets("mengopdracht").Range("d63:d82")
ElseIf Sheets("invoer mengopdracht").Range("m44").Value = 3 Then
        Sheets("mengopdracht").Range("s8:s27").Copy Sheets("mengopdracht").Range("c63:c82")
End If

Als je meerdere opties hebt kijk dan ook eens naar de mogelijkheden van
 
we zij tegelijk aan het antwoorden op het topic, daarom had ik jou reacties nog niet gelezen jan
ik krijg echter een foutmelding bij
If Sheets("invoer mengopdracht").Range("m44").Value = 0 or_
Sheets("invoer mengopdracht").Range("m44").Value = 2 then
compileer fout;verwacht constructie einde
 
Laatst bewerkt:
Code:
If Sheets("invoer mengopdracht").Range("m44").Value = 0 [COLOR="Red"]or_[/COLOR]
Sheets("invoer mengopdracht").Range("m44").Value = 2 then
Er moet een spatie tussen achter de or dus; or _

mvg leo
 
Het is ook een idee om eens naar Select Case te kijken in dit geval.
Dan zou het er ongeveer zo uitzien (alleen als voorbeeld, niet getest)

Code:
Sub test()
Dim iTest As Integer
Dim sh As Object
    Set sh = Sheets("invoer mengopdracht")
            iTest = sh.Range("m44").Value
        Select Case iTest
            Case 0, 2
                sh.Range("d8:d27").Copy
                sh.Range("c63:c82").PasteSpecial Paste:=xlPasteValues
            Case 1
                sh.Range("t8:t27").Copy sh.Range("d63:d82")
            Case 3
                sh.Range("s8:s27").Copy sh.Range("c63:c82")
        End Select
End Sub
Dit is niet speciaal korter, wel overzichtelijker.
 
dank je
ik had nl maar een verkorte versie van de macro op het topic gezet, hierdoor kan ik vele andere aspecten ook inkorten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan