07. juni 2005 - 21:09Der er
7 kommentarer og 1 løsning
Spørger om samme vbyesno spørgsmål flere gange
Jeg har i vba sat koden til at komme med en yesno boks, når der indtastes større værdi end 13 i celle b38. Det virker også fint, men spørgsmålet bliver stillet hver gang der ændres i en celle et andet sted på arket. Og det er fordi øverste linje er: Private Sub worksheet_Change(ByVal Target As Range) Hvad skal det hedde hvis msgbox kun skal fremkomme ved ændring af celle b38 ?
Det har ingen effekt, koden ser ud som følger og msgbox fremkommer ikke når jeg vælger en værdi højere end 13 og mindre end 33
If Target.Address = "$b$38" Then If Range("b38").Value > 13 And Range("b38").Value < 33 Then If MsgBox("Der må kun udskydes mere end 13 uger efter aftale, " & vbNewLine & "da det ikke er medarbejderens ret. " & vbNewLine & "Er der lavet en aftale ?", vbYesNo + vbQuestion, "Er der indgået aftale") = vbNo Then ' Der må kun udskydes mere end 13 uger efter aftale Range("b38").ClearContents Range("b38").Select Else End If End If End If
If Target.Address = "$B$38" Then If Range("b38").Value > 13 And Range("b38").Value < 33 Then If MsgBox("Der må kun udskydes mere end 13 uger efter aftale, " & vbNewLine & "da det ikke er medarbejderens ret. " & vbNewLine & "Er der lavet en aftale ?", vbYesNo + vbQuestion, "Er der indgået aftale") = vbNo Then ' Der må kun udskydes mere end 13 uger efter aftale Range("b38").ClearContents Range("b38").Select Else End If End If End If
En god idé når der indgår strenge kan være at UCASE alting. Så behøver man ikke spekulere om det ene eller det andet nu er med store eller små bogstaver og om der skelnes eller ej:
If UCase(Target.Address) = UCase("$b$38") Then
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.