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
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' **********************************************************************
' 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
Ö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.
Drücke ALT
+ F11
: Dies öffnet den VBA-Editor.
Füge ein neues Modul hinzu:
Einfügen
und wähle Modul
.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
Schließe den VBA-Editor: Drücke ALT
+ Q
, um den Editor zu schließen.
Führe das Makro aus: Gehe zurück zu Excel und drücke ALT
+ F8
, wähle rahmen
aus und klicke auf Ausführen
.
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.
Bedingte Formatierung:
Start
> Bedingte Formatierung
> Neue Regel
.Formel zur Ermittlung der zu formatierenden Zellen verwenden
und gebe die Formel =ISTLEER(A1)=FALSE
ein.Manuelles Einfügen von Rahmenlinien:
Start
> Rahmen
und wähle die gewünschten Rahmenlinien aus.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:
Tabelle1
ein und übertrage diese in Tabelle2
. Führe dann das Makro aus, um die gefüllten Zellen zu formatieren.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.
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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen