2.9k Aufrufe
Gefragt in Tabellenkalkulation von ellapropella Einsteiger_in (69 Punkte)
Hallo Miteinander,

ich habe mal wieder ein Problem. Es geht um Folgendes:
Ich möchte das wenn ich eíne Zelle farbig markiere daneben eine Zahl angegeben wird. Ich habe auch einen Befehl, aber dieser funktioniert nicht. Dieser ist Folgender:
Sub test()
For zeile = 1 To 5
Select Case Cells(zeile, 1).Interior.ColorIndex
Case 6: zahl = 815
Case 4: zahl = 4711
Case Else: zahl = 0
End Select
Cells(zeile, 2).Value = zahl
Next zeile
End Sub


Hier soll in den Zellen A1-A5 die Farbe geprüft werden, bei gelb soll in die Spalte B die Zahl 0815 erscheinen, bei neongrün die Zahl 4711, 0 wenn ohne Hintergrundfarbe.
Problem: Es funktioniert nicht. :(

Kann mir jemand helfen?

18 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

probier's mal so:

Option Explicit

Sub test()
Dim zeile As ineger
For zeile = 1 To 5
Select Case Cells(zeile, 1).Interior.ColorIndex
Case 6
Cells(zeile, 2) = 815
Case 43
Cells(zeile, 2) = 4711
Case Else:
Cells(zeile, 2) = 0
End Select
Next zeile
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Korrektur:

die zweite Codezeile muss so lauten

Dim zeile As Integer
0 Punkte
Beantwortet von ellapropella Einsteiger_in (69 Punkte)
Hallo Rainer,

vielen Dank. Eine Frage habe ich noch, bis mein Problem ganz gelöst ist: Der Befehl funktioniert nur, wenn ich im VBA auf ausführen klicke. Eigentlich sollte das so sein, das es in der Exel automatisch funktioniert. Wieso klappt das nicht?

Viele Grüße
0 Punkte
Beantwortet von ellapropella Einsteiger_in (69 Punkte)
Hallo Rainer,

ich habe doch noch eine Frage. Der Befehl ist vereinfacht. ich wollte erstmal wissen, ob das überhaupt funktioniert und dann auf meine Tabelle übertragen.Diese ist echt komplex. Die Spalten erstrecken sich von A bis BK und dann auch nicht jede Zelle. Ich kann es also nicht einfach so übertragen "zeile 1, zeile 2" Es ist schon eher Zellenbezogen. Verstehst Du was ich meine?

Grüße
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo,

Eigentlich sollte das so sein, das es in der Exel automatisch funktioniert. Wieso klappt das nicht?
[quote]

...da müsstest Du Dich für ein Ereignismakro entscheiden, aber leider wird durch die Farbänderung einer Zelle kein Ereignis ausgelöst.

Möglich wäre u. a. ein Makrostart durch Rechtsklick oder Doppelklick in eine Zelle.

Für Dein weiteres Anliegen wäre eine Beispieldatei erforderlich, deren Struktur dem Original entspricht, sensible Daten können verfälscht werden.

Gruß
Rainer
0 Punkte
Beantwortet von ellapropella Einsteiger_in (69 Punkte)
Hallo Rainer,

ich denke es lässt sich einfacher erklären, wenn Du siehst, was ich meine:
http://www.loaditup.de/695143-abcgct34pq.html
Ich habe die Datei um die es geht mal hoch geladen.
Man kann da die ganzen Lagerplätze die wir haben sehen. Diese werden über das Jahr inventiert. Ich möchte die Lagerplätze farbig markieren. Unten soll dann für jeden markierten lagerplatz eine eins ausgegeben werden (irgendwo wo frei ist. Ebenfalls unten werde ich eine Zahl hinschreiben (Anzahl der Lagerplätze insgesamt) Sagen wir mal 3000. Wenn ein Lagerplatz farbig markiert wird wird ja irgendwo unten die Zahl eins ausgegeben. Mit Formeln möchte ich dann sagen: Ziehe mir von den 3000 Lagerplätzen die eins ab. Und das eben für jeden Lagerplatz. So habe ich eine Übersicht, welche Lagerplätze dieses Jahr noch zu überprüfen sind.
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Linda,

es wäre natürlich schön, wenn Du in der Datei mal dargestellt hättest, wie das Ergebnis konkret aussehen soll.
Natürlich am konkreten Beispiel noch mal erklärt.

Ansonsten kann ich nicht helfen, da ich mehr Zeit dazu benötige um zu begreifen, was Du willst als für eine etwaige Lösung.

Bitte keine weiteren Worte Beitrag sondern Dein, in der Datei unmissverständlich dargestellter, Lösungswunsch.

Gruß
Rainer
0 Punkte
Beantwortet von ellapropella Einsteiger_in (69 Punkte)
Hallo Rainer,

anbei die Tabelle. http://www.loaditup.de/696064-8xdqrsbm49.html

Ab Zeile 119 (G119 - G161) sieht man die Anzahl der der Lagerplätze, darunter (G162) die Lagerplätze in Summe.
Nun soll es so sein, dass die einzelnen Lagerplätze farbig markiert werden (z.B. Zelle B10, B11,B12, B13 hellgrün, Zelle C10, C11, C12, C13 dunkelgrün) > (für die Farben hell- und dunkelgrün soll eine 1 an einer bestimmten Stelle ausgegeben werden. Bitte dazu beim Sternchen (*) weiterlesen. Alle anderen Farben oder weiß soll eine Null geschrieben werden. Diese Zahlen sollen ab Zelle "I119" ausgegeben werden. Für den ersten Typ ( habe ich das mal händisch ausgefüllt, weil ich ja den Programmiercode nicht kenne (Zelle I119 bis IV119) Da stehen jetzt überall Nullen und Einsen. Dieses für alle Typen zusammengerechnet ergibt die Lagerplätze die gezählt wurden (G163) Die Anzahl aller Lagerplätze (G162) minus die bereits gezählten Lagerplätze (G163) ergibt die noch zu Zählenden (G164)
(*) Zelle A10 bis A13 beschreibt den ersten Bereich. Dieser hat insgesamt 248 Lagerplätze (4 in der Höhe x 62 in der Breite wie abgebildet) Alle Zahlen dafür sollen in Zeile 119 ausgegeben werden, Der zweite Bereich (A16 bis A19) in Zeile 120 u.s.w. Ist Feld B10 grün so erscheint in Feld I119 eine 1, ist Feld B11 ohne Farbe erscheint in Feld J119 eine Nulle u.s.w.
Es ist ei9gentlich nicht so kompliziert. Ich hoffe ich drücke mich nicht zu kompliziert aus. Vielen Dank für deine Hilfe.

Viele Grüße
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Linda,

habe jetzt Dein Ziel begriffen.

Leider habe ich in den nächsten Tagen wenig Zeit, sodass Du Dich etwas gedulden musst.

Gruß
Rainer
0 Punkte
Beantwortet von ellapropella Einsteiger_in (69 Punkte)
Hallo Rainer,

ich hatte schon Angst ich bringe es schlecht rüber. :) War ja nicht so einfach mit mir. Vielen Dank für Deine Mühe. Dann gedulde ich mich etwas.

Grüße

Linda
...