Advarsels popup
Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=2784
Udskrevet den: 27.Nov.2024 kl. 05:05
Emne: Advarsels popup
Besked fra: Sebbelin
Emne: Advarsels popup
Posteringsdato: 27.Okt.2016 kl. 12:28
Hej
Jeg har ikke den store erfaring med VBA, så håber på I måske kan hjælpe mig. Jeg skal have en advarsel i et større regneark, når man vælger en bestemt tekst fra en dropdown menu. Man kan vælge samme tekst i 3 forskellige felter så advarsel skal poppe up uanset hvilke af disse felter man vælger teksten. Jeg er nået frem til følgende formel:
Private Sub Worksheet_Change(ByVal Target As Range) If Range("D9") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" End If If Range("D10") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" End If If Range("A11") = "X" And Range("D11") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" End If If Range("A11") = "XY" And Range("D11") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" End If If Range("A11") = "XYZ" And Range("D11") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" End If End Sub
Hvis jeg så har "overføres" i D9,D10 eller D11, så får jeg popup advarslen hver gang jeg ændrer i alle andre celler i arket, hvilket er en smule irriterende, den skulle gerne kun poppe op lige når man vælger "overføres", så der skal vel laves en form for begrænsning i formlen. Er der en der kan hjælpe med en løsning? :-)
|
Svar:
Besked fra: excelent
Posteringsdato: 27.Okt.2016 kl. 21:37
Mon ikke det skal være :
If Intersect(Target, Range("D9:D10, A11")) Is Nothing Then Exit Sub
som linje 2 i koden
------------- Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!
|
Besked fra: Sebbelin
Posteringsdato: 28.Okt.2016 kl. 11:04
Tak, det hjalp meget
Når jeg vælger "overføres" i fx. D9 og efterfølgende vælger noget andet i D10 eller D11, så popper advarslen op igen, kan man undgå det, så den kun gør det hvis der vælges overføres i de andre felter?
|
Besked fra: excelent
Posteringsdato: 30.Okt.2016 kl. 08:40
Kan du ikke enten oploade eller sende din fil eller en eks-fil Så jeg kan se hvor du har indtastningsfelter (overføres) m.v.
------------- Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!
|
Besked fra: Sebbelin
Posteringsdato: 31.Okt.2016 kl. 17:14
uploads/1827/Test.xlsm" rel="nofollow - Test.xlsm
Jeg har lige lavet en mindre udgave at arket, da jeg helst ikke vil /topic662.html - uploade det fulde ark.
Men som sagt popper advarslen op hvis jeg vælger overføres i D9 og når jeg så anvender D10 eller D11 med fx aflyses, så kommer advarslen igen og det er det jeg gerne vil undgå :-)
|
Besked fra: excelent
Posteringsdato: 31.Okt.2016 kl. 20:16
Prøv:
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("D9:D10, A11")) Is Nothing Then Exit Sub If Range("D9") = "overføres" And Range("D10") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" Range(Target.Address) = "" End If If Range("D10") = "overføres" And Range("D9") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" Range(Target.Address) = "" End If If Range("D9") = "rykker" And Range("D10") = "rykker" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" Range(Target.Address) = "" End If If Range("D10") = "rykker" And Range("D9") = "rykker" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" Range(Target.Address) = "" End If If Range("D9") = "aflyses" And Range("D10") = "aflyses" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" Range(Target.Address) = "" End If If Range("D10") = "aflyses" And Range("D9") = "aflyses" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" Range(Target.Address) = "" End If If Range("A11") = "Ejerpantebrev" And Range("D11") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" End If If Range("A11") = "Pantebrev" And Range("D11") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" End If If Range("A11") = "EP" And Range("D11") = "overføres" Then MsgBox "Der kan ikke... bla bla bla!", vbExclamation, "Advarsel" End If End Sub
------------- Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!
|
|