Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro (Change) auf bestimmte Bereiche einschränke

Makro (Change) auf bestimmte Bereiche einschränke
Marco
Hallo,
ich habe mir vor Ewigkeiten ein VBA-Projekt zusammengebastelt, welches die Schriftfarbe bzw. die Zellfarbe in Abhängigkeit von bestimmten Eingaben (bei mir als Auswahlfelder) ändert. Dies funktioniert soweit auch alles super.
Da ich die Tabelle nun erweitern muss, kommt es zu Problemen. Egal, wo ich nämlich das Wort für die Bedingung (z.B. "Absage" oder "kein Angebot machen") eingebe, wird die gewünschte Formatierung ausgeführt.
Wie lässt sich dies einschränken?
Die Bedingungen für die Hintergrundfarbe befinden sich in der Spalte AK und die Bedingungen für die Schriftfarbe in der Spalte W.
Ich habe der Übersicht halber nur jeweils eine Bedingung im folgenden Code gelassen:
___________________________________
Private Sub Worksheet_Activate()
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Cells.Count > 1 Then Exit Sub
Select Case Target.Value
'bei "Absage" Hintergrundfarbe grau
Case "Absage"
Range("B" & Target.Row & ":AX" & Target.Row).Interior.ColorIndex = 16
'bei "kein Angebot machen" Schriftfarbe schwarz
Case "kein Angebot machen"
Range("B" & Target.Row & ":AX" & Target.Row).Font.ColorIndex = 0
End Select
End Sub

___________________________________
Vielen Dank schon mal im vorraus für Eure Hilfe!!!!!!
Viele Grüße
Marco
AW: Makro (Change) auf bestimmte Bereiche einschränke
17.11.2009 21:37:09
Peter
Hallo Marco,
Du kannst es so begrenzen: If Target.Column 2 Then Exit Sub
oder If Target.Row 25 Then
Gruß Peter
AW: Makro (Change) auf bestimmte Bereiche einschränke
18.11.2009 13:46:35
Marco
Hallo Peter,
vielen Dank für Deine schnelle Antwort! Leider funktioniert es nicht mehr, wenn ich den Code so ändere:
Private Sub Worksheet_Activate()
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Cells.Count  2 Then Exit Sub
Select Case Target.Value
'bei "Absage" Hintergrundfarbe grau
Case "Absage"
Range("B" & Target.Row & ":AX" & Target.Row).Interior.ColorIndex = 16
'bei "kein Angebot machen" Schriftfarbe schwarz
Case "kein Angebot machen"
Range("B" & Target.Row & ":AX" & Target.Row).Font.ColorIndex = 0
End Select
End Sub
__________
Leider kann ich Deinen Vorschlag auch nicht nachvollziehen, was aber sicherlich daran liegt, dass ich keine Ahnung von VBA habe :-)
Kann man den VBA-Code nicht auf die Spalte AK und W beschränken?
Vielleicht hast Du ja noch eine Idee!
Viele Grüße und vielen Dank
Marco
Anzeige
AW: Makro (Change) auf bestimmte Bereiche einschränke
18.11.2009 16:58:18
Peter
Hallo Marco,
dann versuch es so:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'     Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Count > 1 Then Exit Sub
If Target.Column  23 And Target.Column  37 Then Exit Sub
Select Case Target.Value
'           bei "Absage" Hintergrundfarbe grau
Case "Absage"
Range("B" & Target.Row & ":AX" & Target.Row).Interior.ColorIndex = 16
'           bei "kein Angebot machen" Schriftfarbe schwarz
Case "kein Angebot machen"
Range("B" & Target.Row & ":AX" & Target.Row).Font.ColorIndex = 0
End Select
End Sub
Gruß Peter
Anzeige
AW: Makro (Change) auf bestimmte Bereiche einschränke
19.11.2009 12:28:08
Marco
Vielen Dank!
Jetzt habe ich auch Peters Lösung verstanden.
Viele Grüße Marco
AW: Makro (Change) auf bestimmte Bereiche einschränke
18.11.2009 17:05:15
Björn
Hallo,
richtig lesen:
Peter schreibt:
If Target.Column  2 Then Exit Sub
If Target.Row  25 Then

Du veränderst aber Code an ner Stelle, von der gar nicht die Rede war. Hier:
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Cells.Count > 1 Then Exit Sub

Hast Du aus ">1" die Bedingung "2" gemacht. Du prüfst also, ob die Anzahl markierter Zellen ungleich 2 ist. Das ändere mal schnell wieder zurück ;-)
Die Zeilen von Peter baust du zusätzlich ein, am besten direkt nach der Prüfung, ob mehr als 1 Zelle markiert ist.
Peters 1. Zeile prüft z.B. ob Spalte ungleich 2 (nur bei Spalte B läuft Code weiter).
Verstanden? Kannst Du das anpassen?
Gruß
Björn
Anzeige
AW: Makro (Change) auf bestimmte Bereiche einschränke
19.11.2009 12:29:25
Marco
Danke Björn für die Erläuterung. Jetzt habe ich es verstanden :-)
Viele Grüße
Marco

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige