Discussion:
makro
(too old to reply)
t***@hotmail.com
2009-01-03 22:22:21 UTC
Permalink
Til Harald
Jeg fikk følgende makro fra deg for en stund siden,
som gir varsel når ugyldig celleverdi blir ført i kol. B:
------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Cel As Range
On Error Resume Next
Set Rng = Intersect(Target, Me.Range("B5:B100"))
If Rng Is Nothing Then Exit Sub
For Each Cel In Rng
Select Case Cel.Value
Case "AB1", "AB2", "AB3"
'alt ok
Case "M01", "M02", "M03"
'fremdeles ok
Case ""
'må være lov
Case Else
MsgBox "You're fired!", vbInformation
Cel.Value = ""
End Select
Next
End Sub
----------------------------------
Kan jeg få be om en ”utvidet” versjon av denne makroen,
slik at jeg også får samme funksjon i celleområde
F5:F100, (i tillegg til område i kol.B).
Men i sistnevnte celleområde skal det tillates å føre
f.eks. verdiene: ”A” – ”B” – ”C”.
Jeg har selv gjort flere forsøk, men får det ikke til.
Jeg har norsk versjon, excel 2003.
Mvh Trond
t***@hotmail.com
2009-01-16 15:49:02 UTC
Permalink
Post by t***@hotmail.com
Til Harald
Jeg fikk følgende makro fra deg for en stund siden,
------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Cel As Range
On Error Resume Next
Set Rng = Intersect(Target, Me.Range("B5:B100"))
If Rng Is Nothing Then Exit Sub
For Each Cel In Rng
    Select Case Cel.Value
        Case "AB1", "AB2", "AB3"
        'alt ok
        Case "M01", "M02", "M03"
        'fremdeles ok
        Case ""
        'må være lov
        Case Else
            MsgBox "You're fired!", vbInformation
            Cel.Value = ""
    End Select
Next
End Sub
----------------------------------
Kan jeg få be om en ”utvidet” versjon av denne makroen,
slik at jeg også får samme funksjon i celleområde
F5:F100, (i tillegg til område i kol.B).
Men i sistnevnte celleområde skal det tillates å føre
f.eks. verdiene: ”A” – ”B” – ”C”.
Jeg har selv gjort flere forsøk, men får det ikke til.
Jeg har norsk versjon, excel 2003.
Mvh Trond
Er det noen andre som har svar?
Trond
Per Erik Midtrød
2009-01-25 23:08:38 UTC
Permalink
Post by t***@hotmail.com
Post by t***@hotmail.com
Til Harald
Jeg fikk følgende makro fra deg for en stund siden,
------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Cel As Range
On Error Resume Next
Set Rng = Intersect(Target, Me.Range("B5:B100"))
If Rng Is Nothing Then Exit Sub
For Each Cel In Rng
    Select Case Cel.Value
        Case "AB1", "AB2", "AB3"
        'alt ok
        Case "M01", "M02", "M03"
        'fremdeles ok
        Case ""
        'må være lov
        Case Else
            MsgBox "You're fired!", vbInformation
            Cel.Value = ""
    End Select
Next
End Sub
----------------------------------
Kan jeg få be om en ”utvidet” versjon av denne makroen,
slik at jeg også får samme funksjon i celleområde
F5:F100, (i tillegg til område i kol.B).
Men i sistnevnte celleområde skal det tillates å føre
f.eks. verdiene: ”A” – ”B” – ”C”.
Jeg har selv gjort flere forsøk, men får det ikke til.
Jeg har norsk versjon, excel 2003.
Mvh Trond
Er det noen andre som har svar?
Trond
Hvis du er sikker på at det ikke er noen celler som har ulovlige
verdier i arket ditt burde denne funke:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Cel As Range
Dim Rng2 As Range
On Error Resume Next
Set Rng = Intersect(Target, Me.Range("B5:B100"))
Set Rng2 = Intersect(Target, Me.Range("F5:F100"))
'If Rng Is Nothing Then Exit Sub

For Each Cel In Rng
Select Case Cel.Value
Case "AB1", "AB2", "AB3"
'alt ok
Case "M01", "M02", "M03"
'fremdeles ok
Case ""
'må være lov
Case Else
MsgBox "You're fired!", vbInformation
Cel.Value = ""
End Select
Next

For Each Cel In Rng2
Select Case Cel.Value
Case "A", "B", "C"
'alt ok
Case ""
'må være lov
Case Else
MsgBox "You're fired!", vbInformation
Cel.Value = ""
End Select
Next

End Sub
t***@hotmail.com
2009-01-28 07:35:44 UTC
Permalink
Post by Per Erik Midtrød
Post by t***@hotmail.com
Post by t***@hotmail.com
Til Harald
Jeg fikk følgende makro fra deg for en stund siden,
------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Cel As Range
On Error Resume Next
Set Rng = Intersect(Target, Me.Range("B5:B100"))
If Rng Is Nothing Then Exit Sub
For Each Cel In Rng
    Select Case Cel.Value
        Case "AB1", "AB2", "AB3"
        'alt ok
        Case "M01", "M02", "M03"
        'fremdeles ok
        Case ""
        'må være lov
        Case Else
            MsgBox "You're fired!", vbInformation
            Cel.Value = ""
    End Select
Next
End Sub
----------------------------------
Kan jeg få be om en ”utvidet” versjon av denne makroen,
slik at jeg også får samme funksjon i celleområde
F5:F100, (i tillegg til område i kol.B).
Men i sistnevnte celleområde skal det tillates å føre
f.eks. verdiene: ”A” – ”B” – ”C”.
Jeg har selv gjort flere forsøk, men får det ikke til.
Jeg har norsk versjon, excel 2003.
Mvh Trond
Er det noen andre som har svar?
Trond
Hvis du er sikker på at det ikke er noen celler som har ulovlige
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Cel As Range
Dim Rng2 As Range
On Error Resume Next
Set Rng = Intersect(Target, Me.Range("B5:B100"))
Set Rng2 = Intersect(Target, Me.Range("F5:F100"))
'If  Rng Is Nothing Then Exit Sub
For Each Cel In Rng
    Select Case Cel.Value
        Case "AB1", "AB2", "AB3"
        'alt ok
        Case "M01", "M02", "M03"
        'fremdeles ok
        Case ""
        'må være lov
        Case Else
            MsgBox "You're fired!", vbInformation
            Cel.Value = ""
    End Select
Next
For Each Cel In Rng2
    Select Case Cel.Value
        Case "A", "B", "C"
        'alt ok
        Case ""
       'må være lov
        Case Else
            MsgBox "You're fired!", vbInformation
            Cel.Value = ""
    End Select
Next
End Sub– Skjul sitert tekst –
– Vis sitert tekst –
Hei Per Erik!
Beklager litt sent svar, men jeg har nå
fått prøvd makroen og den fungerer utmerket.
Tusen takk for hjelpen!
Mvh. Trond

Loading...