Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Zelle Rahmen löschen dyn. Tab

VBA Zelle Rahmen löschen dyn. Tab
14.02.2023 17:50:06
GGG2019
Hallo,
ich möchte eine Tabelle formatieren. Hierzu habe ich ein Makro aufgezeichnet und anschließend mit einigen VBA-Strings erweitert. Nun fehlt noch ein entscheidendes Detail und ich komme nicht auf die Lösung:
Die Tabelle ist dynamisch in den Zeilen. Die Spalten sind fix, jedoch können die Spalten entweder Werte enthalten oder sie sind leer bzw. enthalten eine Null. Diese nicht relevanten Spalten werden ausgeblendet, so dass nur befüllte Spalten zu sehen sind. Die Tabelle enthält alle Rahmenlinien unterhalb der Überschrift in Zeile 9. Es sind immer zwei Spalten zusammengehörig ab Spalte F, z.B. F und G, H und I, J und K, usw. Über der Überschrift gibt es verbundene Zellen. Diese Zellen habe ich selbst mittels des Makros verbunden. Nun soll immer die mittlere Rahmenlinie zwischen den zusammengehörigen Spalten unterhalb der Überschrift gelöscht werden, also zwischen F und G, zwischen H und I etc. Wenn ich einfach die Spalten markiere und die Rahmenlinie lösche, wird immer gleich die Rahmenlinie der Nachbarspalte auch gelöscht. Ich denke, das hängt mit den verbudnden Zellen zusammen. Ich war davon ausgegegangen, wenn ich die Löschung des Rahmens oberhalb des Verbindes der Zellen im Makro schreibe, dass dann erst das eine und anschließend das andere ausgeführt wird, aber das klappt leider nicht.
Kann mir jemand helfen? Ich bin wirklich ein blutiger Anfänger, was VBA anbelangt. Eigentlich schustere ich mehr, als dass ich programmiere. ;-)
Die Beispieldatei anbei mit vorher-/nachher-Sheets.
https://www.herber.de/bbs/user/157830.xlsx
Wäre toll, wenn jemand eine Idee hat, die ich in mein Makro einbauen kann.
Vielen Dank vorab.
GGG2019
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zelle Rahmen löschen dyn. Tab
15.02.2023 06:43:01
GGG2019
Hallo,
das ist nur die Beispieldatei. Das Format dieser Datei unter vorher ist mit meinem Makro erstellt. Ich benötige nur den String, der mir die Rahmen löscht, den baue ich dann in mein Makro ein.
Wäre schön, wenn mir jemand helfen kann. Ich habe schon Stunden mit Versuchen und Internetrecherche verbracht. Danke vorab.
Anzeige
AW: VBA Zelle Rahmen löschen dyn. Tab
15.02.2023 08:19:10
GGG2019
Hier ist mein Makro. An zweiter Stelle oben steht mein letzter Versuch, diese Rahmen wie gewünscht zu löschen. Wobei der Versuch nur den Rahmen einer Spalte versuchsweise beinhaltet, den Rahmen zwischen Spalte L und M. Aber das funktioniert nicht, ich bin einfach ahnungslos in Sachen VBA. Das sieht man vermutlich auch an dem Rest des Makros. 😁 Ein Profi wird vermutlich die Hände über dem Kopf zusammenschlagen. 🤣 Wie auch immer, so weit funktioniert es. Wobei noch einige weitere Strings fehlen. Ich muss noch Formeln einbauen, die Rechnungen ausführen sollen. Aber das ist erst der nächste Schritt. Momentan geht es um die Rahmen, die weg müssen, damit die Tabelle übersichtlicher wird.
https://www.herber.de/bbs/user/157838.txt
Anzeige
AW: VBA Zelle Rahmen löschen dyn. Tab
15.02.2023 10:35:01
onur
Ich habe dir die Lösung gepostet- was willst du denn noch?
AW: VBA Zelle Rahmen löschen dyn. Tab
15.02.2023 11:46:38
GGG2019
Hallo und tausend Dank!!!!!!!!!!!!! Das funktioniert einwandfrei!
Sorry, ich hatte gar nicht gesehen, dass die Antwort schon angehängt war. 😊
Gerne !
15.02.2023 14:30:31
onur
Anzeige
AW: Gerne !
15.02.2023 14:40:01
onur
Modul1 kann weg - war nur zum Testen.
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Dynamische Tabellen in Excel: Rahmenlinien löschen mit VBA


Schritt-für-Schritt-Anleitung

Um die Rahmenlinien in einer dynamischen Tabelle mit VBA zu löschen, gehe folgendermaßen vor:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei)“ und wähle „Einfügen“ > „Modul“.
  3. Kopiere den folgenden Code in das Modul:

    Sub RahmenLinienLöschen()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets("DeinTabellenblatt") ' Ändere den Namen entsprechend
    
       Dim i As Integer
       For i = 6 To ws.Cells(9, ws.Columns.Count).End(xlToLeft).Column Step 2
           With ws.Range(ws.Cells(9, i), ws.Cells(ws.Rows.Count, i).End(xlUp))
               .Borders(xlEdgeRight).LineStyle = xlNone
           End With
       Next i
    End Sub
  4. Führe das Makro aus:

    • Kehre zu Excel zurück und drücke ALT + F8, wähle „RahmenLinienLöschen“ aus und klicke auf „Ausführen“.
  5. Überprüfe die Änderungen:

    • Die mittleren Rahmenlinien zwischen den zusammengehörigen Spalten sollten nun entfernt sein.

Häufige Fehler und Lösungen

  • Rahmen lässt sich nicht entfernen:

    • Überprüfe, ob die Zellen verbunden sind. Verbundene Zellen können die Löschung von Rahmenlinien behindern.
  • Makro funktioniert nicht:

    • Stelle sicher, dass das Blatt, das du bearbeitest, den richtigen Namen hat, und dass das Makro korrekt zugewiesen ist.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du die Rahmenlinien auch manuell entfernen:

  1. Markiere die Zellen:

    • Wähle die Zellen aus, deren Rahmenlinien du entfernen möchtest.
  2. Rahmen entfernen:

    • Gehe zu „Start“ > „Rahmen“ (das Symbol sieht aus wie ein Quadrat) und wähle „Keine Rahmen“.

Zusätzlich kannst du die Tastenkombination STRG + SHIFT + _ verwenden, um alle Rahmenlinien zu entfernen.


Praktische Beispiele

Ein praktisches Beispiel wäre eine Tabelle, die wöchentlich aktualisiert wird. Mit dem oben genannten VBA-Skript kannst du sicherstellen, dass die ungenutzten Rahmenlinien schnell entfernt werden, um die Übersichtlichkeit zu erhöhen.

Wenn du bedingte Formatierung verwendest, um leere Zellen zu färben, kannst du gleichzeitig die Rahmenlinien entfernen, um ein sauberes Layout zu gewährleisten.


Tipps für Profis

  • Verwende Variablen: Um deinen Code sauberer zu halten, kannst du Variablen für die Spalten und Zeilen definieren.
  • Fehlerbehandlung: Integriere eine Fehlerbehandlung in dein Makro, um es robuster zu gestalten.
  • Modularer Code: Teile deinen Code in mehrere Subroutinen auf, um die Lesbarkeit und Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich alle Rahmenlinien in einem Arbeitsblatt entfernen?
Du kannst das folgende Makro verwenden, um alle Rahmenlinien zu löschen:

Sub AlleRahmenLöschen()
    Cells.Borders.LineStyle = xlNone
End Sub

2. Was kann ich tun, wenn der Rahmen nicht entfernt wird?
Stelle sicher, dass keine Zellen verbunden sind und dass du die richtigen Zellen markierst, bevor du das Makro ausführst.

3. Wie kann ich einen bestimmten Rahmen (z.B. nur unten) entfernen?
Du kannst den spezifischen Rahmen mit dem folgenden Code entfernen:

With ws.Range("A1:A10")
    .Borders(xlEdgeBottom).LineStyle = xlNone
End With

Jetzt bist du bereit, mit VBA die Rahmenlinien in deinen Excel-Tabellen zu verwalten!

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