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

Fehler bei Find-Funktion

Fehler bei Find-Funktion
17.12.2003 14:32:55
marla
Hi!

Ich habe eine .find - Funktion geschrieben, die den gesuchten Wert aber in der Zeile nicht findet, obwohl er dort steht! Ich habe das ganze so geschrieben:

Sheets("VerlängerungsAltBestand").Select
With Sheets("VerlängerungsAltBestand").Range("1:1")
Set l = .Find(i, LookIn:=xlValues, LookAt:=xlWhole)
If Not l Is Nothing Then
l.Select
numRows = Selection.Rows.Count
numColumns = Selection.Columns.Count
Selection.Resize(numRows, numColumns + 1).EntireRow.Select
Selection.Delete xlShiftToLeft
End If
End With

Wobei "i" eine Zahl und zwar "2" ist. Ich mache genau das selbe auch in einem 2. Blatt, dort funktioniert es so, aber bei dem Blatt "VerlängerungsAltBestand"
findet er auf einmal nichts, obwohl in der Zelle "C1" der Wert "2" steht!!

Falls jemand einen Fehler entdeckt und mir schreib, bin ich wirklich sehr dankbar!!!

lg
marla

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei Find-Funktion
17.12.2003 15:36:03
Uwe Küstner
Hallo Marla,

es gibt zwei Möglichkeiten, warums bei Dir nicht geht:

- die Variable i enthält keine 2 (i=2)
- die Suche beginnt erst nach der Zelle, in der eine 2 steht.

Um die Suche immer bei der 1. Zelle zu beginnen, sollte man bei Find die Option After:=cells(1) einfügen.

Mit den Zeilen

Selection.Resize(numRows, numColumns + 1).EntireRow.Select
Selection.Delete xlShiftToLeft

komme ich nicht klar. Soll dann wirklich die ganze Zeile gelöscht werden oder die Spalte rechts daneben?

Wenns so sein soll wie in Deinem Code, hier eine stark entschlackte Version als Vorschlag:


Sub Test()
Dim l As Range
i = 2
With Worksheets("VerlangerungsAltBestand").Rows(1)
Set l = .Find(i, After:=.Cells(1), LookIn:=xlValues, LookAt:=xlWhole)
If Not l Is Nothing Then l.EntireRow.Delete
End With
End Sub


Viele Grüße

Uwe
Anzeige
AW: Fehler bei Find-Funktion
17.12.2003 15:53:41
marla
Hi! Danke für die Mühe.

Leider hat das mit dem After:= nichts geholfen. Auch wenn ich statt i gleich 2 in die Funktion schreibe findet er es nicht.

ich muss dann 2 Spalten löschen deswegen das numrows und numcolumns und dann eben mit resize den Bereich definieren. Kann sein, dass es auch nohc kürzer geht.

lg
AW: Fehler bei Find-Funktion
17.12.2003 16:08:02
Uwe Küstner
Hallo Marla,

bitte schildere die Aufgabe noch einmal detailliert:
- In welchem Bereich soll die 2 gesucht werden?
- Was soll gelöscht werden, wenn eine Zelle mit 2 gefunden wird?

Viele Grüße

Uwe
AW: Fehler bei Find-Funktion
17.12.2003 16:15:40
marla
Hi!

Habs inzwischen!! Hing mit der Formatierung zusammen - in der Zelle ist zwar wirklich nur 2 gestanden, aber die Zelle war mit einer benuzerdefinierten Formatierung hinterlegt, sodass im Endeffekt "npb Altbestand 2" in der Zelle stand. Irgendwie dürte ihm das nicht gefallen haben und er hat es deshalb nicht gefunden.

Sobald er die Zelle gefunden hat, soll die komplete Spalte und die Spalte daneben gelöscht werden. Das hab ich eben mit dem resize gemacht.

lg
Anzeige
AW: Fehler bei Find-Funktion
17.12.2003 19:02:08
Uwe Küstner
Hallo Marla,

nach Deinem Code werden aber nicht die zwei Spalten gelöscht sondern die komplette Zeile.
EntireRow bedeutet die ganze Zeile, Du willst doch eigentlich Spalten löschen > also
EntireColumn.
Hier noch mal ein Vorschlag für Dein Vorhaben:

Sub Test()
Dim l As Range
Dim i As Integer
i = 2
With Sheets("VerlängerungsAltBestand").Rows(1)
Set l = .Find(i, After:=.Cells(1), LookIn:=xlValues, LookAt:=xlWhole)
If Not l Is Nothing Then Range(l, l.Offset(0, 1)).EntireColumn.Delete xlShiftToLeft
End With
End Sub


Viele Grüße

Uwe
Anzeige
AW: Fehler bei Find-Funktion
17.12.2003 15:39:09
Uwe
Hallo Marla

probiers mal so

i = 2
With Sheets("VerlängerungsAltBestand").Cells
Set l = .Find(i, LookIn:=xlValues, LookAt:=xlWhole)
If Not l Is Nothing Then
l.Select
numRows = Selection.Rows.Count
numColumns = Selection.Columns.Count
Selection.Resize(numRows, numColumns + 1).EntireRow.Select
Selection.Delete xlShiftToLeft
End If
End With
danke, aber hilft leider auch nicht o.T.
17.12.2003 15:54:35
marla
asdf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige