If en else in vba

Status
Niet open voor verdere reacties.

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
953
Hallo beste Helpmijers,

Ik heb een probleem met een gedeelte van een vba.
Mijn bedoeling is dat wanneer ik vanuit kolom 13 (kolom M) "Akkoord" vermeld de code actief wordt en deze kijkt in kolom 18 (kolom R) of deze gevuld is. Is dat het geval, dan moet onderstaande opdracht uitgevoerd worden en anders moet deze opdracht worden genegeerd.


Onderstaande opdracht werkt niet:
[SQL] If .Column = 18 And Not IsEmpty(Target) Then
.Offset(, 6) = MsgBox("Er staat nog een datum dat er actie ondernomen moet worden, wil je deze zo laten staan?", vbYesNo)
If a = vbYes Then
Cancel = True
Else
.Offset(, 6) = InputBox("Vermeld hier een datum wanneer er een nieuwe actie moet plaatsvinden of vul niks in als er geen actie moet plaatsvinden.")
End If
End If
[/SQL]

Voorgaande code is onderdeel van (zie case "Akkoord"):
[SQL]If .Column = 13 And Not IsEmpty(Target) Then
Select Case .Value
Case "Uitstel"
.Offset(, -4) = ""
.Offset(, 6) = Date
.Offset(, 7) = InputBox("Vermeld hier (30) dagen reactietijd bestemd voor de klant.")
Rem .Offset(, 7).Value = .Range("18 + 19").Value
Rem Application.Goto .Offset(, 1)
Application.Goto .Offset(, -9)
Selection.NumberFormat = "0000-00-000"
.EntireRow.Font.ColorIndex = 1
Application.Goto .Offset(, 1)
.Offset(, 8) = InputBox("Vermeld hier voor afd. WKA tot wanneer er uitstel verleend wordt.")
Application.Goto .Offset(, 1)
Case "Akkoord"
.Offset(, -4) = Date
Application.Goto .Offset(, -9)
Selection.NumberFormat = "0000-00-000"
Application.Goto .Offset(1, -11)
.EntireRow.Font.ColorIndex = 5

If .Column = 18 And Not IsEmpty(Target) Then
.Offset(, 6) = MsgBox("Er staat nog een datum dat er actie ondernomen moet worden, wil je deze zo laten staan?", vbYesNo)
If a = vbYes Then
Cancel = True
Else
.Offset(, 6) = InputBox("Vermeld hier een datum wanneer er een nieuwe actie moet plaatsvinden of vul niks in als er geen actie moet plaatsvinden.")
End If
End If

Case "Afwijzen"
.Offset(, -4) = Date
Application.Goto .Offset(, -9)
Selection.NumberFormat = "0000-00-000"
Application.Goto .Offset(, 1)
.EntireRow.Font.ColorIndex = 5
Case "Koppeling"
.Offset(, -4) = Date
Application.Goto .Offset(, -9)
Selection.NumberFormat = "0000-00-000"
Application.Goto .Offset(, 3)
.EntireRow.Font.ColorIndex = 5
End Select[/SQL]


Alvast hartelijk bedankt voor jouw hulp.

Groeten, Robert
 
Laatst bewerkt:
Waarom je de code met de SQL tag opmaakt i.p.v. de CODE tag is mij een raadsel, net als waarom je met .Column begint. Dan wil ik gelijk weten waar je de .Column afhankelijk van hebt gemaakt...
 
antwoord

Michel,

Ik heb idd de code verkeerd geplaatst en zie dat nu ook, ik hoop dat je daar uit komt. Op zich heb ik weinig kaas gegeten van vba en heb ik de bestaande codes ooit van iemand gekregen en dat werkt opzich perfect, alleen kwam ik er achter dat ik toch nog wat meer wensen heb, vandaar dat ik dat hier geplaatst heb.

Ik hoop dat je eruit komt.

Groeten. Robert
 
Als dit alle code is die je hebt, is hij niet compleet. Probeer de volledige code alsnog te achterhalen zou ik zeggen.
En de opmaak van de code kun je ook achteraf nog aanpassen :)
 
hij werkt inmiddels

Ik ben vandaag flink aan het experimenteren geweest en de code werkt. Ik zal na het weekend de oplossing hierop zetten en dan op opgelost zetten.

Maar nog super bedankt dat je bereid was te helpen.

Groeten, Robert
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan