Registriert seit: 29.01.2017
Version(en): 2013
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin! Zitat:Die bisher im Netz gefundenen Tipps, haben (leider) nicht funktioniert. Inwiefern? Als Teaser: http://www.rondebruin.nl/win/s9/win005.htmGruß 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)
Registriert seit: 29.01.2017
Version(en): 2013
erstmal vielen Dank- leider funzt es nicht
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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
Registriert seit: 29.01.2017
Version(en): 2013
20.02.2017, 15:35
(Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2017, 17:44 von Rabe.
Bearbeitungsgrund: Code-Tags benutzt
)
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
Registriert seit: 10.04.2014
Version(en): 2016 + 365
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
Registriert seit: 29.01.2017
Version(en): 2013
Hallo Rabe,
vielen Dank für die Arbeit, ich werde direkt mal versuchen.
Danke schön!!!!
Viele Grüße
Basti
Registriert seit: 10.04.2014
Version(en): 2016 + 365
20.02.2017, 18:13
(Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2017, 18:13 von Rabe.)
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?
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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:1 Nutzer sagt Danke an atilla für diesen Beitrag 28
• Basti5
|