ActiveCell.FormulaR1C1 Schleife
26.02.2019 10:52:10
Giorgi
Ich will das man in eine Exceltabelle eine bestimmten Klassennamen einfügt in diesem Fall eine aus dem Case und die jeweiligen vier Spalten werden bunt eingefärbt. Dies habe ich soweit erfolgreich gelöst. Weitere Casefälle habe ich aus Einfachheit weg gelassen.
Das Problem:
Die Klassen habe aber einen längeren Titel die in einem weiteren Worksheet ("Übersetzung") niedergeschrieben sind.
D.h. ich schreibe in Spalte E 4 "Klasse-1a" die Zellen E4,F4,G4 und H4 werden eingefärbt.
Jetzt soll in der Zelle F4 der lange Titel der Klasse stehen.Dieser steht im Sheet "Übersetzung". Manuell würde ich in Zelle F4 "=Titel" schreiben und der Titel der jeweiligen Klasse wird mir angezeigt. Soweit funktioniert alles einwandfrei. Dennoch erstreckt sich die Datei auf viele Spalten.
Ich hab da an ein Vlookup per VBA gedacht leider komme ich nicht auf die Rangeeigenschaft.
Mein Anliegen wäre somit, einen Code zu generieren der prüft ob in der Spalte E und somit in jede weitere vierten Spalte I,M etc.etwas aus dem CaseFall steht,falls ja dann soll in der Folgespalte F,J etc. die Übersetzung der Klasse stehen.
Mit dem Makro Recorder komme ich leider nicht weiter der spuckt mir nur
ActiveCell.FormulaR1C1 = "=Titel"
Ich würde so anfangen For Spalte = 6 To 234 Step 4
Dann der gesuchte CodeNext Spalte
Hier ist der Code des Einfärbens
Public Sub Farbwechsel()
Dim itm As Range
Application.ScreenUpdating = False
Sheets("Plan").UsedRange.Offset(1).Interior.ColorIndex = xlColorIndexNone
For Each itm In Sheets("Plan").UsedRange.Offset(1)
If Not IsError(itm) Then
With itm
Select Case .Value2
'Klassen
Case "Klasse-1a", "Klasse-1b", "Klasse-1c", "Klasse-1d", "Klasse-1e", "Klasse-1f", _
"Klasse-1g"
.Interior.Color = RGB(218, 150, 148)
itm.Offset(0, 1).Interior.Color = RGB(218, 150, 148)
itm.Offset(0, 2).Interior.Color = RGB(218, 150, 148)
itm.Offset(0, 3).Interior.Color = RGB(218, 150, 148)
End Select
End With
End If
Next
Application.ScreenUpdating = True
End Sub
Für Anregungen und Denkanstöße wäre ich sehr dankbar.Gruß Giorgi