Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aktuelle Zeile - In Range - Feld einfärben

Aktuelle Zeile - In Range - Feld einfärben
01.06.2018 08:01:06
Alexander
Guten Morgen,
gerne würde ich nochmal eure Hilfe in Anspruch nehmen. Ich habe ein Script was bestimmte Felder überprüft und je nach Inhalt dann andere Felder füllt oder einfärbt.
Hier ist ein Teil des Scripts For Each rngCell In Range("E8:E200") Select Case rngCell.Value Case "Grundplatte" If Range("G4") = "Lehre" Then 'Wenn als Werkzeugbezeichnung in F4 Lehre eingetragen _ _ wurde dann ist die Grundplatte aus Alu rngCell.Offset(0, 1).Value = "Alu" ElseIf Not Range("G4") = "Vorserie" Then 'Wenn als Werkzeugbezeichnung nicht _ Vorserie steht dann ST52 eintragen, bei Vorserie frei lassen rngCell.Offset(0, 1).Value = "ST52" rngCell.Offset(0, 2).Value = "brennen" End If Case "Zwischenplatte" rngCell.Offset(0, 1).Value = "ST52" rngCell.Offset(0, 2).Value = "brennen" Case "Leiste" rngCell.Offset(0, 1).Value = "ST52" rngCell.Offset(0, 2).Value = "brennen" Case "Kopfplatte" rngCell.Offset(0, 1).Value = "ST52" rngCell.Offset(0, 2).Value = "brennen" Case "Abstreifplatte" rngCell.Offset(0, 1).Value = "1.2379" Case "Druckplatte" rngCell.Offset(0, 1).Value = "1.2379" Case "Schneidmatrize" rngCell.Offset(0, 1).Value = "1.2379" Case "Halteplatte" rngCell.Offset(0, 1).Value = "1.1730" Case "Biegestempel" rngCell.Offset(0, 1).Value = "1.2379" Case "Biegeeinsatz" rngCell.Offset(0, 1).Value = "1.2379" Case "Einsatz" rngCell.Offset(0, 1).Value = "1.2379" Case "Heberplatte" rngCell.Offset(0, 1).Value = "1.2379" Case "Keil" rngCell.Offset(0, 1).Value = "1.1730" Case "Verriegler" rngCell.Offset(0, 1).Value = "1.1730" Case "Streifenführung" rngCell.Offset(0, 1).Value = "1.1730" Case "Druckplatte" rngCell.Offset(0, 1).Value = "1.2379" Case "Druckstück" rngCell.Offset(0, 1).Value = "1.2379" Case "Prägestempel" rngCell.Offset(0, 1).Value = "1.2379" Case "Prägeeinsatz" rngCell.Offset(0, 1).Value = "1.2379" Case "Rückenführung" rngCell.Offset(0, 1).Value = "1.2379" Case "Aufnahme" rngCell.Offset(0, 1).Value = "1.2379" Case "Distanzplatte" rngCell.Offset(0, 1).Value = "1.2379" Case "Trennmatrize" rngCell.Offset(0, 1).Value = "1.2379" Case "Signaturhalter" rngCell.Offset(0, 1).Value = "1.2379" Case "Erodierblock" rngCell.Offset(0, 1).Value = "1.2379" End Select Next rngCell Jetzt möchte ich das erweitern. Wenn also in Spalte E das Wort Halteplatte auftaucht, wird in dem Feld rechts daneben (Offset(0,1)) der Wert 1.1730 eingetragen.
Jetzt möchte ich an der Stelle überprüfen ob der Wert in Spalte J (aktuelle Zeile) den Wert 30 oder höher hat und dieses Feld dann einfärben.
einfärben würde ich dann mit

rngCell.Offset(0, 5).Interior.ColorIndex = 26

Ich bekomme nur den Bezug zur Zeile nicht hin.
So in etwa habe ich mir das gedacht.

Case "Halteplatte"
rngCell.Offset(0, 1).Value = "1.1730"
If (aktuelleZeileSpalteJ) => "30" Then
rngCell.Offset(0, 5).Interior.ColorIndex = 26
End If

Danke für die Hilfe :)

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktuelle Zeile - In Range - Feld einfärben
01.06.2018 08:03:54
Hajo_Zi
steht Text in der Zelle?
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Aktuelle Zeile - In Range - Feld einfärben
01.06.2018 08:14:07
Alexander
Ja es steht Text in der Zelle, ich brauche auch nicht unbedingt ein "größer als" es würde reichen wenn man prüft ob eine 30 drin steht
dann: If Cells(ActiveCell.Row, "J") = "30" Then
01.06.2018 08:17:00
Matthias
owT
AW: dann: If Cells(ActiveCell.Row, "J") = "30" Then
01.06.2018 08:28:22
Alexander
Funktioniert leider nicht.
so sieht der Code jetzt aus

Case "Halteplatte"
If Cells(ActiveCell.Row, "J") = "30" Then
rngCell.Offset(0, 5).Interior.ColorIndex = 26
End If
rngCell.Offset(0, 1).Value = "1.1730"

Ändere ich es zum Testen in If Not um dann wird die passende Zelle gefärbt.
Dann passt wohl was mit Cells(ActiveCell.Row, "J") = "30" nicht so ganz oder?

Case "Halteplatte"
If Not Cells(ActiveCell.Row, "J") = "30" Then
rngCell.Offset(0, 5).Interior.ColorIndex = 26
End If
rngCell.Offset(0, 1).Value = "1.1730"

Anzeige
= "30" oder <>"30" ?
01.06.2018 08:38:08
Matthias
Zitat
es würde reichen wenn man prüft ob eine 30 drin steht
Du musst schon selbst wissen, ob Du nun auf gleich(30), oder ungleich(30) prüfen willst.
Gruß Matthias
AW: = "30" oder <>"30" ?
01.06.2018 08:53:34
Alexander
Ja das weiß ich auch, ich möchte gleich(30) prüfen.
Das funktioniert aber leider nicht. Deswegen habe ich das mit If Not getestet ob das korrekt eingefärbt wird um den Fehler einzugrenzen.
bei If not färbt er jede Zelle in Spalte J egal ob dort 30 oder was anderes steht. Was bedeutet das die Abfrage falsch ist. Es wird nicht das richtige Feld in Spalte J geprüft so wie es für mich aussieht.
nachgehakt ...
01.06.2018 08:53:23
Matthias
Hallo
Sehe ich das richtig, das Du es so als Ergebnis haben wolltest?
Tabelle2

 EFGHIJ
1      
2      
3      
4  Lehre   
5      
6     Text!
7      
8     30
9GrundplatteAlu   30
10     30
11     30
12ZwischenplatteST52brennen  30
13     30
14     30
15     30
16Halteplatte1,173   30
17     30
18     30
19     30
20     30


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Matthias
Anzeige
AW: nachgehakt ...
01.06.2018 08:54:51
Alexander
Ja genau
Code für Test gekürzt ...
01.06.2018 09:01:27
Matthias
Hallo Alexander
Hab den Code zum Testen gekürzt. War ja nicht alles dafür relevant.
Dim rngCell As Range
For Each rngCell In Range("E8:E20") 'gekürzt zum Testen
Select Case rngCell.Value
Case "Grundplatte"
If Range("G4") = "Lehre" Then
rngCell.Offset(0, 1).Value = "Alu"
ElseIf Not Range("G4") = "Vorserie" Then
rngCell.Offset(0, 1).Value = "ST52"
rngCell.Offset(0, 2).Value = "brennen"
End If
Case "Zwischenplatte"
rngCell.Offset(0, 1).Value = "ST52"
rngCell.Offset(0, 2).Value = "brennen"
Case "Halteplatte"
rngCell.Offset(0, 1).Value = "1.1730"
If Cells(rngCell.Row, "J") = "30" Then
rngCell.Offset(0, 5).Interior.ColorIndex = 26
End If
End Select
Next

Musst Du oben wieder auf Deinen Bereich anpassen und
die anderen Case-Abschnitte wieder einfügen.
Gruß Matthias
Anzeige
AW: Code für Test gekürzt ...
01.06.2018 09:05:58
Alexander
Perfekt, danke :)
If Cells(ActiveCell.Row, "J") >= 30 Then ...
01.06.2018 08:10:36
Matthias
owT

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige