Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abfrage ob Zell-Wert = "#BEZUG!"

Forumthread: Abfrage ob Zell-Wert = "#BEZUG!"

Abfrage ob Zell-Wert = "#BEZUG!"
20.11.2006 18:48:09
Marc81
Hallo Zusammen
Ist es möglich, den Inhalt einer Zelle abzufragen, ob ein Bezug fehlt?
Ich möchte nämlich jeweils die Zeile löschen bzw. ausblenden,
wo das Tabellenblatt auf das Verwiesen wird fehlt. Es geht hierbei um eine Art Inhaltsverzeichnis und bestimmte Blätter werden ja nach Auswahl des User gelöscht.
Den entsprechenden Eintrag möchte ich dann löschen bzw. ausblenden. Je nach dem ob es hinterher noch geändert werden soll.
Hier ist meine Schleife zum Abfragen und löschen:
For i = 10 To 18 'Zeile 10 bis 18, Abfrage in Spalte J = 10
If Cells(i, 10) Like "=#BEZUG!G8" Then Cells(i, 10).EntireRow.Delete
Next i
Vielleicht wisst ihr wo mein Fehler liegt?!
Gruss Marc
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage ob Zell-Wert = "#BEZUG!"
20.11.2006 18:59:05
Erich
Hallo Marc,
das könntest du so machen:
If Cells(i, 10).Text = "#BEZUG!" Then ...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Abfrage ob Zell-Wert = "#BEZUG!"
20.11.2006 19:04:11
Erich
Hallo nochmal,
alle fehlerhaften Zellen findest du mit
If IsError(Cells(i, 10)) Then ...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Abfrage ob Zell-Wert = "#BEZUG!"
20.11.2006 19:20:07
Kurt
HI,
For i = 10 To 18 'Zeile 10 bis 18, Abfrage in Spalte J = 10
If Cells(i, 10).Text Like "*BEZUG!*" Then Rows(i).Delete
Next i
mfg Kurt
AW: Abfrage ob Zell-Wert = "#BEZUG!"
20.11.2006 20:26:44
Marc81
Hallo Zusammen
Schon mal Danke für eure Hilfe. Ich habe jetzt alle drei Varianten probiert.
Was mir aufgefallen ist. Alle drei löschen mir die geforderten Zeilen, ausser wenn zwei oder mehr aufeinanderfolgende Zeilen einen Fehlerhaften Bezug haben. Dann wird nur jede 2. Zeile stehengelassen.
Wenn ihr keinen Vorschlag habt, lass ich das Makro einfach zwei oder dreimal durchlaufen, dann passt es auch.
Gruss Marc
Anzeige
AW: Abfrage ob Zell-Wert = "#BEZUG!"
20.11.2006 21:07:28
Kurt
Hi,
For i = 18 To 10 Step -1
If Cells(i, 10).Text Like "*BEZUG!*" Then Rows(i).Delete
Next
mfg Kurt
Danke Schön!
20.11.2006 21:18:55
Marc81
Hallo Kurt
So läuft es. Jetzt verstehe ich auch warum. Hab ich noch vorher meiner Kollegin gesagt, dass wir ja von unten nach oben müssen, sonst passt es mit den Zeilen nicht. War aber in einem anderen Zusammenhang.
Danke für deine Mühen!
Gruss Marc
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zell-Wert-Abfrage in Excel: Umgang mit "#BEZUG!"-Fehlern


Schritt-für-Schritt-Anleitung

Um in Excel abzufragen, ob ein Zell-Wert gleich "#BEZUG!" ist, kannst du die folgenden Schritte befolgen. Diese Anleitung basiert auf VBA (Visual Basic for Applications).

  1. Öffne das VBA-Editor-Fenster mit ALT + F11.

  2. Füge ein neues Modul hinzu.

  3. Kopiere und füge den folgenden Code ein:

    Sub CheckForBezug()
       For i = 10 To 18 ' Zeile 10 bis 18
           If Cells(i, 10).Text Like "*BEZUG!*" Then
               Cells(i, 10).EntireRow.Delete
           End If
       Next i
    End Sub
  4. Führe das Makro aus, um die Zeilen mit dem Fehler "#BEZUG!" zu löschen.


Häufige Fehler und Lösungen

Ein häufiger Fehler tritt auf, wenn mehrere aufeinanderfolgende Zeilen mit dem Fehler "#BEZUG!" vorhanden sind. In diesem Fall werden möglicherweise nicht alle Zeilen gelöscht. Hier sind einige Lösungen:

  • Lösungsansatz 1: Durchlaufe die Zeilen von unten nach oben. Wenn du die Schleife änderst, sieht der Code so aus:

    For i = 18 To 10 Step -1
       If Cells(i, 10).Text Like "*BEZUG!*" Then
           Rows(i).Delete
       End If
    Next
  • Lösungsansatz 2: Verwende IsError, um fehlerhafte Zellwerte abzufragen:

    If IsError(Cells(i, 10)) Then
       Rows(i).Delete
    End If

Alternative Methoden

Neben VBA gibt es auch andere Methoden, um mit "#BEZUG!"-Fehlern umzugehen:

  • Filtern: Du kannst die Filterfunktion in Excel nutzen, um nur die Zeilen mit dem Fehler anzuzeigen und diese dann manuell zu löschen.
  • Bedingte Formatierung: Mit bedingter Formatierung kannst du die Zellen, die "#BEZUG!" enthalten, farblich hervorheben, um sie leichter zu identifizieren.

Praktische Beispiele

Hier ein praktisches Beispiel, das zeigt, wie du die Abfrage in einer Excel-Vorlage für einen Lieferschein umsetzen könntest:

Sub RemoveBezugFromLieferschein()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Lieferschein")

    For i = 1 To ws.Cells(Rows.Count, 1).End(xlUp).Row
        If ws.Cells(i, 1).Text Like "*BEZUG!*" Then
            ws.Rows(i).Delete
        End If
    Next i
End Sub

Mit diesem Makro kannst du die Zeilen in deiner Excel-Vorlage für den Lieferschein überprüfen und fehlerhafte Bezüge entfernen.


Tipps für Profis

  • Makros automatisieren: Du kannst das Makro so einrichten, dass es beim Öffnen der Datei automatisch ausgeführt wird.
  • Fehlerprotokollierung: Füge eine Protokollierung ein, um festzuhalten, welche Zeilen gelöscht wurden, damit du die Änderungen nachvollziehen kannst.
  • Regelmäßige Sicherungen: Bevor du Massenänderungen vornimmst, erstelle immer eine Sicherung deiner Datei.

FAQ: Häufige Fragen

1. Wie kann ich die Zeilen mit "#BEZUG!" markieren, anstatt sie zu löschen? Du kannst die Zellen farblich formatieren, anstatt die Zeilen zu löschen. Nutze dazu die bedingte Formatierung in Excel.

2. Was passiert, wenn ich die Schleife von oben nach unten durchlaufe? Wenn du von oben nach unten durchläufst, können Zeilen übersprungen werden, wenn eine Zeile gelöscht wird, die eine folgende Zeile beeinflusst. Daher ist es besser, von unten nach oben zu arbeiten.

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