Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
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
Inhaltsverzeichnis

löscht Zeile nicht bei Bedingung

löscht Zeile nicht bei Bedingung
23.01.2021 17:53:41
Andre
Hallo,
habe eine Userform, in der ich Mengen buche.
Wenn bei einer Menge dann Null rauskommt (in Spalte 3), soll im Tabellenblatt "Bestand" die Zeile gelöscht werden.
Habe den Code erweitert, aber die Zeile wird nicht gelöscht.
Könnte jemand den Code mal durchsehen und mir helfen? Vermutlich habe ich was vergessen, habe aber nicht die Ahnung woran es liegt. Hier der Code:
Private Sub CommandButton_buchen_Click()
Dim suche As Range, x As Long
If Me.ListBox1.ListIndex > -1 Then
x = ListBox1.List(ListBox1.ListCount - 1)
With ListBox1
Set suche = Sheets("BESTAND").Columns(1).Find(.Column(0, .ListIndex))
End With
With Me
.TextBox_MengePAL.Value = Format(CDbl(.TextBox_MengePAL.Text) - CDbl(.TextBox_Bedarf.Text) _
)
If CDbl(.TextBox_MengePAL) 
Danke für Eure Hilfe.
Andre

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: löscht Zeile nicht bei Bedingung
23.01.2021 17:59:39
Werner
Hallo,
das hier "0" ist Text. Ohne die Gänsefüßchen.
Gruß Werner
AW: löscht Zeile nicht bei Bedingung
23.01.2021 20:17:57
Andre
Hallo Werner,
auch wenn die Gänsefüsschen weg sind, wird die Zeile nicht gelöscht.
Es scheint noch etwas zu fehlen in diesem Bereich:
With Sheets("BESTAND")
If Not suche Is Nothing Then
.Cells(suche.Row, 3) = TextBox_MengePAL
If IsNumeric(TextBox_MengePAL.Value) Then
Tabelle3.Cells(suche.Row, 3) = CDbl(TextBox_MengePAL)
If Tabelle3.Cells(suche.Row, 3) = 0 Then Tabelle3.Rows(suche).Delete
End If
End If
End With
AW: löscht Zeile nicht bei Bedingung
23.01.2021 20:37:03
Tobias
Hallo Andre,
muss es nicht Cells(suche.Row, 3) = 0 heißen?
Schöne Grüße
Tobias
Anzeige
AW: löscht Zeile nicht bei Bedingung
23.01.2021 21:15:21
Andre
Hallo Tobias,
hab´s geändert aber auch dann wird die Zeile nicht gelöscht.
Noch einen Tip`?
AW: löscht Zeile nicht bei Bedingung
23.01.2021 22:47:42
Werner
Hallo,
lade mal deine Mappe hier hoch, alles andere ist gestochere im Nebel.
Gruß Werner
AW: löscht Zeile nicht bei Bedingung
24.01.2021 11:01:21
Andre
Hallo Werner,
hier die Datei:
https://www.herber.de/bbs/user/143282.xlsm
Unter dem Menü-Punkt "Auftrag erfassen" gibt man die Artikelnummer ein. Dann markiert man in der Listbox eine Zeile, von der die Artikel genommen werden sollen. Dann gebe ich in der Textbox "Anz. bestellt" die Menge ein. Wenn die bestellte menge identisch ist mit der von "Stück/Palette" dann soll nach klick auf "Position buchen" die Zeile gelöscht werden, da der Stellplatz dann ja leer ist.
Gruß
Andre
Anzeige
AW: löscht Zeile nicht bei Bedingung
24.01.2021 23:47:36
Werner
Hallo,
Private Sub CommandButton_buchen_Click()
Dim suche As Range, x As Long
With ListBox1
If .ListIndex > -1 Then
x = .List(.ListCount - 1)
Set suche = Sheets("BESTAND").Columns(1).Find(.Column(0, .ListIndex), _
LookIn:=xlValues, lookat:=xlWhole)
End If
End With
With TextBox_MengePAL
.Value = Format(CDbl(.Value) - CDbl(.Value))
If CDbl(.Value) 
Gruß Werner
und hier solltest du noch...
25.01.2021 00:17:41
Werner
Hallo,
...einen Else-Zweig einbauen.
With Worksheets("BESTAND")
If Not suche Is Nothing Then
If IsNumeric(TextBox_MengePAL) Then
If .Cells(suche, 3) - CDbl(TextBox_MengePAL) = 0 Then
.Rows(suche.Row).Delete
Else
.Cells(suche, 3) = .Cells(suche.Row, 3) - CDbl(TextBox_MengePAL)
End If
Else
MsgBox "Fehler: Der eingetragene Wert ist nicht numerisch."
TextBox_MengePAL.SetFocus
Exit Sub
End If
End If
End With
Gruß Werner
Anzeige
AW: und hier solltest du noch...
25.01.2021 15:40:28
Andre
Hallo Werner,
danke, dass Du Dich der Sache noch einmal angenommen hast.
Dein Code löscht jetzt jede Zeile, egal ob der Wert in Spalte C "0" oder größer ist.
Dazu erscheint die Message Box nicht, wenn man Mehr Menge eingibt, als auf der Palette ist.
Könntest Du das noch einmal überprüfen?
Danke.
AW: und hier solltest du noch...
25.01.2021 17:47:17
Werner
Hallo,
sorry, da hab ich nicht aufgepasst.
Die Suche wird jetzt in der Spalte Artikelnummer durchgeführt und nichgt mehr in der Spalte Paletten ID. Dort hattest du doppelte ID drin und mit Find findest du immer nur den ersten Treffer.
Private Sub CommandButton_buchen_Click()
Dim suche As Range, x As Long
With ListBox1
If .ListIndex > -1 Then
x = .List(.ListCount - 1)
Set suche = Sheets("BESTAND").Columns(2).Find(.Column(2, .ListIndex), _
LookIn:=xlValues, lookat:=xlWhole)
End If
End With
With TextBox_MengePAL
If IsNumeric(TextBox_Bedarf) Then
If CLng(TextBox_Bedarf) > CLng(.Value) Then
MsgBox ("Menge nicht ausreichend - Position wird nicht gebucht ! ")
Exit Sub
End If
Else
MsgBox "Fehler: Der eingetragene Wert ist nicht numerisch."
Exit Sub
End If
End With
With Worksheets("BESTAND")
If Not suche Is Nothing Then
If .Cells(suche.Row, 3) - CLng(TextBox_Bedarf) = 0 Then
.Rows(suche.Row).Delete
Else
.Cells(suche.Row, 3) = .Cells(suche.Row, 3) - CLng(TextBox_Bedarf)
End If
End If
End With
With ListBox2
.AddItem TextBox_PALID
.List(.ListCount - 1, 1) = TextBox_Bedarf
.List(.ListCount - 1, 2) = TextBox_ArtNR
.List(.ListCount - 1, 3) = TextBox_Bez
.List(.ListCount - 1, 4) = TextBox_Block
.List(.ListCount - 1, 5) = TextBox_Gang
.List(.ListCount - 1, 6) = TextBox_Platz
End With
ListBox1.Clear
TextBox_Artikel.SetFocus
TextBox_Bedarf.Value = ""
TextBox_Artikel.Value = ""
Set suche = Nothing
End Sub
Den Code zum Kopieren in den Warenkorb hab ich auch etwas angepasst.
Private Sub CommandButton1_Click()
' in BESTAND kopieren
Dim last As Integer
With Worksheets("WA")
last = .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Row
For i = 0 To ListBox2.ListCount - 1
.Cells(last, 1) = TextBox_Auftrag
.Cells(last, 2) = ListBox2.List(i, 2)
.Cells(last, 3) = ListBox2.List(i, 3)
.Cells(last, 4) = ListBox2.List(i, 1)
If IsNumeric(ListBox2.List(i, 4)) Then
.Cells(last, 4) = CDbl(ListBox2.List(i, 4))
End If
.Cells(last, 5) = TextBox_Kunde
.Cells(last, 6) = CDate(TextBox_Datum)
Next
End With
TextBox_Auftrag.Value = ""
TextBox_Kunde.Value = ""
TextBox_Artikel.Value = ""
TextBox_PALID.Value = ""
TextBox_MengePAL.Value = ""
TextBox_ArtNR.Value = ""
TextBox_Bez.Value = ""
TextBox_Block.Value = ""
TextBox_Gang.Value = ""
TextBox_Platz.Value = ""
ListBox2.Clear
End Sub
Gruß Werner
Anzeige
AW: und hier solltest du noch...
25.01.2021 21:05:59
Andre
Hallo Werner,
der erste Code läuft! Super und vielen Dank.
Beim zweiten wir nur eine Zeile der Listbox in den Warenausgang kopiert. Der alte Code läuft ja und von daher ist alles o.k.
Danke nochmal!
Gruß
Andre
Gerne u. Danke für die Rückmeldung. o.w.T.
26.01.2021 00:02:03
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige