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

Überflüssige Daten löschen

Überflüssige Daten löschen
19.11.2008 09:01:02
Jürgen
Hallo liebe Leser,
in meiner Arbeitsmappe habe ich eine Vielzahl von Webabfragen (QueryTables),
und zwar je eine pro Arbeitsblatt.
Um sie gelegentlich zu aktualisieren benutze ich folgendes Makro:

Public Sub DatenErneuern()
Dim WS As Worksheet, QT As QueryTable
Range("H2:I100").Value = Range("E2:F100").Value
For Each WS In ThisWorkbook.Worksheets
For Each QT In WS.QueryTables
QT.Refresh
Next QT
Next WS
Set WS = Nothing: Set QT = Nothing
End Sub


Da die Arbeitsblätter letztendlich mehr Informationen enthalten als ich benötige,
ich sie aber vor der Abfrage leider nicht einschränken kann,
möchte ich unmittelbar nach der Aktualisierung eines Blattes einiges löschen.
(zur Verringerung von Datenmüll)
Und zwar kann Spalte B,C,D...
sowie Zeile 101,102,103...entfallen.
Oder mit anderen Worten: Ich benötige jeweils nur A1:A100.
Vor dem Löschen sollten noch alle verbundenen Zellen getrennt werden,
damit es kein Kuddelmuddel gibt.
Ich würde mich sehr freuen,
wenn mir jemand dabei behilflich sein könnte,
diesen Wunsch in den o.g. Code einzubauen.
(Oder Alternativ-Lösung)
MFG
Jürgen

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Überflüssige Daten löschen
19.11.2008 10:15:00
Chris
Servus,
probier mal:

Public Sub DatenErneuern()
Dim WS As Worksheet, QT As QueryTable, rngBereich As Range
Range("H2:I100").Value = Range("E2:F100").Value
For Each WS In ThisWorkbook.Worksheets
For Each QT In WS.QueryTables
QT.Refresh
Next QT
Set rngBereich = Union(WS.Range("A101:A65536"), WS.Range("B1:IV65536"))
rngBereich.ClearContents
Next WS
Set WS = Nothing: Set QT = Nothing : Set rngBereich = Nothing
End Sub


ungetestet!
Gruß
Chris

AW: Überflüssige Daten löschen
19.11.2008 10:53:20
Jürgen
Hallo Chris,
danke für die schnelle Antwort.
Hat noch nicht ganz funktioniert.
Ich bekomme die Meldung:
Laufzeitfehler'1004'
Kann Teil einer verbundenen Zelle nicht ändern.
Wie ich schon vermutet habe.
Zitat aus meinem letzten Beitrag:

Vor dem Löschen sollten noch alle verbundenen Zellen getrennt werden,
damit es kein Kuddelmuddel gibt


Ein zweiter Punkt,den ich vergaß zu erwähnen,sorry:
In der Mappe befindet sich ein Tabellenblatt namens 'Auflistung'.
Das muß von der Löschaktion verschont bleiben.
(Darin sind meine Formeln und Bezüge auf alle anderen Blätter enthalten)
MFG
Jürgen

Anzeige
AW: Überflüssige Daten löschen
19.11.2008 11:04:00
Jürgen
So,nochmal ohne Leerzeilen :-)
Hallo Chris,
danke für die schnelle Antwort.
Hat noch nicht ganz funktioniert.
Ich bekomme die Meldung:
Laufzeitfehler'1004'
Kann Teil einer verbundenen Zelle nicht ändern.
Wie ich schon vermutet habe.
Zitat aus meinem letzten Beitrag:

Vor dem Löschen sollten noch alle verbundenen Zellen getrennt werden,
damit es kein Kuddelmuddel gibt


Ein zweiter Punkt,den ich vergaß zu erwähnen,sorry:
In der Mappe befindet sich ein Tabellenblatt namens 'Auflistung'.
Das muß von der Löschaktion verschont bleiben.
(Darin sind meine Formeln und Bezüge auf alle anderen Blätter enthalten)
MFG
Jürgen

Anzeige
AW: Überflüssige Daten löschen
19.11.2008 11:37:00
Chris
Servus Jürgen,
dann probier mal:

Public Sub DatenErneuern()
Dim WS As Worksheet, QT As QueryTable, rngBereich As Range
Range("H2:I100").Value = Range("E2:F100").Value
For Each WS In ThisWorkbook.Worksheets
For Each QT In WS.QueryTables
QT.Refresh
Next QT
If WS.Name  "Auflistung" then
Ws.Cells.MergeCells = False
Set rngBereich = Union(WS.Range("A101:A65536"), WS.Range("B1:IV65536"))
rngBereich.ClearContents
End if
Next WS
Set WS = Nothing: Set QT = Nothing : Set rngBereich = Nothing
End Sub


Gruß
Chris

AW: Überflüssige Daten löschen
19.11.2008 12:07:00
Jürgen
Hallo Chris,
wir nähern uns den Ziel mit großen Schritten.
Aber leider stimmt die Bearbeitungsreihenfolge noch nicht.
Es wird erst nach dem Löschen aktualisiert.
MFG
Jürgen
Anzeige
AW: versteh ich nicht!
19.11.2008 12:27:00
Chris
Servus Jürgen,
die Querytable-Aktualisierung findet ja nun eigentlich vor dem Löschvorgang statt. Daher kann ich das nicht nachvollziehen, hast du mal eine Beispieldatei?
Evtl hilft das:

Public Sub DatenErneuern()
Dim WS As Worksheet, QT As QueryTable, rngBereich As Range
Range("H2:I100").Value = Range("E2:F100").Value
For Each WS In ThisWorkbook.Worksheets
For Each QT In WS.QueryTables
QT.Refresh
Next QT
Next WS
For Each WS In ThisWorkbook.Worksheets
If WS.Name  "Auflistung" then
Ws.Cells.MergeCells = False
Set rngBereich = Union(WS.Range("A101:A65536"), WS.Range("B1:IV65536"))
rngBereich.ClearContents
End if
Next WS
Set WS = Nothing: Set QT = Nothing : Set rngBereich = Nothing
End Sub


Gruß
Chris

Anzeige
AW: versteh ich nicht!
19.11.2008 13:10:20
Jürgen
Hallo Chris,
auch mit Deiner neuen Variante wird erst zum Schluß aktualisiert.
Ich habe hier mal eine Beispieldatei hochgeladen.
Weiß nicht ob es hilft.
https://www.herber.de/bbs/user/56939.xls
MFG
Jürgen
AW: Hilft nicht!
19.11.2008 13:16:03
Chris
Servus Jürgen,
nö hilft nicht, wo holst du denn deine Daten her, da sind ja keine QTs drin.
Gruß
Chris
AW: vielleicht hilft das!
19.11.2008 13:22:00
Chris
Servus,

Public Sub DatenErneuern()
Dim WS As Worksheet, QT As QueryTable, rngBereich As Range
Range("H2:I100").Value = Range("E2:F100").Value
For Each WS In ThisWorkbook.Worksheets
For Each QT In WS.QueryTables
QT.Refresh
Next QT
Next WS
Set WS = Nothing: Set QT = Nothing
End Sub


und:
Sub löschen()
Dim WS As Worksheet, rngBereich as Range
For Each WS In ThisWorkbook.Worksheets
If WS.Name "Auflistung" then
Ws.Cells.MergeCells = False
Set rngBereich = Union(WS.Range("A101:A65536"), WS.Range("B1:IV65536"))
rngBereich.ClearContents
End if
Next WS
End if
Set rngBereich = Nothing
End Sub


Also erst aktualisieren, das scheint ja wohl zu gehen und nach der Aktualisierung dann löschen.
gruß
Chris

Anzeige
AW: vielleicht hilft das!
19.11.2008 13:39:45
Jürgen
Hallo Chris,
beide Codes in ein Modul?
MFG
Jürgen
AW: ja ! owT.
19.11.2008 13:43:00
Chris
.
AW: vielleicht hilft das!
19.11.2008 13:55:00
Jürgen
Hallo Chris,
also wenn ich es richtig verstanden habe sind es jetzt 2 Makros,
die unabhängig voneinander laufen sollen.
Erst Aktualisieren,dann 2. Makro starten und löschen.
So hab ichs gerade gemacht,und bekomme "Fehler beim kompilieren"
"End If ohne If-Block"
MFG
Jürgen
AW: vielleicht hilft das!
19.11.2008 14:02:49
Jürgen
Hallo Chris,
hab end if gelöscht.
Jetzt klappts!!!
Vielen herzlichen Dank für Deine Hilfe.
MFG Jürgen
AW: Hilft nicht!
19.11.2008 13:32:28
Jürgen
Hallo Chris,
die .iqy-Dateien stehen bei mir im Ordner Abfragen im Programmordner von Microsoft Office.
(bestückt mit je einer Web-Adresse)
Und in den Tabellenblättern T1-T3 stehen ja nur die "Verweise" auf sie.
Oder verstehe ich Deine frage jetzt falsch?
Mfg
Jürgen
Anzeige

301 Forumthreads zu ähnlichen Themen


Hallo Hans,
wenn ich die URLs richtig interpretiere, haben wir im Forum soeben die Zahl von 1 Million Beiträgen überschritten.
Herzlichen Glückwunsch zu dem Erfolg Deines "Babys"!
Gruß
Martin

Hallo Leute,
heute habe ich wieder mal ein einfaches Problem für Euch, an dem ich aber nicht weiter kommen:
Ich möchte die Arbeitsblätter in meiner Arbeitsmappe zählen. Das ist ja kein Problem (ThisWorkbook.sheets.count).
wenn das makro mehr als ein Arbeitsblatt zählt (also das Erge...

Hallo zusammen!
Ich habe da als blutiger Anfänger in VBA zwei Fragen:
1.) Wie kann ich in meiner Tabelle in jeder zweiten Spalte 4 leere Spalten einfügen lassen?
2.) Dann möchte ich unter den Inhalt der ersten fünf Spalten (A-E) den Inhalt der zweiten 5 Spalten (F-J) usw. In der grö...

Guten Morgen!
Ich hätte folgendes Problem: Ich erhalte automatisiert Exceltabellen, bei denen nicht alle Zellen einer Zeile gefüllt werden, wenn dort der Inhalt einer darüberliegenden Zeile stehen sollte. Zur Weiterverarbeitung muss ich aber diese Zellen mit den dazugehörigen Werten füllen....

Hallo,
google spuckt Zu "Excel" und "Häufigkeitslücken" lediglich 3 Treffer aus, die nicht gerade brauchbar für meine Aufgabe sind.
Ich muss für 3 Variablen eine Typisierung mit einer Häufigkeitslücke durchführen.
Hiermit bin ich fast gänzlich überfragt. Mit Quantilen hatte ich das...

Hallo zusammen,
ich habe eine lange Liste, in der in einer Spalte Daten stehen, wo ab und zu vorangehende Nullen nötig sind (mal eine - mal 2...etc.) - und manchmal auch keine.
Wie kann ich diese Zellen formatieren, das die vorangehenden "Nullen" nicht automatisch weggelassen werden?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige