Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 9 van 9

Onderwerp: verkeerde cel verkleurt hoe kan dat, wat doe ik verkeerd.

  • Vraag is opgelost
  1. #1

    verkeerde cel verkleurt hoe kan dat, wat doe ik verkeerd.

    De code hieronder werkt goed, maar als ik in cel f12 sta en 26 invul en daarna op de enterknop druk word de cel onder de f12 zwart en niet de cel f12.


    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
         If Target.Address = "$F$12" And Target = 26 Then
         With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        End If
        If Target.Address = "$F$12" And Target = 3 Then
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 255
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    End If
        If Target.Address = "$F$12" And Target = 0 Then
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 5287936
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        End If
    End Sub
    Laatst aangepast door huijb : 18 juli 2012 om 08:23

  2. #2
    Senior Member Janzwart's avatar
    Geregistreerd
    21 november 2011
    Locatie
    Zwartewaterland
    Afstand tot server
    ±44 km
    Dit komt doordat je nadat je op enter hebt gedrukt cel F13 geselecteerd is. en je zegt in de macro maak de selectie zwart, rood of groen.

    Met de volgende code is dat probleem verholpen.

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    Range("F12").Select
    If Target.Address = "$F$12" And Target = 26 Then
    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorLight1
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End If
    If Target.Address = "$F$12" And Target = 3 Then
    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 255
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End If
    If Target.Address = "$F$12" And Target = 0 Then
    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 5287936
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End If
    End Sub
    Laatst aangepast door Janzwart : 18 juli 2012 om 06:56
    Vriendelijke groet,

    Jan

  3. #3
    Senior Member Janzwart's avatar
    Geregistreerd
    21 november 2011
    Locatie
    Zwartewaterland
    Afstand tot server
    ±44 km
    Bij voorgaande antwoord ga je bij een verandering van het werkblad altijd terug naar cel F12.

    Misschien voldoet de volgende code meer aan je wensen.

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$F$12" And Target = 26 Then
    With Range("F12").Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorLight1
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End If
    If Target.Address = "$F$12" And Target = 3 Then
    With Range("F12").Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 255
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End If
    If Target.Address = "$F$12" And Target = 0 Then
    With Range("F12").Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 5287936
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End If
    End Sub
    Ik heb selection. Interior vervangen door Range("F12").Interior.
    Vriendelijke groet,

    Jan

  4. #4
    bedankt voor de snelle reactie het werkt perfect

  5. #5
    ik heb mijn vel beveiligt hoe werkt dit als ik dit achter een sheet plak met de code van boven in.

    Code:
    ActiveSheet.Unprotect Password:="bo1222"
    
    
    
     ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="bo1222"
    Laatst aangepast door huijb : 18 juli 2012 om 14:04

  6. #6
    Senior Member Janzwart's avatar
    Geregistreerd
    21 november 2011
    Locatie
    Zwartewaterland
    Afstand tot server
    ±44 km
    Door de code zo te plaatsen haalt hij na een verandering op het werkblad de beveiliging eraf en beveiligd hem op het eind van de macro ook weer.

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveSheet.Unprotect Password:="bo1222"
    If Target.Address = "$F$12" And Target = 26 Then
    With Range("F12").Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorLight1
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End If
    If Target.Address = "$F$12" And Target = 3 Then
    With Range("F12").Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 255
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End If
    If Target.Address = "$F$12" And Target = 0 Then
    With Range("F12").Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 5287936
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    End If
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="bo1222"
    End Sub
    Vriendelijke groet,

    Jan

  7. #7
    Mega Honourable Senior Member Warme bakkertje's avatar
    Geregistreerd
    13 april 2008
    Locatie
    Merksem
    Afstand tot server
    ±181 km
    Zo lukt het ook
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
         If Target.Address = "$F$12" Then
         ActiveSheet.Unprotect Password:="bo1222"
         With Target
            Select Case .Value
                Case 26
                    nColor = 1
                Case 3
                    nColor = 2
                Case 0
                    nColor = 3
            End Select
        .Interior.Color = Choose(nColor, 2, 255, 5287936)
        End With
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="bo1222"
        End If
    End Sub
    Mvg,
    Rudi

    Er zijn geen domme vragen, enkel domme antwoorden

  8. #8
    Als het werkblad is beveiligd kan er toch ook niets in cel F12 gewijzigd worden ? Dan kan deze code toch niet uitgevoerd worden ?

    Zo kan het ook in een onbeveiligd werkblad: (vergelijk eens met de omvang van de eerste code die je plaatste)

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = "$F$12" Then Target.Interior.Color = Choose(Application.Match(Target, Array(0,3,26), 0),5287936,255,2)
    End Sub
    of

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = "$F$12" Then Target.Interior.Color = Switch(Target = 0,5287936,Target = 3, 255,Target = 26, 2)
    End Sub
    @Jan: beveiligt
    Laatst aangepast door snb : 25 juli 2012 om 17:04
    VBA voor smarties


    Application.SheetsInNewWorkbook = 1
    Vermijd Select en Activate in VBA-code
    Gebruik in VBA-code With ... End With in plaats van objectvariabelen

  9. #9
    waar moet ik schrijven of klikken dat het opgelost is en waar kan ik weer een nieuwe vraag stellen.

Berichtenregels

  • U mag geen nieuwe discussies starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • Umag niet uw berichten bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Linkpartners
Aanbiedingen