Print side | Luk vindue

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 !!!



Print side | Luk vindue