1.7k Aufrufe
Gefragt in Tabellenkalkulation von
Ich habe 2 getrennte Arbeitsblätter

1. Rechnung

2. offene Posten (zur Nachverfolgung der Rechnungen)

---------------------------------------------------------------------------------------------------------------

Sub in_offene_Posten_kopieren()
'
' in_offene_Posten_kopieren Makro
'

'
    Range("J16").Select
    Selection.Copy
    Range("J14").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("J13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("J18").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("I62").Select
    Application.CutCopyMode = False
    Selection.Copy
Die Werte dieser Felder sollen aus der Tabelle kopiert werden
-----------------------------------------------------------------
    danach die Tabelle ("offene Posten2.xlsm") .Activate
----------------------------------------------------------------   
 suche die erste freie Zeile
Range(erste freie Zeile).Select
kopiere Wert J16 in spalte A, Wert J14 in Spalte B, Wert J13 in spalte C, Wert J18 in Spalte D, Wert I62 in spalte F
--------------------------------------------------------
danach wechsele wieder zur Tabelle
-------------------------------------------------------
    ("Rechnung.xlsm").Activate
End Sub

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

ist in den beiden Arbeitsmappen nur jeweils ein Tabellenblatt vorhanden? Und soll die Arbeitsmappe "offene Posten2.xlsm" automatisch geöffnet und auch wieder geschlossen werden?

Gruß

M.O.
0 Punkte
Beantwortet von

Hallo, M.O.

In der Mappe Rechnung sind mehrere Tabellenblätter vorhanden.

In der Mappe offene Posten ist ist nur ein Blatt vorhanden, da nur die Zahlungseingänge verfolgt werden sollen.

Das Problem ist die Suche nach der ersten freien Zeile im Tabellenblatt  offene Posten um dort die Werte aus Rechnungen per Makro automatisch einzutragen. Es braucht auch offene_Posten nicht automatisch geschlossen werden, da eventuell mehrere Rechnungen eingegeben werden, jeweils in einer neuen Zeile in O_P.

Werte in Rechnungen

Rechnungsdatum: 10.8.2020
Rechnungsnummer: 200809_02
Kundennummer: A002
Zahlungsziel: 14 Tage
Fälligkeitsdatum: 24.08.2020
Summe 200,00 €
Kdnr. RechnNr. Re.Datum Fälligkeitsdatum Summe
A002 200809_02 10.08.20 24.08.2020 200,00 €
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
 
Beste Antwort

Hallo,

das folgende Makro gehört in ein allgemeines Modul der Arbeitsmappe mit den Rechnungen. Das Makro muss aus dem Tabellenblatt ausgeführt werden, aus dem die Rechnungsdaten übertragen werden sollen und die Zielarbeitsmappe (offene Posten2.xlsm) muss offen sein:

Sub rechnung_uebertragen()
Dim wksQuelle As Worksheet
Dim lngEinfZeile As Long

'Quelltabelle festlegen
Set wksQuelle = ThisWorkbook.ActiveSheet

With Workbooks("offene Posten2.xlsm").Worksheets(1)
  'Einfügezeile in Zieltabelle ermitteln
   lngEinfZeile = .Cells(Rows.Count, 1).End(xlUp).Row + 1

   'Daten kopien
   .Cells(lngEinfZeile, 1) = wksQuelle.Range("J16")   'Spalte A
   .Cells(lngEinfZeile, 2) = wksQuelle.Range("J14")   'Spalte B
   .Cells(lngEinfZeile, 3) = wksQuelle.Range("J13")   'Spalte C
   .Cells(lngEinfZeile, 4) = wksQuelle.Range("J18")   'Spalte D
   .Cells(lngEinfZeile, 5) = wksQuelle.Range("I62")   'Spalte E

End With

'Zuweisungen aufheben
Set wksQuelle = Nothing

End Sub

Gruß

M.O.

0 Punkte
Beantwortet von
Perfekte Lösung.

Riesigen Dank an M.O.
...