Herbers Excel-Forum - das Archiv

Ausbuchung einer gesammten Reihe

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Ausbuchung einer gesammten Reihe
von: Christian

Geschrieben am: 18.12.2006 10:17:08
Hallo Profis,
ich habe für ein Tabellenwerk eine Userform gebastelt . Eingaben funktionieren. Aber das Problem besteht darin, dass wenn der User einen Posten ausbuchen will, dann soll er das auch über die gleiche UserForm machen, über die er Eingaben tätigt.
Also nur durch das Umschalten der Optionsgruppe (OptionButto3 und 4) soll VBA die Sprungmarke "Manteltresor_Abgang:" bzw. “Bogentresor_Abgang:“ ansteuern. Dann soll der User die Buchungsbelegnummer eingeben und Excel soll aus dem Tabellenblatt die Reihe mit genau dieser Buchungsbelegnummer über CutCopie und Paste in ein anderes Tabellenblatt (Archiv) einkopieren.
Das habe ich bisher:
Public
Sub Eintragen()
Datum = TextBox1.Value
Name = TextBox2.Value
Nennwert = TextBox8.Value
Buchungsbelegnummer = TextBox7.Value
Erster_Freigeber = TextBox9.Value
Zweiter_Freigeber = TextBox10.Value
Dim gefunden As Range
If OptionButton1.Value = True And OptionButton3.Value = True Then GoTo Manteltresor_Zugang
If OptionButton2.Value = True And OptionButton3.Value = True Then GoTo Bogentresor_Zugang
If OptionButton1.Value = True And OptionButton4.Value = True Then GoTo Manteltresor_Abgang
If OptionButton2.Value = True And OptionButton4.Value = True Then GoTo Bogentresor_Abgang
Manteltresor_Zugang:
Set gefunden = Worksheets("Manteltresor").Range("I10:I769").Find("")
gefunden = Datum
Set gefunden = Worksheets("Manteltresor").Range("C10:C769").Find("")
gefunden = Name
Set gefunden = Worksheets("Manteltresor").Range("E10:E769").Find("")
gefunden = Nennwert
Set gefunden = Worksheets("Manteltresor").Range("H10:H769").Find("")
gefunden = Buchungsbelegnummer
Set gefunden = Worksheets("Manteltresor").Range("J10:J769").Find("")
gefunden = Erster_Freigeber
Set gefunden = Worksheets("Manteltresor").Range("K10:K769").Find("")
gefunden = Zweiter_Freigeber
GoTo Ende:
Bogentresor_Zugang:
Set gefunden = Worksheets("Bogentresor").Range("I10:I769").Find("")
gefunden = Datum
Set gefunden = Worksheets("Bogentresor").Range("C10:C769").Find("")
gefunden = Name
Set gefunden = Worksheets("Bogentresor").Range("E10:E769").Find("")
gefunden = Nennwert
Set gefunden = Worksheets("Bogentresor").Range("H10:H769").Find("")
gefunden = Buchungsbelegnummer
Set gefunden = Worksheets("Bogentresor").Range("J11:J769").Find("")
gefunden = Erster_Freigeber
Set gefunden = Worksheets("Bogentresor").Range("K11:K769").Find("")
gefunden = Zweiter_Freigeber
GoTo Ende:
Manteltresor_Abgang:
If Worksheets("Manteltresor").Range("H10:H769") Like (UserForm1.TextBox7.Value) Then Row copie
Worksheets("Archiv").Range("C10:C769").Find ("")
Set gefunden = Worksheets("Archiv").Range("C10:C769").Find("")
gefunden = Paste
GoTo Ende:
Bogentresor_Abgang:
If Worksheets("Bogentresor").Range("H10:H769") Like (UserForm1.TextBox7.Value) Then Row copie
Worksheets("Archiv").Range("C10:C769").Find ("")
Set gefunden = Worksheets("Archiv").Range("C10:C769").Find("")
gefunden = Paste
GoTo Ende:
Ende:
OptionButton1.Value = False
OptionButton2.Value = False
OptionButton3.Value = False
OptionButton4.Value = False
TextBox1.Value = ""
TextBox2.Value = ""
TextBox8.Value = ""
TextBox7.Value = ""
TextBox9.Value = ""
TextBox10.Value = ""
TextBox2.SetFocus
End Sub

Bild

Betrifft: AW: Ausbuchung einer gesammten Reihe
von: fcs

Geschrieben am: 18.12.2006 15:20:43
Hallo Christian,
ungetestet könnte etwa folgende Anpassung funktionieren. Dabei solltest du auch deinen Code für den Zugang anpassen, sieht etwas eleganter aus.
Gruß
Franz
Sub Eintragen()
Datum = TextBox1.Value
Name = TextBox2.Value
Nennwert = TextBox8.Value
Buchungsbelegnummer = TextBox7.Value
Erster_Freigeber = TextBox9.Value
Zweiter_Freigeber = TextBox10.Value
Dim gefunden As Range
If OptionButton1.Value = True And OptionButton3.Value = True Then GoTo Manteltresor_Zugang
If OptionButton2.Value = True And OptionButton3.Value = True Then GoTo Bogentresor_Zugang
If OptionButton1.Value = True And OptionButton4.Value = True Then GoTo Manteltresor_Abgang
If OptionButton2.Value = True And OptionButton4.Value = True Then GoTo Bogentresor_Abgang
Manteltresor_Zugang:
With Worksheets("Manteltresor")
Set gefunden = .Range("I10:I769").Find("")
gefunden = Datum
.Cells(gefunden.Row, "C").Value = Name
.Cells(gefunden.Row, "E").Value = Nennwert
.Cells(gefunden.Row, "H").Value = Buchungsbelegnummer
.Cells(gefunden.Row, "J").Value = Erster_Freigeber
.Cells(gefunden.Row, "K").Value = Zweiter_Freigeber
End With
GoTo Ende:
Bogentresor_Zugang:
With Worksheets("Bogentresor")
Set gefunden = Worksheets("Bogentresor").Range("I10:I769").Find("")
gefunden = Datum
.Cells(gefunden.Row, "C").Value = Name
.Cells(gefunden.Row, "E").Value = Nennwert
.Cells(gefunden.Row, "H").Value = Buchungsbelegnummer
.Cells(gefunden.Row, "J").Value = Erster_Freigeber
.Cells(gefunden.Row, "K").Value = Zweiter_Freigeber
End With
GoTo Ende:
Manteltresor_Abgang:
With Worksheets("Archiv")
Set gefunden = Worksheets("Manteltresor").Range("H10:H769").Find(Buchungsbelegnummer)
gefunden.EntireRow.Cut
.Cells(.Rows.Count, "C").End(xlUp).Offset(1, 0).EntireRow.Insert
End With
GoTo Ende:
Bogentresor_Abgang:
With Worksheets("Archiv")
Set gefunden = Worksheets("Bogentresor").Range("H10:H769").Find(Buchungsbelegnummer)
gefunden.EntireRow.Cut
.Cells(.Rows.Count, "C").End(xlUp).Offset(1, 0).EntireRow.Insert
End With
GoTo Ende:
Ende:
OptionButton1.Value = False
OptionButton2.Value = False
OptionButton3.Value = False
OptionButton4.Value = False
TextBox1.Value = ""
TextBox2.Value = ""
TextBox8.Value = ""
TextBox7.Value = ""
TextBox9.Value = ""
TextBox10.Value = ""
TextBox2.SetFocus
End Sub

Bild

Betrifft: AW: Ausbuchung einer gesammten Reihe
von: Christian
Geschrieben am: 18.12.2006 16:30:17
hallo fcs, - Du bist`n Held !! -funktioniert einwandfrei !
aber leider kopiert vba nicht nur den Wert, sondern die gesammte Reihe, aber das krieg ich schon auch noch hin !!
 Bild