In einer Zeile trage ich Anfang und Ende eines Zeitraumes ein. Dazu verwende ich die Buchstaben V, N, bzw A.
Wenn ich diese Buchstaben eintrage, so wird die betreffende Zelle automatisch hellgelb eingefärbt.
Was ich benötige: die Zellen zwischen Anfang und Ende sollen auch eingefärbt werden. Wie geht das mit der bedingten Formatierung?
Lösungsansatz: wenn links und rechts von einer Zelle - nicht zwingend in unmittelbarer Nachbarschaft - V, N oder A stehen, dann soll die betreffende Zelle auch hellgelb erscheinen.
LG Peter
Hi,
mach’s doch so:
Private Sub Worksheet\_Change(ByVal Target As Range)
If Target.Row = 1 Then
Dim i As Long
Dim zwischen As Boolean
For i = 1 To 256
Me.Cells(1, i).Interior.Color = vbWhite
If Me.Cells(1, i).Value = "A" Then
zwischen = True
End If
If zwischen = True Then Cells(1, i).Interior.Color = vbYellow
If Me.Cells(1, i).Value = "E" Then
zwischen = False
End If
Next i
End If
End Sub
Gruß.Timo
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Danke für die Info:
Da ich es nicht geschafft habe, die sache zum laufen zu bringen, sag mir doch, wie ich das modul auslöse (einfach nur auf Tabelle wechseln?) und wo/wie ich die tabelle ausfüllen muss, damit es klappt.
zusatzinfo: ich muss in einem bereich von K20:EU100 die eingaben absuchen!
danke !
peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Danke für die Info:
Hi,
Da ich es nicht geschafft habe, die sache zum laufen zu
bringen, sag mir doch, wie ich das modul auslöse (einfach nur
auf Tabelle wechseln?)
Einfach den Code im Makroeditor in Tabelle1 (oder Tabelle2, je nachdem, welche du benutzt) kopieren.
Ausgeführt wird das Makro automatisch, wenn du eine Zelle in dem Bereich änderst.
und wo/wie ich die tabelle ausfüllen
muss, damit es klappt.
Ich habe es dir einfacher gemacht:
Private Sub Worksheet\_Change(ByVal Target As Range)
Const von\_reihe = 1
Const bis\_reihe = 5
Const von\_spalte = 1
Const bis\_spalte = 100
Const anfang = "A"
Const ende = "E"
Dim i As Long
Dim zwischen As Boolean
If Target.Row \>= von\_reihe And Target.Row
Im oberen Teil kannst du dir die Const-Werte anpassen.
Gruß.Timo
> zusatzinfo: ich muss in einem bereich von K20:EU100 die
Dann wäre:
von\_reihe=20
bis\_reihe=100
von\_spalte=11
bis\_spalte=151
> eingaben absuchen!
>
> danke !
> peter
Gruß.Timo
> > Hi,
> > mach's doch so:
> >
> >
> > Private Sub Worksheet\_Change(ByVal Target As Range)
> > If Target.Row = 1 Then
> > Dim i As Long
> > Dim zwischen As Boolean
> > For i = 1 To 256
> > Me.Cells(1, i).Interior.Color = vbWhite
> > If Me.Cells(1, i).Value = "A" Then
> > zwischen = True
> > End If
> > If zwischen = True Then Cells(1, i).Interior.Color =
> > vbYellow
> > If Me.Cells(1, i).Value = "E" Then
> > zwischen = False
> > End If
> > Next i
> > End If
> > End Sub
> >
> >
> > Gruß.Timo
> >
> >
> > > In einer Zeile trage ich Anfang und Ende eines Zeitraumes ein.
> > > Dazu verwende ich die Buchstaben V, N, bzw A.
> > >
> > > Wenn ich diese Buchstaben eintrage, so wird die betreffende
> > > Zelle automatisch hellgelb eingefärbt.
> > >
> > > Was ich benötige: die Zellen zwischen Anfang und Ende sollen
> > > auch eingefärbt werden. Wie geht das mit der bedingten
> > > Formatierung?
> > >
> > > Lösungsansatz: wenn links und rechts von einer Zelle - nicht
> > > zwingend in unmittelbarer Nachbarschaft - V, N oder A stehen,
> > > dann soll die betreffende Zelle auch hellgelb erscheinen.
> > >
> > > LG Peter
Mit Bordmitteln
Hallo Peter,
Bedingte Formatierung, Formel ist…
=ODER(ODER(ODER(A1=„v“;A1=„n“);A1=„a“);ODER(ODER(C1=„v“;C1=„n“);C1=„a“))
…und dann musst Du natürlich noch eintragen, dass die Zelle in diesem Fall hellgelb sein soll.
Die Formel gilt für die Situation, das A und C die flankierenden Spalten sind. Hast Du mehrere Spalten dazwischen, brauchst Du einen halbabsolutenbezug, dann kannst Du die Formel für alle betroffenen Spalten gleich eingeben: $A1 bzw $C1.
Gruss, Dennis
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
PERFEKT!!!
DAS IST ES!
Letzte Unterstützung Deinerseits:
Const anfang = „A“ soll auf V, N bzw A abgefragt werden
Const ende = „E“ soll ebenso auf V, N, A abgefragt werden
Ich denke, da muss die Logik noch angepasst werden. Denn V,N,A haben in dieser Tabelle schon weitreichende Auswirkungen.
ich dachte, dass jede Zelle in der definierten Matrix K20:EU100 sich nach einem LINKEN und RECHTEN Nachbarn (nur in der gleichen Zeile) umsieht. Wird ein LINKER UND EIN RECHTER Nachbar mit V, N oder A gefunden, dann bekommt die Zelle die Farbe.
THX!
Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Ich kenne die Adresse der benachbarten Zellen nicht. Daher kann ich auch keinen gemischten Bezug eingeben.
Schau bitte unter dem Beitrag von „!!!“. Da sind wir der Lösung schon sehr nahe. Und da findest Du auch weitere Informationen zu der Problemstellung.
Vielen Dank jedenfalls für Deine Unterstützung!
Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi,
DAS IST ES!
Fein.
Letzte Unterstützung Deinerseits:
Const anfang = „A“ soll auf V, N bzw A abgefragt werden
Const ende = „E“ soll ebenso auf V, N, A abgefragt werden
Ich denke, da muss die Logik noch angepasst werden. Denn V,N,A
haben in dieser Tabelle schon weitreichende Auswirkungen.
OK
Private Sub Worksheet\_Change(ByVal Target As Range)
Const von\_reihe = 1
Const bis\_reihe = 5
Const von\_spalte = 1
Const bis\_spalte = 100
Const marker = "VNA"
Dim i As Long
Dim zelle As String
Dim zwischen As Boolean
If Target.Row \>= von\_reihe And Target.Row 0 And Len(zelle) = 1 Then
If zwischen = False Then
zwischen = True
Else
If zwischen = True Then Cells(Target.Row, i).Interior.Color = vbYellow
zwischen = False
End If
End If
If zwischen = True Then Cells(Target.Row, i).Interior.Color = vbYellow
Next i
End If
End Sub
ich dachte, dass jede Zelle in der definierten Matrix
K20:EU100 sich nach einem LINKEN und RECHTEN Nachbarn (nur in
der gleichen Zeile) umsieht. Wird ein LINKER UND EIN RECHTER
Nachbar mit V, N oder A gefunden, dann bekommt die Zelle die
Farbe.
THX!
Peter
Gruß.Timo
EDEL!
99% haben wir geschafft. Ich muss jetzt noch detaillierter werden (dachte das wär schon ausführlich genug, ohne unnötiges zeug reinzuschreiben):
In einer Zeile stehen nicht zwingend nur 2 V, N oder A sondern es können auch mehr in belieber Kombination (V…N…V…A) sein. Im genannten Fall sollte die markierung also vom ersten V bis zum A gehen. Der Rest soll weiss bleiben.
Und wenn ich noch eine Bitte äußern dürfte: es sollte dieses HELLELB sein. dann passt es mit dem Rest zusammen.
Es ist super, dass du mir da so viel hilfst! Wollte auch schon einen Stern vergeben. Aber ich komme da immer auf eine Hilfeseite - obwohl ich schon seit jahren hier mitglied bin!
Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi,
EDEL!
99% haben wir geschafft. Ich muss jetzt noch detaillierter
werden (dachte das wär schon ausführlich genug, ohne unnötiges
zeug reinzuschreiben):
In einer Zeile stehen nicht zwingend nur 2 V, N oder A sondern
es können auch mehr in belieber Kombination (V…N…V…A)
sein. Im genannten Fall sollte die markierung also vom ersten
V bis zum A gehen. Der Rest soll weiss bleiben.
Und wenn ich noch eine Bitte äußern dürfte: es sollte dieses
HELLELB sein. dann passt es mit dem Rest zusammen.
Private Sub Worksheet\_Change(ByVal Target As Range)
Const von\_reihe = 1
Const bis\_reihe = 5
Const von\_spalte = 1
Const bis\_spalte = 100
Const marker = "VNA"
Dim farbe As Long
Dim i As Long
Dim von As Integer
Dim bis As Integer
Dim zelle As String
If Target.Row \>= von\_reihe And Target.Row 0 And Len(zelle) = 1 Then
von = i
Exit For
Else
Me.Cells(Target.Row, i).Interior.Color = vbWhite
End If
Next i
For i = bis\_spalte To von\_spalte Step -1
zelle = Me.Cells(Target.Row, i).Value
If InStr(1, marker, zelle) \> 0 And Len(zelle) = 1 Then
bis = i
Exit For
Else
Me.Cells(Target.Row, i).Interior.Color = vbWhite
End If
Next i
If von \> 0 And bis \> 0 Then
For i = von To bis
Me.Cells(Target.Row, i).Interior.Color = farbe
Next i
End If
End If
End Sub
Die Farbe kannst du in der Zeile farbe = RGB(1, 1, 1) als RGB-Wert eintragen. Dabei sind Werte von 0 bis 255 gültig.
Es ist super, dass du mir da so viel hilfst! Wollte auch schon
einen Stern vergeben. Aber ich komme da immer auf eine
Hilfeseite - obwohl ich schon seit jahren hier mitglied bin!
Danke, aber ich gebe mehr auf persönliches Feedback, so wie du es tust, als auf diese Scheiß Sterne.
Gruß.Timo
Peter
Hi,
DAS IST ES!
Fein.
Letzte Unterstützung Deinerseits:
Const anfang = „A“ soll auf V, N bzw A abgefragt werden
Const ende = „E“ soll ebenso auf V, N, A abgefragt werden
Ich denke, da muss die Logik noch angepasst werden. Denn V,N,A
haben in dieser Tabelle schon weitreichende Auswirkungen.
OK
Private Sub Worksheet_Change(ByVal Target As Range)
Const von_reihe = 1
Const bis_reihe = 5
Const von_spalte = 1
Const bis_spalte = 100
Const marker = „VNA“
Dim i As Long
Dim zelle As String
Dim zwischen As Boolean
If Target.Row >= von_reihe And Target.Row 0 And Len(zelle) = 1 Then
If zwischen = False Then
zwischen = True
Else
If zwischen = True Then Cells(Target.Row,
i).Interior.Color = vbYellow
zwischen = False
End If
End If
If zwischen = True Then Cells(Target.Row,
i).Interior.Color = vbYellow
Next i
End If
End Sub
ich dachte, dass jede Zelle in der definierten Matrix
K20:EU100 sich nach einem LINKEN und RECHTEN Nachbarn (nur in
der gleichen Zeile) umsieht. Wird ein LINKER UND EIN RECHTER
Nachbar mit V, N oder A gefunden, dann bekommt die Zelle die
Farbe.
THX!
Peter
Gruß.Timo
ABSOLUTER TRAUM - UND DAS IN WENIGEN STUNDEN!
VON DER FUNKTION HER 100% DAS GEWÜNSCHTE ERGEBNIS!!!
Ich verwende in meiner Tabellenblattsicht die Gitternetzlinien. Die werden leider weggelöscht. Lässt sich da auch was anpassen?
LG Peter
PS: wie kann ich Dir Deine wohlverdienten Sterne zukommen lassen??
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi,
VON DER FUNKTION HER 100% DAS GEWÜNSCHTE ERGEBNIS!!!
Freut mich.
Ich verwende in meiner Tabellenblattsicht die
Gitternetzlinien. Die werden leider weggelöscht. Lässt sich da
auch was anpassen?
Klar.
Private Sub Worksheet\_Change(ByVal Target As Range)
Const von\_reihe = 1
Const bis\_reihe = 5
Const von\_spalte = 1
Const bis\_spalte = 100
Const marker = "VNA"
Dim farbe As Long
Dim i As Long
Dim von As Integer
Dim bis As Integer
Dim zelle As String
If Target.Row \>= von\_reihe And Target.Row 0 And Len(zelle) = 1 Then
von = i
Exit For
Else
Me.Cells(Target.Row, i).Interior.ColorIndex = xlNone
End If
Next i
For i = bis\_spalte To von\_spalte Step -1
zelle = Me.Cells(Target.Row, i).Value
If InStr(1, marker, zelle) \> 0 And Len(zelle) = 1 Then
bis = i
Exit For
Else
Me.Cells(Target.Row, i).Interior.ColorIndex = xlNone
End If
Next i
If von \> 0 And bis \> 0 Then
For i = von To bis
Me.Cells(Target.Row, i).Interior.Color = farbe
Next i
End If
End If
End Sub
LG Peter
Gruß zurück.Timo
PS: wie kann ich Dir Deine wohlverdienten Sterne zukommen
lassen??
Nichts für ungut, aber ich hab von den Sternen nichts.
Trotzdem zur Info:
Auf der rechten Seite siehst du mehrere Buttons (z.B. Auf Artikel antworten, Ursprungsartikel anzeigen etc.). Dort findest du auch „Diesen Artikel als hilfreich bewerten“. That’s it.
Die Farbe kannst du in der Zeile farbe = RGB(1, 1, 1)
als RGB-Wert eintragen. Dabei sind Werte von 0 bis 255 gültig.
Es ist super, dass du mir da so viel hilfst! Wollte auch schon
einen Stern vergeben. Aber ich komme da immer auf eine
Hilfeseite - obwohl ich schon seit jahren hier mitglied bin!
Danke, aber ich gebe mehr auf persönliches Feedback, so wie du
es tust, als auf diese Scheiß Sterne.
Gruß.Timo
Peter
Hi,
DAS IST ES!
Fein.
Letzte Unterstützung Deinerseits:
Const anfang = „A“ soll auf V, N bzw A abgefragt werden
Const ende = „E“ soll ebenso auf V, N, A abgefragt werden
Ich denke, da muss die Logik noch angepasst werden. Denn V,N,A
haben in dieser Tabelle schon weitreichende Auswirkungen.
OK
Private Sub Worksheet_Change(ByVal Target As Range)
Const von_reihe = 1
Const bis_reihe = 5
Const von_spalte = 1
Const bis_spalte = 100
Const marker = „VNA“
Dim i As Long
Dim zelle As String
Dim zwischen As Boolean
If Target.Row >= von_reihe And Target.Row 0 And Len(zelle) = 1 Then
If zwischen = False Then
zwischen = True
Else
If zwischen = True Then Cells(Target.Row,
i).Interior.Color = vbYellow
zwischen = False
End If
End If
If zwischen = True Then Cells(Target.Row,
i).Interior.Color = vbYellow
Next i
End If
End Sub
ich dachte, dass jede Zelle in der definierten Matrix
K20:EU100 sich nach einem LINKEN und RECHTEN Nachbarn (nur in
der gleichen Zeile) umsieht. Wird ein LINKER UND EIN RECHTER
Nachbar mit V, N oder A gefunden, dann bekommt die Zelle die
Farbe.
THX!
Peter
Gruß.Timo
FERTIG!
Lieber Timo - ich danke Dir vielmals für Deine Mühe. Es bleibt jetzt kein Wunsch zu diesem Thema mehr offen. Alles läuft wie am Schnürchen.
Erlaube mir, Dich fallweise wieder in VBA-Angelegenheiten zu kontaktieren. Zwar habe ich nicht die Absicht, immer fragen zu kommen, wenn was unklar ist. Ich möchte es schon mal auch selbst schaffen. Aber Deine Hilfe und diese Lösungen erleichtern den VBA-Einstieg doch sehr!
Vielen Dank!
Peter
Kein Ding
Hi Peter,
Lieber Timo - ich danke Dir vielmals für Deine Mühe. Es bleibt
jetzt kein Wunsch zu diesem Thema mehr offen. Alles läuft wie
am Schnürchen.
Freut mich
Erlaube mir, Dich fallweise wieder in VBA-Angelegenheiten zu
kontaktieren. Zwar habe ich nicht die Absicht, immer fragen zu
kommen, wenn was unklar ist. Ich möchte es schon mal auch
selbst schaffen. Aber Deine Hilfe und diese Lösungen
erleichtern den VBA-Einstieg doch sehr!
Wenn was ist, meld dich doch ruhig.
Vielen Dank!
Peter
Gern geschehen.
Gruß.Timo