Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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)
Antworten Top
#3
erstmal vielen Dank- leider funzt es nicht Undecided
Antworten 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
Antworten 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
Antworten Top
#6
Hi,

(20.02.2017, 14: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
Antworten Top
#7
Hallo Rabe,

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

Danke schön!!!!

Viele Grüße

Basti
Antworten Top
#8
Hi Basti,

(20.02.2017, 17: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?
Antworten 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)
Antworten 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
Antworten Top


Gehe zu:


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