Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1376to1380
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
Inhaltsverzeichnis

VBA alle Zellen mit Inhalt als Tabelle formatieren

VBA alle Zellen mit Inhalt als Tabelle formatieren
25.08.2014 10:36:27
Sioo
Hallo, bastel gerade an nem Macro um einen Datenbereich als Tabelle zu formatieren. Die Daten kommen aus SAP und dort sind oft einige Zeilen, Spalten leer.
Sub A_SelectAllMakeTable()
Dim tbl As ListObject
Dim rng As Range
Set rng = Range(Range("A1"), Range("A1").SpecialCells(xlLastCell))
Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, rng, , xlYes)
tbl.TableStyle = "TableStyleMedium15"
End Sub
Wenn ich dies benutze, formatiert er den ganzen Bereich als Macro wo Daten auftauchen, aber inkl leere Spalten und Zeilen. Wie kann ich diese entfernen?
Vielen Dank im Voraus.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA alle Zellen mit Inhalt als Tabelle formatieren
25.08.2014 11:06:19
Rudi
Hallo,
Wie kann ich diese entfernen?
indem du sie einfach löschst.
Der Recorder ist dein Freund.
Aktionen aufzeichnen und anschließend den Code überarbeiten.
Gruß
Rudi

AW: VBA alle Zellen mit Inhalt als Tabelle formatieren
25.08.2014 11:20:50
Sioo
Hallo Rudi,
Mit dem Makro Rekorder ist die Lösung leider unzureichend, da er Select benutzt und spezielle Zeilen und Spalten markiert. Problem ist: Es sind immer unterschiedliche Spalten bzw Zeilen leer. Da bringt mir Select A7 beispielsweise nicht viel. Ich brauch ein Makro welches in einer Range diese Zeilen und Spalten löscht. Wenn ich google finde ich sowas für Zeilen:
Public Sub DeleteBlankRows()
Dim R As Long
Dim c As Range
Dim n As Long
Dim rng As Range
On Error GoTo skip
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
If Selection.Rows.Count > 1 Then
Set rng = Selection
Else
Set rng = ActiveSheet.UsedRange.Rows
End If
n = 0
For R = rng.Rows.Count To 1 Step -1
If Application.WorksheetFunction.CountA(rng.Rows(R).EntireRow) = 0 Then
rng.Rows(R).EntireRow.Delete
n = n + 1
End If
Next R
skip:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
first = Selection.Column
last = Selection.Columns(Selection.Columns.Count).Column
For I = last To first Step -1
If WorksheetFunction.CountBlank(ActiveSheet.Columns(I)) = 1048576 Then
Columns(I).Delete
End If
Next I
End Sub

Wie könnte ich da ggf Spalten einfügen. Viele grüße

Anzeige
AW: VBA alle Zellen mit Inhalt als Tabelle formatieren
25.08.2014 14:15:23
Adis
Hallo
ich liebe kleine Beispiel Dateien. Hier eine Excel7 Version, die aber nach wie vor laeuft.
Amüsant ist, das dieses Programm nicht normal ablaeuft, sondern -den Laufzeifehler- auswertet.
Sucht man mit SpecialCells nach xlContents.Count erfolgt die Fehlermeldung -keine Zellen vorhanden-
Ein Zeichen das die betreffende Zeile/ Spalte leer sein muss. Damit wird sie -rückwaerts- gelöscht.
Rückwerts löschen, weil sonst der Zeilenzaehler durch die gerade gelöschte Zeile durcheinander kommt.
Wenn das Makro gefaellt in die eigene Datei übernehmen. Würde mich freuen wenn es passt.
https://www.herber.de/bbs/user/92279.xls
Gruss Adis

Anzeige
AW: VBA alle Zellen mit Inhalt als Tabelle formatieren
25.08.2014 20:22:09
Sioo
Hallo Adis,
kann die Datei leider nicht benutzen. Weder auf der Arbeit noch zuhause funktioniert das Makro, da ich ein ActiveX Steuerelement benötige.

AW: VBA alle Zellen mit Inhalt als Tabelle formatieren
26.08.2014 21:26:41
Adis
Hallo
Hier der Programmm Code. Einfach in ein normales Modul kopieren und ausprobieren.
Am besten zuerst in einer eigenen kleinen Beispiel Datei oder einer Kopie der Original Datei.
Würde mich freuen wenn es klappt. (Meine Beispiel Datei war versehentlich falsch formatiert)
Die letzte Zeile und Spalte bitte manuell aendern. Zur Zeit 10.000 Zeilen, 100 Spalten
'Leere Zeilen und Spalten in Datenbanken -rückwaerts- löschen 25.5.2014
'ein -umgekehrtes Programm-, weils den Laufzeit Fehler auswertet!!
'Anfrage: Sioo Betreff: VBA alle Zellen mit Inhalt als Tabelle formatieren
Const LastRow = 10000 '65535 Zeilen
Const LastCol = 100 '256 Spalten
'Rückwaertschleife Programm mit SpecialCells(Contents)
'gelöscht wird in dem Fall über Fehler: -keine Zellen- mit Werten gefunden
Sub LeereZeilen_undSpalten_löschen()
'  Sheets("Tabelle1").Select
Application.ScreenUpdating = False
On Error GoTo ClrRow
'Rückwaertschleife SpecialCells(Contents)
For i = LastRow To 1 Step -1
Rows(i).Select    '** nur zum Test
wert = Rows(i).SpecialCells(xlContents).Count
Next i
On Error GoTo ClrCol
For i = LastCol To 1 Step -1
Columns(i).Select   '** nur zum Test
wert = Columns(i).SpecialCells(xlContents).Count
Next i
Exit Sub
'gelöscht wird bei Laufzeitfehler:  -keine Zellen gefunden-
ClrRow:  'kein Wert gefunden ; löschen
Rows(i).Delete Shift:=xlUp
Resume Next
ClrCol:  'kein Wert gefunden ; löschen
Columns(i).Delete Shift:=xlToLeft
Resume Next
End Sub
Gruss Adis
Anzeige

35 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige