Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Formatieren von Zellen per VBA
Zellen
Guten Tag
habe bereits eine Ergänzungsfrage zu einem Projekt bei welchem mir hier via Forum schon sehr sehr gut geholfen wurde....
und zwar:
mittels folgendem Code schreibe ich in eine Spalte ein Datum:
Cells(j, 10).Value = CDate(MyDatStrg)
Wie müsste ich diese Zeile erweitern, damit die entsprechende Zelle gleich auch noch hellblau eingefärbt wird ?
BESTEN DANK für die Hilfe !
AW: Formatieren von Zellen per VBA
07.12.2010 10:53:17
Zellen
Hi,
Cells(j, 10).Value = CDate(MyDatStrg)
Cells(j, 10).Interior.ColorIndex = 34
Grüße Boris
AW: Formatieren von Zellen per VBA
07.12.2010 10:54:30
Zellen
Hi Pascal,
Die Frage ist, was ist "hellblau" ?
Cells(j, 10).Interior.Colorindex = 20

GreetZ Renée
AW: Formatieren von Zellen per VBA
07.12.2010 11:02:04
Zellen
Danke herzlich allen für die grossartige Hilfe doch ....
Wenn die Zelle bereits schon eine Farbe hatte (vor dem Einfügen) dann wird diese nicht neu formatiert.
Dh. die Zelle behält ihre urpsprungs-Farbe obwohl
Cells(j, 10).Interior.Colorindex = 20
Warum das ?
Das wäre nur dann der Fall, wenn
07.12.2010 11:08:19
Renee
für diese Zelle eine bedingte Formatierung aktiv ist, Pascal.
D.h. Diese Farbe kannst du dann nicht übersteuern, es sei denn du löscht die bedingte Formatierung!
GreetZ Renée
Anzeige
hast Du Blattschutz auch deaktiviert ? oT
07.12.2010 11:09:32
Matthias
AW: hast Du Blattschutz auch deaktiviert ? oT
07.12.2010 11:18:47
Pascal
Hier mal den Code den ich bisher habe. Ich glaube das Problem liegt darin, dass das Autofill hier wieder alles überschreibt ?
Private Sub CommandButton1_Click() 'Formeln runterkopieren
On Error Resume Next
ActiveSheet.Unprotect "0000"
Dim x As Long, y As Long, j As Long
Dim MyDatStrg As String
MyDatStrg = InputBox("Bitte Datum angeben", "Datum", Date)
If StrPtr(MyDatStrg) = 0 Then Exit Sub 'Abbrechen gedrückt
If Not IsDate(MyDatStrg) Then Exit Sub 'Kein Datum
x = Cells(Rows.Count, 10).End(xlUp).Row
y = Cells(Rows.Count, 1).End(xlUp).Row
For j = x + 1 To y
Cells(j, 10).Value = CDate(MyDatStrg)
Cells(j, 10).Interior.ColorIndex = 34
Cells(j, 11).Interior.ColorIndex = 6
Cells(j, 12).Interior.ColorIndex = 6
Cells(j, 13).Interior.ColorIndex = 6
Next
If x  y Then Range(Cells(x, 11), Cells(x, 13)).AutoFill Destination:=Range(Cells(y, 11),  _
Cells(x, 13))
ActiveSheet.Protect "0000"
End Sub

Anzeige
hier nochmal mal konkret ...
07.12.2010 11:23:30
Matthias
Hallo Pascal
Du hättest besser zum entsprechenden Beitrag verlinken sollen, bzw. gleich in diesem Beitrag weiterschreiben sollen.
https://www.herber.de/forum/messages/1190213.html
Somit werden Zusammenhänge besser sichtbar und Andere können sich da besser reindenken
Private Sub CommandButton1_Click()
Dim x As Long, y As Long, j As Long
Dim MyDatStrg As String
MyDatStrg = InputBox("Bitte Datum angeben", "Datum", Date)
If StrPtr(MyDatStrg) = 0 Then Exit Sub 'Abbrechen gedrückt
If Not IsDate(MyDatStrg) Then Exit Sub 'Kein Datum
ActiveSheet.Unprotect
x = Cells(Rows.Count, 10).End(xlUp).Row
y = Cells(Rows.Count, 1).End(xlUp).Row
For j = x + 1 To y
          With Cells(j, 10)
.Value = CDate(MyDatStrg)
.Interior.ColorIndex = 20
End With
Next
If x  y Then Range(Cells(x, 11), Cells(x, 13)).AutoFill Destination:=Range(Cells(y, 11),  _
Cells(x, 13))
ActiveSheet.Protect
End Sub
und das funktioniert auch:
https://www.herber.de/bbs/user/72627.xls
Gruß Matthias
Anzeige
AW: hier nochmal mal konkret ...
07.12.2010 11:31:37
Pascal
Ups ja stimmt ! hätte ich wirklich tun sollen, die Frage auf den alten Thread zu verlinken.
SORRY für meine Unachtsamkeit !!!!!
werde den neuen Code gleich mal testen
AW: Formatieren von Zellen per VBA
07.12.2010 11:30:33
Zellen
Hallo Pascal,
wenn ich z.B. A1 ohne Farbe lasse und A2 von Hand Grün mache und dann dieses VBA-Schnipsel laufen lasse funktioniert es einwandfrei:
Sub farbtest()
Range("A1:A2").Interior.ColorIndex = 20
End Sub
A1 und A2 werden hellblau eingefärbt, daher meine Vermutung: Ist für die Zielzelle bereits eine bedingte Formatierung eingestellt? Oder ist die Zelle Teil eines als Tabelle formatierten Zellbereichs?
Beide Sachen "überschreiben" jede Farbänderung.
Gruß
Timo
Anzeige
AW: Formatieren von Zellen per VBA
07.12.2010 11:36:29
Zellen
Also .. ich habe den Code von Matthias mal mit dem Debugger durchlaufen.
Alles wird sauber eingefärbt.
doch dann kommt man zur Zeile :
If x y Then Range(Cells(x, 11), Cells(x, 13)).AutoFill Destination:=Range(Cells(y, 11), _
Cells(x, 13))
und schon werden die vorher gelb eingefärbten Zellen wieder mit Weiss überschrieben
AW: Formatieren von Zellen per VBA
07.12.2010 12:55:43
Zellen
Hi Pascal,
Verlagere die .Autofill Zeile doch mal vordie For-Schleife!
GreetZ Renée
AW: Formatieren von Zellen per VBA
07.12.2010 13:49:25
Zellen
DANKE !!!!
(dass ich nicht selber draufgekommen bin :-(
Es klappt nun wunderbar ! :-)
Nun .... brauch ich noch die letzte Hilfe für mein Projekt.
Und zwar ....
Ab der Datenbank in welche ich hier ständig reingeschrieben habe und nun dank Euch einige Zellen farbig formatiere, erstelle ich auf einem anderen Tabellenblatt total
drei Pivot-Tables.
Der Quellbereich dieser drei Pivots bezieht sich immer auf die Anzahl Datensätze auf dem Tabellenblatt "Datenbank"
Wie könnte ich nun also per Knopfdruck für jede auf dem Tabellenblatt "Analyse" vorhandene Pivottable den Quellbereich jeweils um die total Anzahl Datensätze erweitern ?
Danke herzlich für Eure Tips !
Anzeige
Benutze das Tabellen-Feature von
07.12.2010 15:09:28
Renee
Excel 2007, Pascal
Menü - Einfügen - Tabelle
...dann kannst du den Pivotbereich auf diese Namen (Formeln - Namensmanager) beziehen.
GreetZ Renée
AW: Benutze das Tabellen-Feature von
07.12.2010 15:20:35
Pascal
? wie meinst Du das genau ?
also ... ich habe Office 2010
Wenn ich aufs Menü Einfügen gehe, so hab ich da PivotTable und Tabelle
... wie weiter ?
Bereich Markieren - Tabelle ! (owT)
07.12.2010 15:44:12
Renee

AW: Bereich Markieren - Tabelle ! (owT)
08.12.2010 14:17:24
Pascal
wie ich es auch immer anstelle ... ich schaffe es nicht :-(
oder .... weiss nicht genau was ich tun muss ....
D.h. auf dem Tabellenblatt "Analyse" hab ich ja schon lange drei Pivot-Tabellen.
diese basieren wie gesagt auf die Datensätze im Tabellenblatt "Datenbank"
Muss ich nun diese drei Pivot-Tabellen löschen und neuerstellen ?
oder kann ich die Pivot-Tabellen anpassen (diese entstanden noch, bevor ich mittels Makro Datensätze in die Datenbank schrieb)
Danke herzlich für die Hilfe !
Anzeige
Excel-Tabelle in einem Arbeitsblatt
09.12.2010 10:30:04
Renee
Die interne XL-Hilfe zu bemühen, hilft auch bei Excel gut manchmal, Pascal
F1 und im Suchbegriff Tabelle eingeben, dann Erstellen oder Löschen einer Excel-Tabelle in einem Arbeitsblatt
Versuche in einer neuen, leeren Arbeitsmappe nachzuvollziehen. Erstelle eine Pivot aufgrund der "Tabelle", füge neue Zeilen (Tab auf der letzten Zelle rechts unten) in die Tabelle, aktualisiere deine Pivottabelle (Rechtsklick - Aktualisieren).
Leider werden im Deutschen die Begriffe Tabelle und Tabelle/Datentabelle (engl. Table) vermischt. Das Englische ist hier spezifischer Arbeitsblatt=WorkSheet und Tabelle=Table.
GreetZ Renée
Anzeige

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige