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

Forumthread: nur gefüllte Zellen mit Rahmlinien

nur gefüllte Zellen mit Rahmlinien
04.09.2017 18:22:54
Gerhard
Hallo zusammen,
Bitte um VBA Hilfe
Wie kann man in einem anderen Tabellenblatt zum Beispiel aus Tabelle 1 in der Tabelle 2 nur die gefüllten
Zellen alle mit Rahmenlinien versehen?
Vielen Dank für Eure Hilfe
Gruß Gerhard
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: nur gefüllte Zellen mit Rahmlinien
04.09.2017 18:45:42
Hajo_Zi
Hallo Gerhard,
was hat Tabelle 1 mi Tabelle2 zu tun. Benutze bedingte Formatierung.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Anzeige
AW: nur gefüllte Zellen mit Rahmlinien
04.09.2017 18:58:10
Gerhard
kennt niemand eine VBA Lösung?
Gruß Gerhard
AW: nur gefüllte Zellen mit Rahmlinien
04.09.2017 20:00:38
Werner
Hallo Gerhard,
Code in ein allgemeines Modul:
Public Sub rahmen()
With Worksheets("Tabelle2").UsedRange.SpecialCells(2, 23)
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End With
End Sub
Gruß Werner
Anzeige
AW: nur gefüllte Zellen mit Rahmlinien
04.09.2017 20:15:15
Sepp
Hallo Gerhard,
wie werden die Zellen gefüllt? Per Formel oder von Hand?
Willst du wirklich alle Zellen mit Rahmen versehen, also auch eventuell vorhandene Beschriftungen/Überschriften, oder nur in einem bestimmten Bereich?
Wann oder warum sollen die Rahmen aktualisiert werden?
Gruß Sepp

Anzeige
AW: nur gefüllte Zellen mit Rahmlinien
04.09.2017 21:13:47
Gerhard
Hallo Sepp
Es sollen alle gefüllten Zellen gefüllt werden idealerweiser automatisch nach Übertrag eines neuen Datensatzes von Tabelle 1 in Tabelle 2
Gruß Gerhard
AW: nur gefüllte Zellen mit Rahmlinien
04.09.2017 21:15:29
Sepp
Hallo Gerhard,
und verrätst du auch, wie der Datensatz in Tabelle2 übertragen wird?
Wie sieht so ein Datensatz aus? Beispiel!
Gruß Sepp

Anzeige
AW: nur gefüllte Zellen mit Rahmlinien
04.09.2017 22:00:47
Gerhard
Hallo Sepp
anbei abgespeckte Beispieldatei
Mit Doppelklick aus Tabelle 1 wird markierter Datensatz (im Original sind das Messdaten) in die Tabelle 2 übernommen!
Die übertragende Datensätze können unterschiedliche Längen haben sowie auch Lücken (Zellen ohne Inhalt) aufweisen.
Nach einem Datensatzübertrag sollten nur die gefüllten Zellen mit einem Rahmen versehen werden!
Vielen Dank
Gruß Gerhard
https://www.herber.de/bbs/user/115981.xlsm
Anzeige
AW: nur gefüllte Zellen mit Rahmlinien
04.09.2017 22:18:27
Sepp
Hallo Gerhard,
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lngRow As Long, objRange As Object
If WorksheetFunction.CountA(Rows(Target.Row)) = 0 Then
  Exit Sub
Else
  Cancel = True
End If
With Worksheets("Tabelle2")
  If IsEmpty(.Range("A1")) Then
    lngRow = 1
  Else
    lngRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
  End If
  .Rows(lngRow).Value = Target.EntireRow.Value
  Set objRange = .Rows(lngRow).SpecialCells(xlCellTypeConstants)
  If Not objRange Is Nothing Then
    With objRange
      .Borders(xlEdgeLeft).LineStyle = xlContinuous
      .Borders(xlEdgeTop).LineStyle = xlContinuous
      .Borders(xlEdgeBottom).LineStyle = xlContinuous
      .Borders(xlEdgeRight).LineStyle = xlContinuous
      .Borders(xlInsideVertical).LineStyle = xlContinuous
      .Borders(xlInsideHorizontal).LineStyle = xlContinuous
    End With
  End If
End With

Set objRange = Nothing
End Sub

Gruß Sepp

Anzeige
AW: nur gefüllte Zellen mit Rahmlinien
04.09.2017 22:28:20
Gerhard
Hallo Sepp
Vielen Dank für deine schnelle Hilfe!
Makro funktioniert super...
Gruß Gerhard
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Nur gefüllte Zellen mit Rahmenlinien in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei: Stelle sicher, dass du die Datei geöffnet hast, in der du die gefüllten Zellen mit Rahmenlinien versehen möchtest.

  2. Drücke ALT + F11: Dies öffnet den VBA-Editor.

  3. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  4. Füge den VBA-Code ein: Kopiere den folgenden Code in das Modul:

    Public Sub rahmen()
       With Worksheets("Tabelle2").UsedRange.SpecialCells(xlCellTypeConstants)
           With .Borders(xlEdgeLeft)
               .LineStyle = xlContinuous
               .ColorIndex = xlAutomatic
               .Weight = xlThin
           End With
           With .Borders(xlEdgeTop)
               .LineStyle = xlContinuous
               .ColorIndex = xlAutomatic
               .Weight = xlThin
           End With
           With .Borders(xlEdgeBottom)
               .LineStyle = xlContinuous
               .ColorIndex = xlAutomatic
               .Weight = xlThin
           End With
           With .Borders(xlEdgeRight)
               .LineStyle = xlContinuous
               .ColorIndex = xlAutomatic
               .Weight = xlThin
           End With
           With .Borders(xlInsideVertical)
               .LineStyle = xlContinuous
               .ColorIndex = 0
               .Weight = xlThin
           End With
       End With
    End Sub
  5. Schließe den VBA-Editor: Drücke ALT + Q, um den Editor zu schließen.

  6. Führe das Makro aus: Gehe zurück zu Excel und drücke ALT + F8, wähle rahmen aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Kein Objekt gefunden": Stelle sicher, dass in "Tabelle2" gefüllte Zellen vorhanden sind. Wenn keine gefüllten Zellen existieren, gibt es nichts zu formatieren.

  • Fehler: "Kompatibilitätsprobleme": Achte darauf, dass du eine unterstützte Excel-Version verwendest. VBA funktioniert am besten in Excel 2010 oder höher.


Alternative Methoden

  1. Bedingte Formatierung:

    • Markiere den Bereich, in dem du die Rahmenlinien hinzufügen möchtest.
    • Gehe zu Start > Bedingte Formatierung > Neue Regel.
    • Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden und gebe die Formel =ISTLEER(A1)=FALSE ein.
    • Setze die Formatierung, um die Rahmenlinien zu definieren.
  2. Manuelles Einfügen von Rahmenlinien:

    • Markiere die Zellen, die du formatieren möchtest.
    • Gehe zu Start > Rahmen und wähle die gewünschten Rahmenlinien aus.

Praktische Beispiele

  • Wenn du Daten aus Tabelle1 in Tabelle2 überträgst, kannst du das oben genannte Makro verwenden, um sicherzustellen, dass nur die gefüllten Zellen mit Rahmenlinien versehen werden.

  • Beispiel für die Verwendung des Makros:

    • Füge einige Testdaten in Tabelle1 ein und übertrage diese in Tabelle2. Führe dann das Makro aus, um die gefüllten Zellen zu formatieren.

Tipps für Profis

  • Makros anpassen: Du kannst den VBA-Code anpassen, um die Rahmenlinien dünner zu machen oder verschiedene Farben für die Rahmenlinien zu verwenden. Ändere einfach die .Weight oder .ColorIndex Eigenschaften.

  • Automatisierung: Überlege, das Makro automatisch auszuführen, wenn neue Daten in Tabelle2 eingefügt werden, indem du das Makro in das Worksheet_Change-Ereignis einfügst.


FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Zellen in Excel mit Rahmenlinien versehen?
Du kannst den VBA-Code anpassen, um nur einen bestimmten Zellbereich auszuwählen, anstatt das gesamte UsedRange zu verwenden.

2. Funktioniert das auch in älteren Excel-Versionen?
Das VBA-Skript sollte auch in Excel 2010 und höheren Versionen funktionieren. In älteren Versionen könnte es zu Komplikationen kommen.

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