Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Automatische Rahmen um ausgefüllte Zellen

Forumthread: Automatische Rahmen um ausgefüllte Zellen

Automatische Rahmen um ausgefüllte Zellen
06.06.2016 15:57:29
Patrick

Hallo,
da hier ja sehr gut weitergeholfen wird, habe ich eine weitere Frage.
ich habe bereits gegoogelt, aber irgendwie gebe ich den Code falsch ein.
Ich möchte, dass auf einem Tabellenblatt um jede ausgefüllte Zelle automatisch Rahmen gesetzt werden, mittlerer Stärke. Zwar gibt es eine Möglichkeit mit bedingter Formatierung, aber hier hatte ich nur schmale Rahmen zur Auswahl. Außerdem wurden bei Formatübertragung manche Rahmen dick, andere wieder dünn ausgegeben.
VBA scheint ja insgesamt gut zu funktionieren.
Falls möglich, wäre es klasse, wenn noch alles zentriert wird (horizontal und vertikal), mit Schriftart Arial pt 12.
Lässt sich so etwas realisieren?
Vielen Dank.

Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Makrorekorder
06.06.2016 17:22:02
RPP63
Hallo!
Du könntest natürlich den Makrorekorder anwerfen.
Der liefert Dir aber eine unfassbar lange Tapete.
Sub RPP()
With Tabelle2.UsedRange.SpecialCells(xlCellTypeConstants)
.Borders.Weight = xlMedium
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Font
.Name = "Arial"
.Size = 12
End With
End With
End Sub

ist kürzer … ;-)
Gruß Ralf

Anzeige
AW: Makrorekorder
06.06.2016 21:53:07
Patrick
Ok, danke. Ich weiß nur nicht, wo ich das eingeben muss.
Also bei mir handelt es sich um Tabelle 3, also habe ich das so eingefügt:
Sub RPP()
With Tabelle3.UsedRange.SpecialCells(xlCellTypeConstants)
.Borders.Weight = xlMedium
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Font
.Name = "Arial"
.Size = 12
End With
End With
End Sub Nur kommt das jetzt in "DieseArbeitsmappe" oder Tabelle3...
Habe es in beiden eingefügt, aber verstehe noch nicht, wie das läuft. Unter "DieseArbeitsmappe" habe ich schon erfolgreich folgende eingefügt, damit Berechnungen erst duch Drücken von F9 ablaufen:
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
End Sub
Kommt das neue nun dazwischen? Habe es nicht hinbekommen. Ich hätte auch gerne so etwas wie ein "Pop Up", welches darauf hinweist, dass vor Beenden der Datei noch F9 gedrückt werden soll. Oh man, ich machs mir wohl zu kompliziert, aber eine Abfrage sollte sein, da auch andere mit der Tabelle arbeiten sollen und sie selbsterklärend sein soll...

Anzeige
AW: Makrorekorder
07.06.2016 09:01:49
Werner
Hallo Patrick,
normal mische ich mich ja nicht ein, wenn jemand schon bei der Problemlösung dabei ist, Aber da sich Ralf derzeit nicht meldet.
Es stellt sich die Frage, wie kommen die Werte ins Tabellenblatt?
1. händische Eingabe
2. durch Formeln berechnet
Gruß Werner

AW: Makrorekorder
07.06.2016 15:53:13
Patrick
Hi,
die Eingaben erfolgt überwiegend händisch. Teilweise werden texte auch aus dem ERP-System kopiert und in die Zelle eingefügt. Mir geht es überwiegend darum, dass man sich Zeit sparen kann und darum, dass optisch alles gut aussieht.
Es soll außerdem sichergestellt werden, dass spätestens beim Beenden der Datei, noch eine abschließende Berechnung durchgeführt wird, und diese dann erst abgespeichert wird. Sind eigentlich zwei Themen und weiß nicht, ob so etwas überhaupt möglich ist,

Anzeige
AW: Makrorekorder
07.06.2016 20:39:48
Werner
Hallo Patrick,
für die Formatierung der Zellen:
Rechtsklick auf Reiter von Tabellenblatt 2 - Code anzeigen - Code rechts ins Code-Fenster kopieren
Private Sub Worksheet_Change(ByVal Target As Range)
With Tabelle2.UsedRange.SpecialCells(xlCellTypeConstants)
.Borders.Weight = xlMedium
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Font
.Name = "Arial"
.Size = 12
End With
End With
End Sub
Und für dein zweites Problem sollte es doch reichen, wenn du vor dem Schließen der Datei die Automatische Berechnung wieder einschaltest. Beim nächsten Start der Datei wird sie ja wieder abgeschaltet.
Code in diese Arbeitsmappe:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Calculation = xlCalculationAutomatic
End Sub
Gruß Werner

Anzeige
AW: Makrorekorder
08.06.2016 16:26:38
Patrick
Hi Werner,
ich bin sehr dankbar für die Hilfe. Ich muss später noch eine weitere Frage stellen, weiß noch nicht, wie ich das formulieren soll.
Aus irgendwelchen Gründen funktioniert der erste Code für die Formatierung nicht, wenn ich ihn ins Code-Fenster des entsprechenden Tabellenblatts kopiere. Es passiert einfach nichts, irgendwas mache ich falsch...

Anzeige
AW: Makrorekorder
08.06.2016 16:36:38
Werner
Hallo Patrick,
stellt sich die Frage ins Codefenster welchen Tabellenblattes kopierst du den Code?
Kopierst du ihn z.B. ins Blatt 3 dann muss die Codezeile
With Tabelle2.UsedRange.SpecialCells(xlCellTypeConstants)
an das entsprechende Blatt angepasst werden.
Ansonsten Beispieldatei (in der es nicht funktioniert) hochladen.
Gruß Werner

Anzeige
AW: Makrorekorder
08.06.2016 16:36:43
Patrick
Hi Werner,
ok, habe den Fehler gefunden. Allerdings funktioniert es nur dann, wenn man vorher den Blattschutz aufhebt, ansonsten kommt eine Fehlermeldung. Der Blattschutz schützt die Formeln vor versehentlichen Löschungen. Gibt es da eine Möglichkeit?
Vielen lieben Dank nochmal.

AW: Makrorekorder
08.06.2016 16:43:14
Werner
Hallo Patrick,
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Tabelle2").Unprotect Password:="DeinPasswort"
With Tabelle2.UsedRange.SpecialCells(xlCellTypeConstants)
.Borders.Weight = xlMedium
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Font
.Name = "Arial"
.Size = 12
End With
End With
Sheets("Tabelle2").Protect Password:="DeinPasswort"
End Sub
Gruß Werner

Anzeige
AW: Makrorekorder
08.06.2016 22:16:37
Patrick
Hi Werner,
ich würde gerne die Tabelle hochladen, dazu muss ich aber viele Inhalte ändern. Das dauert etwas.
Wenn ich oben genannten Code in Tabelle3 ändere und dort einfüge, öffnet sich der Debugger und hinterlegt folgende Zeile gelb:
Sheets("Tabelle3").Unprotect Password:="MeinPasswort"
Außerdem werden die bereits automatisch ausgefüllten Zellen nicht mit formatiert, obwohl ich den gleichen an Tabelle3 angepassten Code, wie von Dir in einer anderen Antwort erklärt, noch in "DieseArbeitsmappe" unter der Calculate-Formel eingebunden habe.

Anzeige
AW: Makrorekorder
08.06.2016 23:03:25
Werner
Hallo Patrick,
hast du auch den Blattschutz für Tabellenblatt 3 gesetzt und das Passwort richtig vergeben? Wenn nicht dann versucht der Code das Blatt zu entschützen mit einem Passwort welches nicht vergeben ist.
Bezüglich des Problems beim Calculate-, hast du mal die Berechnung angestossen? Du schaltest ja beim Start der Datei auf manuelle Berechnung.
Ansonsten für mich ohne Datei schwierig.
Gruß Werner

Anzeige
AW: Makrorekorder
09.06.2016 16:16:57
Patrick
Hallo Werner,
anbei die Datei. Ich habe jetzt mal alles mit Fehler drin gelassen.
Später muss ich noch weitere Lösungen finden. Aber erst einmal Schritt für Schritt..
Das Passwort ist "PW", habe es nun eingegeben, damit ich es ausprobieren kann.
ich danke Dir sehr, ist eine wirklich schwierige Aufgabe, die mir gestellt wurde...
LG, Patrick.
https://www.herber.de/bbs/user/106119.xlsm

Anzeige
AW: Makrorekorder
09.06.2016 18:05:23
Werner
Hallo Patrick,
Ich bin übers Wochenende nicht im Lande, komme also frühestens am Montag dazu. Sollte der Beitrag schon ins Archiv gewandert sein dann eröffne ich einen neuen und schreibe dich im Betreff an. Schau einfach mal rein.
Ich stell mal noch auf offen, vielleicht hat ja übers Wochenende jemand Zeit und Muse.
Gruß Werner

Anzeige
AW: Makrorekorder
09.06.2016 21:05:56
Patrick
Alles klar, ich finde es überhaupt super, dass einem hier so toll geholfen wird. Ich kann ja schon vieles, aber sowas ist Neuland für mich.

AW: Makrorekorder
08.06.2016 16:40:30
Patrick
PS: Es gibt auch Spalten, die automatisch gefüllt werden, dort funktioniert es ebenfalls nicht, ist das zu realisieren, dass dort ebenfalls das Format angewendet wird? Wäre in diesem Fall aber nicht ganz so tragisch....
Danke.

Anzeige
AW: Makrorekorder
08.06.2016 16:49:09
Werner
Hallo Patrick,
dann den Code zusätzlich noch (natürlich ohne die erste und ohne die letzte Codezeile) ins Worksheet Calculate- Ereignis Kopieren.
Gruß Werner

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Automatische Rahmen um ausgefüllte Zellen in Excel


Schritt-für-Schritt-Anleitung

Um einen Rahmen um Zellen automatisch zu setzen, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie du dies umsetzen kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du im Menü auf Einfügen > Modul klickst.

  3. Kopiere den folgenden Code in das Modul:

    Private Sub Worksheet_Change(ByVal Target As Range)
       ' Zellen umrahmen
       With Target.SpecialCells(xlCellTypeConstants)
           .Borders.Weight = xlMedium
           .HorizontalAlignment = xlCenter
           .VerticalAlignment = xlCenter
           With .Font
               .Name = "Arial"
               .Size = 12
           End With
       End With
    End Sub
  4. Schließe den VBA-Editor und speichere die Datei als Makro-aktivierte Arbeitsmappe (*.xlsm).

  5. Ab sofort wird jeder ausgefüllte Bereich im Arbeitsblatt mit einem blauen Rahmen umgeben, wenn du Werte eingibst.


Häufige Fehler und Lösungen

  • Fehler: „Typenübereinstimmung“ oder „Objekt erforderlich“.

    • Lösung: Stelle sicher, dass du den Code im richtigen Tabellenblatt eingefügt hast. Der Name Target muss korrekt referenziert werden.
  • Fehler: Der Rahmen wird nicht angezeigt.

    • Lösung: Überprüfe, ob der Blattschutz aktiviert ist und hebe ihn gegebenenfalls auf, bevor du die Formatierung anwendest.

Alternative Methoden

Eine andere Möglichkeit, um Excel Rahmenlinien automatisch zu setzen, ist die Verwendung der bedingten Formatierung:

  1. Markiere die Zellen, die du formatieren möchtest.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“ und gib eine Formel ein, die die Bedingung für das Füllen der Zellen definiert.
  4. Klicke auf „Formatieren“ und wähle die Rahmenoptionen aus.

Praktische Beispiele

Hier ist ein Beispiel für das Setzen eines VBA-Rahmens um Zellen:

Wenn du den Code anpassen möchtest, um einen spezifischen Bereich zu formatieren, ändere die Zeile:

With Tabelle2.UsedRange.SpecialCells(xlCellTypeConstants)

zu:

With Range("A1:C10").SpecialCells(xlCellTypeConstants)

Das wird dafür sorgen, dass nur die Zellen im Bereich A1 bis C10 formatiert werden.


Tipps für Profis

  • Verwende Excel VBA, um wiederholte Aufgaben zu automatisieren und Zeit zu sparen.
  • Experimentiere mit verschiedenen Rahmenarten und -farben, um die Lesbarkeit deiner Daten zu verbessern.
  • Denke daran, den Blattschutz vor der Anwendung von Rahmen zu deaktivieren, um Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Code für mehrere Tabellenblätter verwenden? Du kannst den Code in jedes Tabellenblatt kopieren und anpassen, indem du den Namen des entsprechenden Blattes änderst.

2. Funktioniert das auch in Excel Online? Leider unterstützt Excel Online keine VBA-Makros. Du musst die Desktop-Version von Excel verwenden, um diese Funktionen zu nutzen.

3. Kann ich die Rahmenfarbe ändern? Ja, du kannst die Rahmenfarbe in dem VBA-Code anpassen, indem du die Color-Eigenschaft verwendest, z.B. .Borders.Color = RGB(0, 0, 255) für einen blauen Rahmen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige