Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1648to1652
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

Wert Finden,Löschen,Neu Nummieren

Wert Finden,Löschen,Neu Nummieren
13.10.2018 15:32:29
nick
Hallo Leute,
ich habe eine Exceltabelle, die zur Erfassung bestimmter Werte dienen soll.
Die Eingabe der Werte erfolgt über den Button "Werte eintragen". Dabei werden folgende Werte in eine Userform eingeben:
Datum, Wert für a, Wert für b, Wert für c.
Die Pos.-Nr. wird beim Drücken auf Button Importieren erzeugt.
Für Anpassungen z.B. Ändern der eingetragenen Werte bzw. Löschen der Werte(ganze Zeile)
steht der Button "Ändern" zur Verfügung.
Dieser ist wie folgt aufgebaut:
Beim Button "Ändern" drücken, erscheint eine Userform mit der die Pos.-Nr. eingegeben wird. Ist diese vorhanden, öffnet sich eine zweite Userform, mit der Option mit Buttons "Ändern" (Hinweis: kein Code) und "Löschen".
Nun zum Problem:
Wenn die gewünschte Pos.-Nr. eingegeben wurde und der Button "Löschen" gedrückt wird, wird Falsche Zeile gelöscht und eine Neue Zeile mit einer neuen Nummerierung wird nicht eingefügt.
Bsp:
Pos.-Nr. Datum Wert a Wert b Wert c
1 8.10.18 1 2 3
2 9.10.18 4 5 6
3 10.10.18 7 8 9
soll Pos.-Nr. 2 gelöscht werden, wird Pos.Nr. gelöscht und die Beiden Button's - Links rücken zusammen.
Habt hier eine Idee wie ich das Problem Lösen kann?
Viele Dank für Eure Hilfe im Voraus!
Grüße
nick

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

Betreff
Datum
Anwender
Anzeige
Benutze den Zellbereich der Spalten D:H
13.10.2018 16:16:44
Beverly
Hi nick,
        Range(Cells(sRg.Row, 4), Cells(sRg.Row, 7)).Delete



AW: Benutze den Zellbereich der Spalten D:H
13.10.2018 16:56:31
nick
Hallo Beverly,
Erstmal danke für Deine Hilfe!
Habe Deinen Code in die Zeile eingefügt, siehe unten.
Beim Ausführen kommt der "Laufzeitfehler 91, Objektvariable oder With-Blockvariable nicht festgelegt"
Muss ich was beachten?
Gruß
Nick
Private Sub cmdLöschen_Click()
'Quellcode für Löschen - Probleme mit Löschen und korrekten Zeileneintrag
Dim i As Integer
Dim j As Integer
Dim sRg As Range
Dim Zelle As Range
Set Zelle = Columns(4).Find(what:=frmPos.txtPos.Value, lookat:=xlWhole)
If Not Zelle Is Nothing Then
'ActiveSheet.Rows(Zelle + 5).Delete
Range(Cells(sRg.Row, 4), Cells(sRg.Row, 7)).Delete
End If
ActiveSheet.Rows(Zelle + 5).Insert
Anzeige
AW: Benutze den Zellbereich der Spalten D:H
13.10.2018 16:56:43
nick
Hallo Beverly,
Erstmal danke für Deine Hilfe!
Habe Deinen Code in die Zeile eingefügt, siehe unten.
Beim Ausführen kommt der "Laufzeitfehler 91, Objektvariable oder With-Blockvariable nicht festgelegt"
Muss ich was beachten?
Gruß
Nick
Private Sub cmdLöschen_Click()
'Quellcode für Löschen - Probleme mit Löschen und korrekten Zeileneintrag
Dim i As Integer
Dim j As Integer
Dim sRg As Range
Dim Zelle As Range
Set Zelle = Columns(4).Find(what:=frmPos.txtPos.Value, lookat:=xlWhole)
If Not Zelle Is Nothing Then
'ActiveSheet.Rows(Zelle + 5).Delete
Range(Cells(sRg.Row, 4), Cells(sRg.Row, 7)).Delete
End If
ActiveSheet.Rows(Zelle + 5).Insert
Anzeige
AW: Benutze den Zellbereich der Spalten D:H
14.10.2018 00:16:56
Beverly
Hi Nick,
wenn der Code dort rein soll, dann musst du schon anstelle sRg.Row dieses verwenden: Zelle.Row
Aber: dein generelles Problem ist, dass die TextBox txtPos auf deinem UserForm frmPos in deinem obigen Code leer ist, da du sie in diesem Code ja bereits leerst:
Private Sub cmdBestätigen_Click()
Dim rg As Range
Dim sRg As Range
'Pos.-Nr. eingeben und prüfen auf Plausibilität
Dim PosNr As Integer
PosNr = CInt(txtPos.Value)
Set rg = Columns("D")
Set sRg = rg.Find(txtPos.Value)
'Prüfen, ob Ziffer eingegeben wurde
If txtPos.Value = "" Then
MsgBox "Bitte Pos.-Nr. eingeben", , "Information"
Exit Sub
ElseIf sRg Is Nothing Then
'Meldung, dass Pos.-Nr. nicht in Tabelle vorhanden ist
MsgBox "Pos.-Nr. nicht vorhanden!", , "Information"
txtPos.Value = ""
Exit Sub
Else
'Textbox leeren
txtPos.Value = ""  

Es fragt sich auch, weshalb du die Zeile bereits in diesem Code suchst und in dem Code für den Lösch-Button nocheinmal. Schreibe die gefundene Zeile entweder auf eine Public-Variable oder schreibe sie in die Tag-Eigenschaft z.B. der TextBox, dann kannst du sie in dem LöschButton-Code wieder auslesen:
Private Sub cmdBestätigen_Click()
Dim rg As Range
Dim sRg As Range
'Pos.-Nr. eingeben und prüfen auf Plausibilität
Dim PosNr As Integer
PosNr = CInt(txtPos.Value)
Set rg = Columns("D")
Set sRg = rg.Find(txtPos.Value)
'Prüfen, ob Ziffer eingegeben wurde
If txtPos.Value = "" Then
MsgBox "Bitte Pos.-Nr. eingeben", , "Information"
Exit Sub
ElseIf sRg Is Nothing Then
'Meldung, dass Pos.-Nr. nicht in Tabelle vorhanden ist
MsgBox "Pos.-Nr. nicht vorhanden!", , "Information"
txtPos.Value = ""
Exit Sub
Else
txtPos.Tag = sRg.Row  '
Der Code für den Lösch-Button müsste dann so aussehen:
Private Sub cmdLöschen_Click()
Dim j As Long
'Quellcode für Löschen 


Anzeige
AW: Benutze den Zellbereich der Spalten D:H
14.10.2018 16:13:29
nick
Hallo Beverly,
ich habe Deinen Code eingefügt und es funktioniert. :-)
Danke hierfür und auch für den Hinweis wo ich meinen Fehler gemacht hab.
Vielen Dank und viele Grüße
nick
Hinweis: Problem ist gelöst!
AW: Benutze den Zellbereich der Spalten D:H
14.10.2018 16:13:36
nick
Hallo Beverly,
ich habe Deinen Code eingefügt und es funktioniert. :-)
Danke hierfür und auch für den Hinweis wo ich meinen Fehler gemacht hab.
Vielen Dank und viele Grüße
nick
Hinweis: Problem ist gelöst!
AW: Wert Finden,Löschen,Neu Nummieren
13.10.2018 15:39:12
Hajo_Zi
Hallo Nick,
frage jemand der neben Dir sitzt der sieht die Datei.
Ich sehe Sie nicht.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige