ich möchte gerne in einer zeile vorne ein Zahl schreiben.
Diese Zahl soll dann rechts in der zeile dann stehen, wenn eine Zelle eingefärbt wird.
Ist das möglich?
Gruß
Stefan
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
Option Explicit
Sub KopieWennGefärbt1()
Dim ze&, sp%
For ze = 2 To ActiveSheet.UsedRange.Rows.Count
For sp = 3 To ActiveSheet.UsedRange.Columns.Count
If Cells(ze, sp).Interior.ColorIndex <> xlColorIndexNone Then _
Cells(ze, sp) = Cells(ze, 1)
Next sp
Next ze
End Sub
Option Explicit
Sub KopieWennGefärbt2()
Dim ze&, sp%
For ze = 2 To ActiveSheet.UsedRange.Rows.Count
For sp = 3 To ActiveSheet.UsedRange.Columns.Count
If Cells(ze, sp).Interior.ColorIndex = xlColorIndexNone Then
Cells(ze, sp).ClearContents
Else
Cells(ze, sp) = Cells(ze, 1)
End If
Next sp
Next ze
End Sub
Um in Excel einen Wert automatisch in eine Zelle zu kopieren, wenn eine andere Zelle farbig ist, kannst du dies mit einem VBA-Makro erreichen. Hier sind die Schritte, die du befolgen solltest:
Öffne Excel und drücke ALT
+ F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
Füge den folgenden Code ein:
Option Explicit
Sub KopieWennGefärbt()
Dim ze As Long, sp As Long
For ze = 2 To ActiveSheet.UsedRange.Rows.Count
For sp = 3 To ActiveSheet.UsedRange.Columns.Count
If Cells(ze, sp).Interior.ColorIndex <> xlColorIndexNone Then
Cells(ze, sp) = Cells(ze, 1)
End If
Next sp
Next ze
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Färbe die Zellen in deinem Arbeitsblatt, z.B. in den Spalten E bis H.
Gehe zu Extras
> Makro
> Makros
, wähle KopieWennGefärbt
aus und klicke auf Ausführen
.
Das Makro wird nun die Zahl aus der ersten Spalte in alle eingefärbten Zellen der Reihe kopieren.
Problem: Nach dem Färben der Zellen wird die Zahl nicht automatisch eingefügt.
Problem: Die eingefärbten Zellen zeigen nicht die korrekten Werte an.
1
bis 56
zugeordnet werden. Verwende die ColorIndex
-Eigenschaft, um die Farben zu identifizieren.Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die Bedingte Formatierung nutzen, um die Zellen visuell hervorzuheben, aber die Funktionalität, die du suchst, ist nur durch VBA erreichbar. Eine andere Möglichkeit wäre die Verwendung von Excel-Formeln, um Werte zu berechnen, die auf anderen Zellen basieren, jedoch nicht direkt auf der Zellenfarbe.
Hier ist ein einfaches Beispiel, wie du die Zellenfarbe verwenden kannst:
5
und möchtest diese Zahl in die Zellen E2 bis H2 kopieren, wenn diese Zellen eingefärbt sind.5
in den gefärbten Zellen erscheint.Nutze die Worksheet_Change
-Ereignisprozedur, um das Makro automatisch auszuführen, wenn du eine Zelle änderst. Hier ein Beispiel:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A2:A100")) Is Nothing Then
Call KopieWennGefärbt
End If
End Sub
Überlege, die ColorIndex
zu verwenden, um spezifische Farben zu identifizieren, wie z.B.:
If Cells(ze, sp).Interior.ColorIndex = 6 Then ' Gelb
Cells(ze, sp) = Cells(ze, 1)
End If
1. Kann ich die Zellenfarbe in Excel ohne VBA ändern? Ja, du kannst die Zellenfarbe über die bedingte Formatierung ändern, jedoch benötigst du VBA, um auf die Zellenfarbe zu reagieren und Werte zu kopieren.
2. Wie kann ich sicherstellen, dass die Zelle nur bei einer bestimmten Farbe einen Wert kopiert?
Du kannst in deinem VBA-Code Bedingungen hinzufügen, die nur für bestimmte ColorIndex
-Werte gelten, um gezielt auf Farben zu reagieren.
3. Gibt es eine Möglichkeit, das Makro automatisch auszuführen, ohne es manuell zu starten?
Ja, du kannst das Worksheet_Change
-Ereignis nutzen, um das Makro automatisch auszuführen, wenn sich die Zellen ändern.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen