Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
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
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Wert per VBA suchen, gefunden - Zeile löschen
26.09.2007 17:26:00
Ina
Hallo Forum,
per TextBox suche ich Werte in der Tabelle1 (Spalte B - Spalte F). Das Ergebnis der Suche wird in einer ListBox aufgelistet und kann per Klick in weiteren TextBoxen mit allen Werten dargestellt, geändert und zurückgeschrieben werden.
So weit alles Ok, jetzt folgen meine Problemfälle...
Problem 1
Einige Werte möchte ich löschen, das heisst, wenn gefunden, soll die Zeile, die den Wert enthält, per Klick auf einen CommandButton gelöscht werden.
Problem 2
In der Spalte B werden - falls Spalte C einen Wert enthält - aufsteigende Nummern mit der Formel
=WENN(C5>"";B4+1;"") vergeben.
Beim Löschen einer Zeile erscheint in Spalte B der Folgezeile #BEZUG.
Wer kann mir bei meinen Problemen - möglichst mit einem Codebeispiel - weiterhelfen?
Ich habe meine Mappe hochgeladen. Zu finden unter:
https://www.herber.de/bbs/user/46354.xls
Danke für eure Hilfe!
Gruss, Ina

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert per VBA suchen, gefunden - Zeile löschen
26.09.2007 19:57:33
Daniel
Hi
zu 2) klar, das der Fehler kommt, schließlich löschst du dir ja die Zelle, auf die sich die Formel bezieht, weg.
das löst du über einen indirekten Zellbezug mit BEREICH.VERSCHIEBEN oder INDIREKT.
=wenn(C5>"";bereich.verschieben(B5;-1;0)+1;"")
=wenn(C5>"";INDIREKT("B"&ZEILE()-1)+1;"")
zu 1
wenn du die Zeilen-Nr der zu löschenden Zeile hast, geht das einfach mit
ROWS(xxx).delete.
Als Code für deinen Commandbutton 3 dann so:

Private Sub CommandButton3_Click()   '  Löschen
Dim intZ As Integer
Dim durchsuchen, finden As Range
Set durchsuchen = Sheets("Tabelle1").Range("B4:B" & _
Sheets("Tabelle1").Range("B65536").End(xlUp).Row)
For Each finden In durchsuchen
If finden.Text = TextBox1.Text Then
intZ = finden.Row
Exit For
End If
Next finden
Rows(intZ).Delete
End Sub


Gruß, Daniel

Anzeige
Hallo daniel, das klappt bestens! Riesigen Dank!
26.09.2007 20:19:00
Ina
Vielen, vielen Dank!

207 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige