18. december 2000 - 08:51Der er
13 kommentarer og 1 løsning
flere muligheder
hvordan skrives koden når jeg også skal vide om der er afkrydset i begge celler, eller der ikke er afkrydset i nogle af cellerne herunder er koden for om hvad der er valgt, det er noget med em msgbox hvor man får besked på om der er afkrydset i begge celler eller der ikke er afkrydset Private Sub CommandButton2_Click() Application.ScreenUpdating = False If Range(\"J1\").Value <> \"\" Then msg = msg & \"DU HAR VALG DDT\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") If svar = vbOK Then End If If svar = vbCancel Then Exit Sub End If ElseIf Range(\"O1\").Value <> \"\" Then msg = msg & \"DU HAR VALG ALM \" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") End If If svar = vbOK Then End If If svar = vbCancel Then Exit Sub End If
Det er ikke et svar på dit spm., men en rettelse af unødvendig kode:
Private Sub CommandButton2_Click() Application.ScreenUpdating = False
If Range(\"J1\").Value <> \"\" Then msg = msg & \"DU HAR VALG DDT\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") ElseIf Range(\"O1\").Value <> \"\" Then msg = msg & \"DU HAR VALG ALM \" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") End If
det kan jeg da godt se når du siger det ,og jeg var ved at prøve det som jeg spørger om, og det blev endnu længere og jeg tror der er en forsættelse i samme stil, og det kan sikker gøres kortere, men det virker ikke rigtig derfor mit spørgsmål.
det jeg vil vide er om Range(\"J1\") og Range(\"O1\") er afkrydset og om der ikke er afkrydset resten af koden fortæller hvilken der er valgt og hvis der er valgt forkert kan man annullere og vælge om mvh lillejens
jeg prøver igen, på et tilbuds ark har jeg to celler hvor der vælges rabatsats og når jeg vil sende tilbudet, får jeg besked om hvilken rabat sats jeg har valgt(det er den kode jeg har sendt) hvis jeg kommer til at afkrydse begge felter vælger den bare den ene og hvis jeg ikke har valgt, gør den ingenting så er det at jeg gerne vil ,at jeg får besked lige godt hvad jeg har gjort ,hvis jeg ikke har gjort noget msgbox \"DU HAR IKKE VALGT RABATSATS\" eller \"DU HAR AFKRYDSET BEGGE FELTER\". det er ikke så godt hvis man sender et tilbud med en forkert rabatsats,det jeg har send, er bare den først del af koden efterfølgende sender jeg dokumentet og gemmer det
Private Sub CommandButton2_Click() Application.ScreenUpdating = False
If Range(\"J1\").Value <> \"\" And Not Range(\"O1\").Value <> \"\" Then msg = msg & \"DU HAR VALGT DDT\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") ElseIf Range(\"O1\").Value <> \"\" And Not Range(\"J1\").Value <> \"\" Then msg = msg & \"DU HAR VALGT ALM\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") ElseIf Range(\"O1\").Value <> \"\" And Range(\"J1\").Value <> \"\" Then msg = msg & \"DU HAR VALGT BEGGE!\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") ElseIf Range(\"O1\").Value = \"\" And Range(\"J1\").Value = \"\" Then msg = msg & \"DU HAR IKKE VALGT NOGLE!\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") End If
det ser ud som det virker, bortset fra når man har valgt begge eller ingen er det nok med en ok exit sub .Hvad sker der hvis man skriver OK ved en af disse fortsætter koden så?
If Range(\"J1\").Value <> \"\" And Not Range(\"O1\").Value <> \"\" Then msg = msg & \"DU HAR VALGT DDT\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") ElseIf Range(\"O1\").Value <> \"\" And Not Range(\"J1\").Value <> \"\" Then msg = msg & \"DU HAR VALGT ALM\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") ElseIf Range(\"O1\").Value <> \"\" And Range(\"J1\").Value <> \"\" Then msg = msg & \"DU HAR VALGT BEGGE!\" MsgBox msg, vbOKOnly, \"RABAT TYPE\" exit sub ElseIf Range(\"O1\").Value = \"\" And Range(\"J1\").Value = \"\" Then msg = msg & \"DU HAR IKKE VALGT NOGLE!\" MsgBox msg, vbOKOnly, \"RABAT TYPE\" exit sub End If
If svar = vbCancel Then Exit Sub
nu gør det ikke .. nu viser den kun en OK knap og går du af SUB\'en
nu har jeg prøvet og det er ikke så godt at man kan skrive ok til at havde valgt begge ,det er for at undgå fejl,at jeg har indsat denne kode, jeg er ikke så skrap til programering men jeg syntes det største problem ved programering er at undgå man kan lave fejl ,det er i hvert fald det der kan bruges meget tid på
nåå .. så hvis begge eller ingen er valgt så skal den bare gå ud af Sub\'en og ikke vise en MSG box ?
If Range(\"J1\").Value <> \"\" And Not Range(\"O1\").Value <> \"\" Then msg = msg & \"DU HAR VALGT DDT\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") ElseIf Range(\"O1\").Value <> \"\" And Not Range(\"J1\").Value <> \"\" Then msg = msg & \"DU HAR VALGT ALM\" svar = MsgBox(msg, vbOKCancel, \" RABAT TYPE \") End If
If Range(\"O1\").Value <> \"\" And Range(\"J1\").Value <> \"\" Then exit sub If Range(\"O1\").Value = \"\" And Range(\"J1\").Value = \"\" Then exit sub
Det var så lidt :-) Og Glædelig bagjul til dig :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.