05.09.2018, 09:08
(Dieser Beitrag wurde zuletzt bearbeitet: 05.09.2018, 09:08 von Mr.Invisible.)
Hallo Zusammen,
ich stehe vor einem problem und ich weiß nicht warum.
In meiner UF habe ich eine CheckBox, wird diese geklickt, soll im Arbeitsblatt "Workpackage Data" eine bestimmte Zelle grün markiert werden.
Mein Problem ist nun, dass es immer eine andere Zelle mit der Farbe gefüllt wird.
Hier mein Code:
Geht das Makro durch die If InStr(1, Name, "WKA") dann funktioniert alles einwandfrei und es wird die richtige Zelle ausgewählt.
Geht das Makro aber durch das zweite If, dann wird eine ganz andere Zelle gewählt als die Vorgabe.
Gehe ich das zweite If-Statement mit F8 durch erhalte ich für ActiveCell.Column = 8 und ActiveCell.Row = 1, darauf folgt, dass PCol = 11 und PRow = 15. Im nächsten Schritte bei Cell(PRow, PCol).Select wird die Spalte "R" ausgewählt und nicht Spalte "K", die ja eigentlich den Wert 11 hat.
Die Werte für die UserForm aus dem Arbeitsblatt "Workpackage Date" für z.B. WKS befinden sich in Range("H1:M26"). Die CheckBoxen sollen, bei Aktivierung, die Zellen, in Range("K13:K18) und Range("M13:M18"), grün markieren.
Ich hoffe ich konnte mein Problem einigermaßen verständlich darstellen und jemand kann mir helfen dieses Problem zu lösen.
Danke
EDIT:
Okay, ich hab mittlerweile rausgefunden, da ich die Zelle "H1" markiere, dass diese Zelle dann den Wert Cell(1, 1) hat, daher frage ich mich wie kann ich das ändern, dass es immer von A1 ausgeht?
ich stehe vor einem problem und ich weiß nicht warum.
In meiner UF habe ich eine CheckBox, wird diese geklickt, soll im Arbeitsblatt "Workpackage Data" eine bestimmte Zelle grün markiert werden.
Mein Problem ist nun, dass es immer eine andere Zelle mit der Farbe gefüllt wird.
Hier mein Code:
Code:
' Beim aktivieren der Checkbox wird folgendes Makro aktiv:
Private Sub CheckBox1_Click()
Call ProzCalc ' Hier funktioniert alles :)
If CheckBox1.Value = True Then
Call Color_Box(3, 12)
End If
End Sub
' Im Makro Color_Box tritt das Problem auf:
Sub Color_Box(c As Integer, d As Integer)
Dim Name As String
Dim a As Integer, b As Integer
Dim ws As Worksheet
Name = Watch_Workpackage.WatchLabel
Set ws = Worksheets("Workpackage Data")
ws.Visible = xlSheetVisible
ws.Activate
a = 1
Do
If InStr(1, Name, a & "_1") Then
b = 1
ElseIf InStr(1, Name, a & "_2") Then
b = 2
ElseIf InStr(1, Name, a & "_3") Then
b = 3
ElseIf InStr(1, Name, a & "_4") Then
b = 4
End If
a = a + 1
Loop Until b <> 0
a = 1
Do
If InStr(1, Name, "WKA" & a & "_" & b) Then ' Bei diesem If besteht das Problem nicht
ws.Columns("A:A").Select
Set Cell = Selection.Find(What:="WKA" & a & "_" & b, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Cell.Select
PCol = ActiveCell.Column + c
PRow = ActiveCell.Row + d
Cell(PRow, PCol).Select
Cell(PRow, PCol).Interior.Color = RGB(0, 255, 0)
Exit Do
ElseIf InStr(1, Name, "WKS" & a & "_" & b) Then ' Hier tritt das Problem auf.
Columns("H:H").Select
Set Cell = Selection.Find(What:="WKS" & a & "_" & b, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Cell.Select
PCol = ActiveCell.Column + c
PRow = ActiveCell.Row + d
Cell(PRow, PCol).Select ' Hier wird nicht die richtige Zelle ausgewählt.
Cell(PRow, PCol).Interior.Color = RGB(0, 255, 0)
Exit Do
End If
Loop
End Sub
Geht das Makro durch die If InStr(1, Name, "WKA") dann funktioniert alles einwandfrei und es wird die richtige Zelle ausgewählt.
Geht das Makro aber durch das zweite If, dann wird eine ganz andere Zelle gewählt als die Vorgabe.
Gehe ich das zweite If-Statement mit F8 durch erhalte ich für ActiveCell.Column = 8 und ActiveCell.Row = 1, darauf folgt, dass PCol = 11 und PRow = 15. Im nächsten Schritte bei Cell(PRow, PCol).Select wird die Spalte "R" ausgewählt und nicht Spalte "K", die ja eigentlich den Wert 11 hat.
Die Werte für die UserForm aus dem Arbeitsblatt "Workpackage Date" für z.B. WKS befinden sich in Range("H1:M26"). Die CheckBoxen sollen, bei Aktivierung, die Zellen, in Range("K13:K18) und Range("M13:M18"), grün markieren.
Ich hoffe ich konnte mein Problem einigermaßen verständlich darstellen und jemand kann mir helfen dieses Problem zu lösen.
Danke
EDIT:
Okay, ich hab mittlerweile rausgefunden, da ich die Zelle "H1" markiere, dass diese Zelle dann den Wert Cell(1, 1) hat, daher frage ich mich wie kann ich das ändern, dass es immer von A1 ausgeht?