Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
864to868
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
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Bedingte Rahmen-Formatierung mit VBA
01.05.2007 16:41:35
Lenhard
Moin Moin!!
Welchen VBA-Code muß ich in ein Worksheet setzen wenn ich folgendes möchte:
Es betrifft die Spalten B bis P ab der Zeile 10 bis "Ganz unten" (65536 ...meine ich)
Wenn vorne in der Zeile B eine Zahl größer oder gleich 1 ist, dann formatiere in der gleichen Zeile von B bis P folgende Rahmen...
With Selection.Borders(xlEdgeTop) 'die Linie oben
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
...und...
With Selection.Borders(xlInsideVertical) 'die Zwischenlinien
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Wichtig ist: An der Spalte B darf links und an der Spalte P darf rechts die Linie nicht erscheinen. So dass also nur Zwischenlinien da sind und die Linie oben.
Gruß aus dem hohen Norden
Lenhard

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Rahmen-Formatierung mit VBA
01.05.2007 18:59:00
Erich
Hallo Lenhard,
probier mal

Sub BedingteRahmen()
Columns("B:P").FormatConditions.Delete
Cells(10, 1).Select
With Range("B10:B65536").FormatConditions.Add(Type:=xlExpression, Formula1:="=$B10>=1")
With .Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
With Range("C10:P65536").FormatConditions.Add(Type:=xlExpression, Formula1:="=$B10>=1")
With .Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Bedingte Rahmen-Formatierung mit VBA
01.05.2007 20:03:00
Lenhard
Ja Hallo Erich!
Schön Dich hier wieder zu treffen!! ....ich glaube, Du weißt im Grunde um was es hier geht: Wenn mir meine TextBoxen und ComboBoxen aus meinem UserForm eine Zeile im Tabellenblatt gefüllt haben, dann sollte in dieser Zeile diese Rahmenformatierung starten.
Ich habe Deinen Vorschlag in das betreffende Tabellenblatt gesetzt, aber leider passiert nix. Auch habe ich ein "Privat Sub" daraus gemacht ...geht aber auch nicht.
Vielen Dank erst mal für Deine erneute Hilfe und magst noch mal schauen!
Gruß
Lenhard
PS ....bei dem "Probleme beim UserForm schließen" gibt es übrigens doch noch eine Kleinigkeit: Wie kann ich es realisieren, das die TextBoxKV automatisch nach Fehlermeldungen angesteuert wird und der Inhalt gleich zwecks Neueingabe blau unterlegt ist? ...das ist mir leider erst später aufgefallen. Sorry.

Anzeige
AW: Bedingte Rahmen-Formatierung mit VBA
01.05.2007 21:15:59
Lenhard
Nur zur Info: Die kleine Exkursion zum Thema "Probleme beim UserForm schließen" ist nun erledigt: Ich habe es alleine (!!) geschafft den Focus mit blauen unterlegen zwecks Sofort-Änderung zu realisieren.
...aber mit den automatischen Rahmen-Formatierungen komme ich noch nicht weiter...
Gruß
Lenhard

AW: Bedingte Rahmen-Formatierung mit VBA
01.05.2007 21:44:26
Erich
Hallo Lenhard,
für die bedingte Formatierung mit Rahmen brauchst du eigentlich kein Makro,
das könntest du einmalig per Hand einrichten.
Wenn später in Spalte B eine Zahl (größergleich 1) in Spalte B geschrieben wird
(per Hand oder durch Makro), zeigen sich die Rahmen.
Die Bedingung habe ich noch ein wenig ergänzt, damit keine Rahmen erscheinen,
wenn in Spalte B keine Zahl, sondern z. B. Text steht.
Wenn du in dieser Mappe in Spalte B eine Zahl löschst oder neu hinschreibst,
siehst du, dass mit den Rahmen etwas passiert:
https://www.herber.de/bbs/user/42174.xls
Mit ### NEU habe ich im UF-Code die beiden Zeilen gekennzeichnet,
mit denen beim Fehlerhinweis der Inhalt der TextBoxKV markiert wird.
Die Box braucht nach dem Fehlerhinweis nicht angesteuert zu werden - sie wird gar nicht verlassen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Bedingte Rahmen-Formatierung mit VBA
01.05.2007 22:45:00
Lenhard
Danke Erich!
Ich muss mich zunächst entschuldigen: Ich war ein wenig durcheinander und habe die falsche Zeilenzahl genannt, bei der die bedingte Rahmenformatierung beginnen soll. Nicht Zeile 10, sondern Zeile 6.
Ich habe mir daraufhin Dein Skript vorgenommen und einfach verändert, weil es nach meiner Logik dann klappen müsste:

Sub BedingteRahmen()
Columns("B:P").FormatConditions.Delete
Cells(6, 1).Select      '###MACHE ICH HIER DEN GEDANKENFEHLER?###
With Range("B6:B65536").FormatConditions.Add(Type:=xlExpression, _
Formula1:="=ISTZAHL($B6)*($B6>=1)")
With .Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
With Range("C6:P65536").FormatConditions.Add(Type:=xlExpression, _
Formula1:="=ISTZAHL($B6)*($B6>=1)")
With .Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
End Sub


Aber der Code arbeitet nicht ab Zeile 6, sondern nach wie vor ab Zeile 10 ...und sitze ich hier und reibe mir die Augen!!!
Excel geschlossen und neu gestartet, den Rechenr einmal neu gestartet ...aber es ändert sich nix?!?
Gruß
Lenhard

Anzeige
AW: Bedingte Rahmen-Formatierung mit VBA
02.05.2007 00:08:00
Erich
Hallo Lenhard,
der Code läuft so, wie du ihn gepostet hast, einwandfrei, die Rahmen kommen ab Zeile 6.
Welches Blatt ist aktiv, wenn du die Prozedur startest? Sie bearbeitet das gerade aktive Blatt.
Wie hast du die Prozedur gestartet? Mit Extras - Makro - Ausführen?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Bedingte Rahmen-Formatierung mit VBA
02.05.2007 01:41:12
Lenhard
Hallo Erich!
Also bei mir geht es erst ab der Zeile 10 los? ...und es ist definitiv das Arbeitsblatt "Röntgendokumentation" aktiv.
Wie ich es starte? ...ich will es eigentlich gar nicht starten. Es soll im Hintergrund auf das Arbeitsblatt "Röntgendokumentation wirken. Sobald in der Spalte B eine Zahl größer/gleich 1 steht, dann sollen die Rahmen da sein.
Also die TextBoxen und ComboBoxen aus meinem UserForm tragen mir die Daten ein und dann wird ja eine fortlaufende Nummerierung in der Spalte B erzeugt. Und das soll initial für die Rahmenerstellung sein.
Gruß
Lenhard

Anzeige
AW: Bedingte Rahmen-Formatierung mit VBA
02.05.2007 06:44:00
Lenhard
Ahhh Ja! ...ich verstehe Erich! Natürlich muss man das Makro erst einmal gestartet haben, dann wirkt es!
Also wenn man es nicht in Form einer "Automatik" im betreffenden Tabellenblatt hinterlegen kann, wie wäre es denn mit einer Auto-Open-Routine beim Öffnen der Datei. Das Tabellenblatt wird einmal angewählt und das Makro einmal ausgeführt. Wenn nicht irgend etwas anderes während des weiteren laufenden Betriebes das Makro aus dem Arbeitsspeicher schmeißt (...oder wo auch immer es sitzt!).
Gruß
Lenhard

AW: Bedingte Rahmen-Formatierung mit VBA
02.05.2007 07:25:38
Erich
Hi Lenhard,
ja, das Makro muss (genau) einmal laufen, um die bedingte Formatierung einzurichten,
wenn du das nicht einfach - ganz ohne Makro - per Hand machst.
Danach stehen die bedingten Formate in der Tabelle - und das Makro hat überhaupt nichts mehr zu tun,
du kannst es löschen, es muss nirgends mehr existieren. Eine "Automatik" wird gar nicht gebraucht.
Es ist genau so, wie wenn du (per Hand) einer Zelle rote Schriftfarbe verpasst - die Schrift bleibt rot,
ganz ohne Makro, auch, wenn sich der Zellwert ändert oder die Mappe geschlossen und wieder geöffnet wird.
Ein solches Formatierungsmakro wäre z. B. dann nützlich, wenn häufig Formatierungen in neuen Blättern
eingerichtet werden müssten. Das ist bei dir nicht so.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Bedingte Rahmen-Formatierung mit VBA
02.05.2007 12:24:20
Lenhard
Moin Erich!!
O.K.!! Nun ist alles klar!!
Ich werde sowieso noch eine Auto-Open-Routine für meine Datei einrichten. Damit lasse ich einmal das Makro im Tabellenblatt starten und dann haben wir's.
Davor gehts aber an weitere andere Rountinen, die noch in die Datei müssen. Wenn ich dabei selber nicht weiter komme, weis ich ja wo ich Hilfe finde: Herber's Forum!!
Vielen Dank nochmals, Erich!
Bis zum - hoffentlich - nächsten mal!!
Gruß aus dem hohen Norden!
Lenhard

AW: Bedingte Rahmen-Formatierung mit VBA
02.05.2007 13:01:00
Erich
Hi Lenhard,
da will ich mich doch nich einmal melden. Du schreibst:
"Ich werde sowieso noch eine Auto-Open-Routine für meine Datei einrichten.
Damit lasse ich einmal das Makro im Tabellenblatt starten"
Das ist völlig überflüssig, du brauchst das Makro überhaupt nicht mehr!
Abgesehen davon: Wenn es im Workbook_Open (Besser als AutoOpen) aufgerufen wird,
dann bei JEDEM Öffnen der Mappe. Wozu?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Bedingte Rahmen-Formatierung mit VBA
02.05.2007 18:18:12
Lenhard
Moin Erich!
Als ich meinen letzten Beitrag geschrieben hatte, hatte ich auch so ein merkwürdiges Gefühl. Und dann wurde es mir klar: Das Makro hat mir einfach die Handarbeit abgenommen über "Format" und "Bedingte Formatierung" zu gehen, um so in mühsamer Kleinarbeit alles einzeln einzurichten. Also: Ich brauche es nur einmal ausführen und das wars!
Die Kontrolle über "Format" und "Bedingte Formatierung" bestätigte das.
Dieses Makro werde ich mit Sicherheit nicht "wegschmeißen", da ich genau diese Einrichtung immer mal wieder gebrauche. Überhaupt ist es sehr schlau, so Makros für sich arbeiten zu lassen.
Nochmals: Vielen Dank!
Darf ich Dich an dieser Stelle bitten zu folgendem neuen Beitrag von mir zu gehen
https://www.herber.de/forum/messages/866796.html
...und mir da noch mal einen Tip zu geben. Danke! Aber bitte ohne eine "Gefangennahme"... ...nun in einer ComboBox wenn ich "Abbrechen" will! ;-) ...kleiner Scherz!!
Gruß
Lenhard
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige