Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1044to1048
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
Formatierung mit VBA
27.01.2009 08:20:03
Dave
Hallo zusammen
Ich will Zellen aufgrund des Inhalts, der mit einer Formel geholt wird, formatieren.
Ich habe es in der folgenden Datei versucht, jedoch wird die Formatierung nicht automatisch angepasst, sondern die Zelle muss jedesmal angewählt werden.
Könnt ihr Euch das mal in der folgenden Datei anschauen?
Bei einer Eingabe im Register "Eingabe" A6:C6, sollten die Formatierung in den Zellen A6:C6 im Register "Ausdruck" automatisch angepasst werden.
https://www.herber.de/bbs/user/58812.xls
Besten Dank und Gruss

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung mit VBA
27.01.2009 10:10:32
RS
Hi Dave,
Probier mal:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count > 1 Then Exit Sub
Target.Interior.ColorIndex = Sheets("Farbencode").Range("A" _
& Application.WorksheetFunction.Match(Left(Target.Value, 1), _
Sheets("Farbencode").Range("A:A"), 0)).Interior.ColorIndex
End Sub


Grüsse RS

Fehler überspringen:
27.01.2009 10:12:06
RS
Besser:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count > 1 Then Exit Sub
On Error Resume Next
Target.Interior.ColorIndex = Sheets("Farbencode").Range("A" _
& Application.WorksheetFunction.Match(Left(Target.Value, 1), _
Sheets("Farbencode").Range("A:A"), 0)).Interior.ColorIndex
End Sub


Grüsse RS

Anzeige
AW: Fehler überspringen:
27.01.2009 10:43:00
Dave
Hallo RS
Funktioniert soweit, jedoch muss die Zelle mit der Formel jedesmal angewählt werden, damit die Formatierung angepasst wird. Kann das Makro nicht automatisch gestartet werden, bei einer Eingabe im Register "Eingabe"?
Zwei weitere Probleme sind, dass die Schriftfarbe auch angepasst werden müsst (bei schwarzem Hintergrund, weisse Schriftfarbe), sowie dass bei Löschen der Eingabe, dass Feld wieder Standard-Format annehmen sollte.
Weisst Du hierfür auch Lösungen?
Merci für Deine Antwort.
AW: Fehler überspringen:
27.01.2009 10:59:33
RS
Hi Dave,
Kopiere das Makro in die Tabelle "Eingabe", wenn du dort die automatische Formatierung willst.
Hier ist ein Erweitertes, das bei leerer Zelle Hintergrund und Schriftfarbe zurücksetzt und andernfalls beides von der Farbencode-Tabelle übernimmt:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count > 1 Then Exit Sub
On Error Resume Next
If Target.Value = "" Then
Target.Interior.ColorIndex = xlNone
Target.Font.ColorIndex = xlAutomatic
Else
Target.Interior.ColorIndex = Sheets("Farbencode").Range("A" _
& Application.WorksheetFunction.Match(Left(Target.Value, 1), _
Sheets("Farbencode").Range("A:A"), 0)).Interior.ColorIndex
Target.Font.ColorIndex = Sheets("Farbencode").Range("A" _
& Application.WorksheetFunction.Match(Left(Target.Value, 1), _
Sheets("Farbencode").Range("A:A"), 0)).Font.ColorIndex
End If
End Sub


Grüsse RS

Anzeige
AW: Fehler überspringen:
27.01.2009 11:05:17
Dave
Super 2 Probleme sind gelöst :-))
Eins bleibt noch übrig ;-)
Und zwar müsste bei einer Eingabe im Register "Eingabe", die Formatierung im Register "Ausdruck" automatisch angepasst werden.
Gibt es da auch noch eine Möglichkeit?
Formelbezug, Formatierung übernehmen
27.01.2009 11:13:22
RS
Hi Dave,
Da ich nicht weiss, wie deine Tabelle am Schluss aussieht (3 Namen, 50 Namen ?) kann ich dir
auch keinen Typ geben. Ich seh nur, das du jetzt 3 Formeln hast, aber am Ende sind's vielleicht 100!
Was willst du den genau erreichen.
Beschreib mal dein Projekt statt nur ein kleines Teilproblem.
Grüsse RS
AW: Formelbezug, Formatierung übernehmen
27.01.2009 11:22:00
Dave
Hallo RS
Anbei die Datei. Geb ich im Register "Eingabe" einen anderen Namen ein, muss die Formatierung im Register "Ausdruck" angepasst werden.
https://www.herber.de/bbs/user/58818.xls
Anzeige
AW: Formelbezug, Formatierung übernehmen
27.01.2009 12:33:24
RS
Hi Dave,
Na das sieht jetzt aber schon ganz anders aus, als deine ursprüngliche Anfrage.
Darum sieht auch mein Code ganz anders aus. Kopier ihn in die Tabelle Ausdruck und lösch die anderen Codes (von oben). Ich hoffe das Coop die Preise weiterhin senken kann ;-)

Private Sub Worksheet_Calculate()
Dim lCol As Long
Dim lRow As Long
Dim lLen As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error GoTo ErrorOnMatch
For lCol = 2 To 30 Step 7
If Cells(3, lCol) = "" Then
Cells(3, lCol).Interior.ColorIndex = xlNone
Cells(3, lCol).Font.ColorIndex = xlAutomatic
Cells(3, lCol + 6).Interior.ColorIndex = xlNone
Cells(3, lCol + 6).Font.ColorIndex = xlAutomatic
Else
Select Case Left(Cells(3, lCol).Value, 1)
Case "C"
lLen = 2
Case "S"
lLen = 1
If Left(Cells(3, lCol).Value, 2) = "St" Then lLen = 2
If Left(Cells(3, lCol).Value, 3) = "Sch" Then lLen = 3
Case Else
lLen = 1
End Select
lRow = Application.WorksheetFunction.Match(Left(Cells(3, lCol).Value, lLen), _
Sheets("Farbencode").Range("A:A"), 0)
Cells(3, lCol).Interior.ColorIndex = _
Sheets("FarbenCode").Cells(lRow, 1).Interior.ColorIndex
Cells(3, lCol).Font.ColorIndex = _
Sheets("FarbenCode").Cells(lRow, 1).Font.ColorIndex
Cells(3, lCol + 6).Interior.ColorIndex = _
Sheets("FarbenCode").Cells(lRow, 1).Interior.ColorIndex
Cells(3, lCol + 6).Font.ColorIndex = _
Sheets("FarbenCode").Cells(lRow, 1).Font.ColorIndex
End If
Next lCol
Application.EnableEvents = True
Application.ScreenUpdating = True
Exit Sub
ErrorOnMatch:
Cells(3, lCol).Interior.ColorIndex = xlNone
Cells(3, lCol).Font.ColorIndex = xlAutomatic
Cells(3, lCol + 6).Interior.ColorIndex = xlNone
Cells(3, lCol + 6).Font.ColorIndex = xlAutomatic
Resume Next
End Sub


Grüsse RS

Anzeige
AW: Formelbezug, Formatierung übernehmen
27.01.2009 13:35:00
Dave
Hallo RS
Perfekt. Jetzt funktioniert die Datei wie ich es mir vorgestellt habe, obwohl ich das Makro nicht ganz schnalle ;-)
Besten Dank für Deine Hilfe!

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige