Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
444to448
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
444to448
444to448
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Löschen von #Bezug!-Zeilen

Löschen von #Bezug!-Zeilen
25.06.2004 17:33:11
#Bezug!-Zeilen
Hallo,
ich bitte um Unterstützung bei folgendem Problem:
Ich möchte mittels VBA in einer Exceldatei, die aus mehreren Blättern besteht, alle ZEILEN, aller BLÄTTER löschen, in denen in irgend einer Zelle, (oder mehreren Zellen) ein #Bezug! steht.
Wie ist soetwas möglich?
Ich bedanke mich schon jetzt für die freundliche Mithilfe.
Mit freundlichem Gruß
Newton-Pluto
Ps.: das habe ich gefunden, duchsucht aber nicht alle Blätter und funktioniert auch sonst nicht so richtig (evtl. ist 2. Zeile nicht OK?)

Sub BezugsfehlerEntfernen()
Range("A1").Select
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If InStr(ActiveCell.Formula, "REF") > 0 Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Next i
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Löschen von #Bezug!-Zeilen
25.06.2004 18:01:46
#Bezug!-Zeilen
Hallo Newton? (hier sind realnames üblich!)
Dieser Code löscht alle Zeilen in denen Fehlermeldungen vorkommen.

Sub Loeschen_Fehlerwerte()
Dim wks As Worksheet
For Each wks In Worksheets
wks.Cells.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete
Next
End Sub

Gruß Sepp
Ergänzung...
Ulf
Option Explicit

Sub Loeschen_Fehlerwerte()
Dim wks As Worksheet
For Each wks In Worksheets
On Error Resume Next
wks.Cells.SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete
Next
End Sub

Gibt einen Fehler, wenn ein Blatt keine Fehlerwerte enthält.
Ulf
Anzeige
Stimmt! hab ich übersehen. o.T
25.06.2004 19:01:24
Josef
Gruß Sepp
Mit meiner Musterdatei funktioniert das Leider noc
25.06.2004 19:17:25
Hermann
Hallo Josef,
Hallo Sepp
vielen Dank für Eure spontane Antwort. Ich habe allerdings noch keinen Erfolg damit.
ich habe ne Datei beigelegt. Mit dieser funktioniert das Makro leider nicht.
Könnte es an vertikal verbundenen Zellen liegen? von den Zeilen jedoch nur eine ein #Bezug hat?
Weiterhin sollte das Makro Zeile für Zeile und Tabelle für Tabelle untersuchen und Zeilen mit #Bezug-Inhalten löschen.
Könntet Ihr mir da noch helfen?
Gruß Hermann
AW: Löschen von #Bezug!-Zeilen
25.06.2004 20:18:56
#Bezug!-Zeilen
Hallo Pluto,
wird das Beschäftigungstherapie - warum ein neuer Thread? Was ist mit meiner Antwort in Deinem Thread vom 21.06.? Wenn es Probleme gibt kannst Du da immer noch dran bleiben und es wird Dir gern geholfen.
https://www.herber.de/forum/messages/444046.html
Anzeige
AW: Löschen von #Bezug!-Zeilen
26.06.2004 15:17:35
#Bezug!-Zeilen
Hallo Andre,
vorab erst mal vielen Dank für Deine Mühen.
Du hat ja recht. Ich dachte nur....um diese alten Kamellen kümmert sich keiner mehr.
Entschuldigung.
Ich habe selbstverständlich gleich Dein Makro in meine Datei eingebaut (siehe Anhang, aber es löschte nicht die gesamte Zeile, wenn in selbiger ein #Bezug war, sondern nur einen Teil. Und dann auch nicht in allen Blättern, und weil ich keine Ahnung von VBA habe...
Naja ich hoffe Du verzeihst.
Es sind aber auch meine ersten Gehversuche im Form.
Bin aber lernwillig
Würde mich freuen, wenn Du Dich der Sache noch mal annehmen könntest.
Vielen Dank im Voraus
Gruß Herman
Anzeige
AW: Löschen von #Bezug!-Zeilen
26.06.2004 20:34:36
#Bezug!-Zeilen
Hallo Hermann,
dann gehen wir mal einen Schritt weiter. Mit dem Makro werden nur die betreffendne Zellen gelöscht - gesammelt wird das über die Variable rng.
Wenn die ganze Zeile gelöscht werden soll, dann brauchst du Rows(rng.Row)
Im Makro ist jetzt auch eine Fehlerbehandlung für keinen #BEZUG berücksichtigt. Zum Testen kann man die erste Zeile mit On Error ja auch mal auskommentieren.
Noch ein Hinweis: Wenn die Antwort(en) nicht ausreichen kann man den Beitrag auch auf ...offen setzen - rechts das Optionfeld. Der Beitrag bleibt ca 5 Tage zur Bearbeitung im Forum - siehe auch links im Menü "Offene Fragen".

Sub BezugFehlerSuchen()
Dim rng As Range, rngErrors As Range, rngSelect As Range
On Error GoTo Ende
Set rngErrors = Cells.SpecialCells(xlFormulas, 16)
On Error GoTo 0
For Each rng In rngErrors.Cells
If rng.Text = "#BEZUG!" Then
If rngSelect Is Nothing Then
Set rngSelect = Rows(rng.Row)
Else
Set rngSelect = Union(Rows(rng.Row), rngSelect)
End If
End If
Next rng
rngSelect.Delete
Ende:
End Sub

Anzeige
AW: Löschen von #Bezug!-Zeilen
27.06.2004 22:13:14
#Bezug!-Zeilen
Hallo Andre,
vielen Dank für Deine Mühe und die Hinweise. Leider habe ich von VBA NULL Ahnung und kann mir auch kein Stück weiterhelfen.
Würd also gern noch mal auf Deine Hilfe zurückgreifen.
Ist es denkbar das Makro so zu modifizieren, daß es auf jedem der z.T bis zu 50 Tabellenblättern der aktuellen Excel-Datei angewendet wird?
Weiterhin wäre es klasse, wenn das Makro von oben anfangend Zeile für Zeile löschen würde, damit die Summenzeilen (enthält auch Zellen mit #bezug) nicht mit gelöscht werden.
Mit freundlichem Gruß und bestem Dank für Deine Hilfe
Hermann
AW: Löschen von #Bezug!-Zeilen
29.06.2004 07:37:51
#Bezug!-Zeilen
Hallo Herman,
das mit den Blättern geht so:

Sub BezugFehlerSuchen()
'sucht und löscht Zeilen mit #BEZUG
Dim rng As Range, rngErrors As Range, rngSelect As Range
For Each blaetter In Sheets()
On Error GoTo weiter
'keine Formeln da
Set rngErrors = blaetter.Cells.SpecialCells(xlFormulas, 16)
On Error GoTo 0
For Each rng In rngErrors.Cells
If rng.Text = "#BEZUG!" Then
If rngSelect Is Nothing Then
Set rngSelect = blaetter.Rows(rng.Row)
Else
Set rngSelect = Union(blaetter.Rows(rng.Row), rngSelect)
End If
End If
Next rng
rngSelect.Delete
weiter:
Set rngSelect = Nothing
Next blaetter
End Sub

Die Fehlerbehandlung funktioniert allerdings nicht richtig, das muss ich noch prüfen.
Dann fehlt mir noch ein Anhaltspunkt, wie ich Deine Summenzeile finde. Ist es immer die unterste des Datenbereiches oder die letzte wo #BEZUG auftreten kann ...?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige