nächste Zeile nach VBA kopierfunktion
#1
Guten Morgen zusammen,

ich würde nochmal eure Hilfe benötigen. Ich hoffe es wird verständlich was ich möchte:

Also, ich habe in Excel einen Gebührenrechner für die Kanzlei geschrieben, funktioniert auch Wunderbar. In Tabelle 1 wird der Name des Mandanten reingeschrieben und der Streitwert, alles andere wird dann automatisch ausgerechnet.
Danach wird per Klick auf einen Button, die Eingaben von Tabelle 1 in Tabelle 2 geschrieben und per Serienbrieffunktion ausgedruckt. Danach werden die Eingaben in Tabelle 1 per Button gelöscht und man kann eine neue (weitere) Rechnung schreiben. Zum Kopieren der Daten von Tabelle 1 in Tabelle 2, benutze ich folgenden Code:
 
Private Sub CommandButton3_Click()
Dim Quelltab As Worksheet
Dim Zieltab As Worksheet
Dim Zelle As Range
 
'Anrede
Set Quelltab = ActiveWorkbook.Worksheets("Tabelle1")
Set Zieltab = ActiveWorkbook.Worksheets("Tabelle2")
For Each Zelle In Quelltab.Range("O13")
Zieltab.Cells(2, 2) = Zelle
 Next
etc. etc.
End Sub
 
Nun, meine Frage: Die Daten aus Tabelle 1 werden in Tabelle 2 in Zeile 2 geschrieben (wegen der Seriendruckfunktion), gibt es eine Möglichkeit, den oben genannten Code, so umzuschreiben bzw. etwas hinzuzufügen, dass wenn ich die Daten in Tabelle 1 gelöscht habe und eine weitere Rechnung schreiben möchten, die neuen Daten dann direkt in Zeile 3 usw. geschrieben werden (können)?

Die bisher im Netz gefundenen Tipps, haben (leider) nicht funktioniert.

Für die Hilfe schon mal im vor raus ein herzliches Dankeschön!!!

Viele Grüße

Basti
Top
#2
Moin!
Zitat:Die bisher im Netz gefundenen Tipps, haben (leider) nicht funktioniert.
Inwiefern?
Als Teaser:
http://www.rondebruin.nl/win/s9/win005.htm

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
erstmal vielen Dank- leider funzt es nicht Undecided
Top
#4
Hallo,

Du hast meiner Meinung nach keine so gute Variante zum Schreiben.

Zeig doch mal was unter etc. etc. steht. Dann kann man das ganze vielleicht ein wenig ordentlicher ablaufen lassen.
Besser vielleicht den gesamten Code.
Gruß Atilla
Top
#5
Hallo Atilla, 

kann ich gerne machen, aber wird a) ein bißchen lang und b) ändern sich nur die Zellen.

Der ganze Code sieht so aus:

Code:
Option Explicit

Private Sub CommandButton3_Click()
   Dim Quelltab As Worksheet
   Dim Zieltab As Worksheet
   Dim Zelle As Range
  
   'Anrede
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("O13")
      Zieltab.Cells(2, 2) = Zelle
   Next
  
   'Vorname
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("C11")
      Zieltab.Cells(2, 3) = Zelle
   Next
  
   'Nachname
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("C12")
      Zieltab.Cells(2, 4) = Zelle
   Next
  
   'Straße
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("C13")
      Zieltab.Cells(2, 5) = Zelle
   Next
  
   'PLZ
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("C14")
      Zieltab.Cells(2, 6) = Zelle
   Next
  
   'Ort
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("C15")
      Zieltab.Cells(2, 7) = Zelle
   Next
  
   'Aktenzeichen
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("C17")
      Zieltab.Cells(2, 8) = Zelle
   Next
  
   'Gegenstandswert
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("C19")
      Zieltab.Cells(2, 9) = Zelle
   Next
  
   'Faktor
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("O7")
      Zieltab.Cells(2, 10) = Zelle
   Next
  
   'Geschäftsgebühr
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("F10")
      Zieltab.Cells(2, 11) = Zelle
   Next
  
   'Post und Telekommunikation A
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("F12")
      Zieltab.Cells(2, 12) = Zelle
   Next
  
   'Zwischensumme A
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("F14")
      Zieltab.Cells(2, 13) = Zelle
   Next
  
   'Mehrwertsteuer A
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("F16")
      Zieltab.Cells(2, 14) = Zelle
   Next
  
   'gesamt Außergericht.
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("F18")
      Zieltab.Cells(2, 15) = Zelle
   Next
  
   'Verfahrensgebühr
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("I10")
      Zieltab.Cells(2, 16) = Zelle
   Next
  
   'Anrechnung
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("I12")
      Zieltab.Cells(2, 17) = Zelle
   Next
  
   'Terminsgebühr
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("I14")
      Zieltab.Cells(2, 18) = Zelle
   Next
  
   'Post und Telekommunikation G
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("I16")
      Zieltab.Cells(2, 19) = Zelle
   Next
  
   'Zwischensumme G
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("I18")
      Zieltab.Cells(2, 20) = Zelle
   Next
  
   'Mehrwertsteuer G
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("I20")
      Zieltab.Cells(2, 21) = Zelle
   Next
  
   'gesamt gerichtlich
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("I22")
      Zieltab.Cells(2, 22) = Zelle
   Next
  
   'zu zahlender Betrag
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("L10")
      Zieltab.Cells(2, 23) = Zelle
   Next
  
   'Honorar
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("F20")
      Zieltab.Cells(2, 24) = Zelle
   Next
  
   'Honorar Betrag
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   For Each Zelle In Quelltab.Range("L12")
      Zieltab.Cells(2, 25) = Zelle
   Next
   If Worksheets("Rechnungsausgabe").Cells(2, 2).Value = "Frau" Then
      Worksheets("Rechnungsausgabe").Cells(2, 26).Value = "Sehr geehrte Frau"
   Else
      Worksheets("Rechnungsausgabe").Cells(2, 26).Value = "Sehr geehrter Herr"
   End If
   If Worksheets("Gebührenrechner").Cells(11, 3).Value = "z.H. Herrn" Then
      Worksheets("Rechnungsausgaben").Cells(2, 26) = "Sehr geehrter Herr"
   Else
      Worksheets("Rechnungsausgabe").Cells(2, 26).Value = "Sehr geehrte Frau"
      
   End If
End Sub

Es gibt sicher integliegentere Lösungen, aber bin ich schon froh, dass es funktioniert- mein weiteres Ziel habe ich ja oben schon beschrieben.

Viele Grüße
Top
#6
Hi,

(20.02.2017, 15:35)Basti5 schrieb: kann ich gerne machen, aber wird a) ein bißchen lang und b) ändern sich nur die Zellen.

Der ganze Code sieht so aus:

ich habe DeinenCode etwas gekürzt und unten bei den Ifs könnte das auch noch gekürzt werden mit Select Case:
Option Explicit

Private Sub CommandButton3_Click()
   Dim Quelltab As Worksheet
   Dim Zieltab As Worksheet
   Dim Zelle As Range
   
   Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
   Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
   With Zieltab
      .Cells(2, 2) = Quelltab.Range("O13")    'Anrede 
      .Cells(2, 3) = Quelltab.Range("C11")    'Vorname 
      .Cells(2, 4) = Quelltab.Range("C12")    'Nachname 
      .Cells(2, 5) = Quelltab.Range("C13")    'Straße 
      .Cells(2, 6) = Quelltab.Range("C14")    'PLZ 
      .Cells(2, 7) = Quelltab.Range("C15")    'Ort 
      .Cells(2, 8) = Quelltab.Range("C17")    'Aktenzeichen 
      .Cells(2, 9) = Quelltab.Range("C19")    'Gegenstandswert 
      .Cells(2, 10) = Quelltab.Range("O7")    'Faktor 
      .Cells(2, 11) = Quelltab.Range("F10")   'Geschäftsgebühr 
      .Cells(2, 12) = Quelltab.Range("F12")   'Post und Telekommunikation A 
      .Cells(2, 13) = Quelltab.Range("F14")   'Zwischensumme A 
      .Cells(2, 14) = Quelltab.Range("F16")   'Mehrwertsteuer A 
      .Cells(2, 15) = Quelltab.Range("F18")   'gesamt Außergericht. 
      .Cells(2, 16) = Quelltab.Range("I10")   'Verfahrensgebühr 
      .Cells(2, 17) = Quelltab.Range("I12")   'Anrechnung 
      .Cells(2, 18) = Quelltab.Range("I14")   'Terminsgebühr 
      .Cells(2, 19) = Quelltab.Range("I16")   'Post und Telekommunikation G 
      .Cells(2, 20) = Quelltab.Range("I18")   'Zwischensumme G 
      .Cells(2, 21) = Quelltab.Range("I20")   'Mehrwertsteuer G 
      .Cells(2, 22) = Quelltab.Range("I22")   'gesamt gerichtlich 
      .Cells(2, 23) = Quelltab.Range("L10")   'zu zahlender Betrag 
      .Cells(2, 24) = Quelltab.Range("F20")   'Honorar 
      .Cells(2, 25) = Quelltab.Range("L12")   'Honorar Betrag 
   End With
   
   If Worksheets("Rechnungsausgabe").Cells(2, 2).Value = "Frau" Then
      Worksheets("Rechnungsausgabe").Cells(2, 26).Value = "Sehr geehrte Frau"
   Else
      Worksheets("Rechnungsausgabe").Cells(2, 26).Value = "Sehr geehrter Herr"
   End If
   If Worksheets("Gebührenrechner").Cells(11, 3).Value = "z.H. Herrn" Then
      Worksheets("Rechnungsausgaben").Cells(2, 26) = "Sehr geehrter Herr"
   Else
      Worksheets("Rechnungsausgabe").Cells(2, 26).Value = "Sehr geehrte Frau"
      
   End If
   
End Sub
Top
#7
Hallo Rabe,

vielen Dank für die Arbeit, ich werde direkt mal versuchen.

Danke schön!!!!

Viele Grüße

Basti
Top
#8
Hi Basti,

(20.02.2017, 18:11)Basti5 schrieb: vielen Dank für die Arbeit, ich werde direkt mal versuchen.

das ist aber nur der bestehende Code gekürzt, da ist noch nichts für Deine Frage gemacht.

Bist Du sicher, daß die richtige Anrede eingefügt wird?
Top
#9
Moin!
Wieso eigentlich VBA?
Dies lässt sich doch über simpelste Formeln abbilden.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#10
Hallo,

nachdem Ralf (Rabe) ein wenig Ordnung reingebracht hat, dürfte,
wenn ich es nicht falsch verstanden habe, das Eigentliche jetzt kein Problem mehr sein:

Code:
Option Explicit

Private Sub CommandButton3_Click()
  Dim Quelltab As Worksheet
  Dim Zieltab As Worksheet
  Dim lngZ As Long
 
  Set Quelltab = ActiveWorkbook.Worksheets("Gebührenrechner")
  Set Zieltab = ActiveWorkbook.Worksheets("Rechnungsausgabe")
  With Zieltab
     lngZ = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
     .Cells(lngZ, 2) = Quelltab.Range("O13")    'Anrede
     .Cells(2, 3) = Quelltab.Range("C11")    'Vorname
     .Cells(lngZ, 4) = Quelltab.Range("C12")    'Nachname
     .Cells(lngZ, 5) = Quelltab.Range("C13")    'Straße
     .Cells(lngZ, 6) = Quelltab.Range("C14")    'PLZ
     .Cells(lngZ, 7) = Quelltab.Range("C15")    'Ort
     .Cells(lngZ, 8) = Quelltab.Range("C17")    'Aktenzeichen
     .Cells(lngZ, 9) = Quelltab.Range("C19")    'Gegenstandswert
     .Cells(lngZ, 10) = Quelltab.Range("O7")    'Faktor
     .Cells(lngZ, 11) = Quelltab.Range("F10")   'Geschäftsgebühr
     .Cells(lngZ, 12) = Quelltab.Range("F12")   'Post und Telekommunikation A
     .Cells(lngZ, 13) = Quelltab.Range("F14")   'Zwischensumme A
     .Cells(lngZ, 14) = Quelltab.Range("F16")   'Mehrwertsteuer A
     .Cells(lngZ, 15) = Quelltab.Range("F18")   'gesamt Außergericht.
     .Cells(lngZ, 16) = Quelltab.Range("I10")   'Verfahrensgebühr
     .Cells(lngZ, 17) = Quelltab.Range("I12")   'Anrechnung
     .Cells(lngZ, 18) = Quelltab.Range("I14")   'Terminsgebühr
     .Cells(lngZ, 19) = Quelltab.Range("I16")   'Post und Telekommunikation G
     .Cells(lngZ, 20) = Quelltab.Range("I18")   'Zwischensumme G
     .Cells(lngZ, 21) = Quelltab.Range("I20")   'Mehrwertsteuer G
     .Cells(lngZ, 22) = Quelltab.Range("I22")   'gesamt gerichtlich
     .Cells(lngZ, 23) = Quelltab.Range("L10")   'zu zahlender Betrag
     .Cells(lngZ, 24) = Quelltab.Range("F20")   'Honorar
     .Cells(lngZ, 25) = Quelltab.Range("L12")   'Honorar Betrag
  End With
 
  If Worksheets("Rechnungsausgabe").Cells(lngZ, 2).Value = "Frau" Then
     Worksheets("Rechnungsausgabe").Cells(lngZ, 26).Value = "Sehr geehrte Frau"
  Else
     Worksheets("Rechnungsausgabe").Cells(lngZ, 26).Value = "Sehr geehrter Herr"
  End If
  If Worksheets("Gebührenrechner").Cells(11, 3).Value = "z.H. Herrn" Then
     Worksheets("Rechnungsausgaben").Cells(lngZ, 26) = "Sehr geehrter Herr"
  Else
     Worksheets("Rechnungsausgabe").Cells(lngZ, 26).Value = "Sehr geehrte Frau"
     
  End If
 
End Sub

@Ralf (RPP63 )

jetzt sollte klar sein warum VBA, oder nicht?
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Basti5
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste