Toon posts:

[ExcelVBA] Kleur cel wijzigen door waarde in andere cel

Pagina: 1
Acties:
  • 874 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi iedereen,

Ik heb de volgende "uitdaging" voor me neus. Cel A1 A2 A3 moeten geen achtergrond kleur hebben als cel A1 leeg is. Als Cel A1 een 0 heeft moeten A1 A2 A3 grijs als achtergrond hebben Als A3 100 is moeten Cel A1 A2 A3 groen worden.

Uiterrraad is dit niet mogelijk met conditional formatting omdat ik dit in een PivotTable moet toepassen. Ik weet wel hoe ik dit zou moeten (VBA) als het om de desbetreffende cel ging maar niet hoe ik de if lus (de statements zelf) zou moeten opbouwen om de waarde uit een andere cel als voorwaarde te gebruiken.


Iemand die me iig op weg kan helpen?
Alle hulp is welkom !

Alvast bedankt :>

EDIT

Ik heb n u zoiets maar dit is natuurtlijk neit af/werkend

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
Set objWorksheet = objWorkbook.Worksheets(1)

If objExcel.Cells(1, 1).Value <= 1 Then
objExcel.Cells(1, 1).Interior.ColorIndex = 2
objExcel.Cells(1, 2).Interior.ColorIndex = 2
objExcel.Cells(1, 3).Interior.ColorIndex = 2

If objExcel.Cells(1, 1).Value = 0 Then
objExcel.Cells(1, 1).Interior.ColorIndex = 15
objExcel.Cells(1, 2).Interior.ColorIndex = 15
objExcel.Cells(1, 3).Interior.ColorIndex = 15

If objExcel.Cells(1, 3).Value = 100 Then
objExcel.Cells(1, 1).Interior.ColorIndex = 4
objExcel.Cells(1, 2).Interior.ColorIndex = 4
objExcel.Cells(1, 3).Interior.ColorIndex = 4

End If
End Sub

[ Voor 38% gewijzigd door Verwijderd op 21-12-2006 15:37 ]


Verwijderd

Topicstarter
Daarnaast hebben at mensen mij op weg geholpen en zijn nu op dit stukje uitgekomen

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub test()
    Dim x As Integer
    Dim val As Variant
    val = Cells(1, 1).Value
    If val = "" Then
        x = -4142
    ElseIf val = 0 Then
        x = 15
    ElseIf val = 100 Then
        x = 4
    End If
    For y = 2 To 4
        Cells(1, y).Interior.ColorIndex = x
    Next y
End Sub


Echter werkt dit niet en wij komen niet verder waarom niet. ;(

  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 02-06 20:28

CoRrRan

Don't Panic!!!

Zoiets?
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub test()
  
  Dim x As Integer
  
  Select Case Range("A1").Value
    Case ""
      x = xlNone
    Case 0
      x = 16
    Case Else
      If Range("A3").Value = 100 Then
        x = 10
      End If
  End Select
  
  Range("A1:A3").Interior.ColorIndex = x

End Sub

-- == Alta Alatis Patent == --


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Doe eens debuggen. Welke waarde heeft x als interior.colorindex=x wordt uitgevoerd?

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland