Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus einer Datei in andere Datein kopieren

Daten aus einer Datei in andere Datein kopieren
17.10.2017 16:00:53
Thomas
Hallo zusammen, als VBA neuling stehe ich momentan vor folgendem Problem.
Ich habe 1 mal das Haupt File, in welchem ich in den Zellen B5 bis G5 sowie B6 bis G6 Daten eingegeben habe.
Dann habe ich das File Bank1, in welchem die Daten vom Hauptfile automatisch eingetragen werden. Und zwar würde ich gerne ein VBA Makro haben, welches im Main File in der Zelle B5 schaut welche Firma das es ist und in Zelle C5 welche Bank. Dann soll es die Zellen D5 bis G5 in die entsprechende Datei "Bank 1" eintragen, und zwar jenachdem ob es Firma 1 oder Firma 2 ist in das entsprechende dazugehörige Tabellenblatt. (Bank 1 soll er suchen weil ich auch noch eine Datei Bank 2 habe mit Firma 1 und 2, welches ich jedoch nicht hochgeladen habe).
Heisst also, wenn ich Firma 1 habe mit Bank 1 soll er in der Datei Bank 1 beim Tabellenblatt Firma 1 in der Zeile B11 das Datum 17.10.2017 reinkopieren, in der Zelle C10 den Tex "Kauf XY", dann schauen ob es die Währung USD oder EUR ist und ob es ein Kauf oder verkauf ist, dann den Betrag entsprechende im Soll oder Haben verbuchen.
Bei einer erneuten verbuchung einer neuen transaktion sollte das makro dann ein feld runter gehen.
könnt ihr mir da behilflich sein?
https://www.herber.de/bbs/user/117027.xlsx
https://www.herber.de/bbs/user/117028.xlsx

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus einer Datei in andere Datein kopieren
17.10.2017 16:40:52
Hajo_Zi
das geht nicht, da eine XLSX Datei kein Makro enthalten kann.
Ich sehe keinen Grund eine Datei 2x zu speichern. Ich führe keine Liste unter welchem Dateinamen ich die Datei gespeichert habe.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: Daten aus einer Datei in andere Datein kopieren
18.10.2017 08:51:35
Peter(silie)
Hallo,
hier deine Mappe: https://www.herber.de/bbs/user/117036.xlsm
Du musst die Pfade zu den Bank Dateien auf dich anpassen!
Das Makro ist nicht optimiert, evtl. nicht fehlerfrei und wurde von mir
nur rudimentär getestet.
Hier nur Code:
Option Explicit
Private bank_1 As Workbook
Private bank_2 As Workbook
Private Const bank1_Path As String = "C:\Dein\Pfad\zur\Bankdatei 1.xlsx"
Private Const bank2_Path As String = "C:\Dein\Pfad\zur\Bankdatei 2.xlsx"
Sub Transfer_Data()
Dim lRow, counter_1, counter_2 As Long
Dim array_1, array_2 As Variant
Dim ws As Worksheet
Dim rng As Range
If Try_To_Access_Sheet Then
Set ws = ThisWorkbook.Sheets("Transaktionen")
With ws
lRow = .Cells(.Rows.Count, 3).End(xlUp).Row
Set rng = .Range(.Cells(5, 3), .Cells(lRow, 3))
End With
'//Get the Size of the arrays
counter_1 = CountOccurence("Bank 1", rng): If counter_1 >= 1 Then ReDim array_1( _
counter_1 - 1)
counter_2 = CountOccurence("Bank 2", rng): If counter_2 >= 1 Then ReDim array_2( _
counter_2 - 1)
'//Save range values in the arrays
Get_Bank_Ranges array_1, array_2
'//Put data into the files
If Not IsEmpty(array_1) Then To_Bank1 array_1
If Not IsEmpty(array_2) Then To_Bank2 array_2
bank_1.Close True
bank_2.Close True
Set rng = Nothing
Set ws = Nothing
Else
MsgBox "Bank Dateien konnten nicht geöffnet werden"
End If
End Sub
Private Function Try_To_Access_Sheet() As Boolean
Dim wb1, wb2 As Workbook
On Error GoTo ErrHandler
Set bank_1 = Workbooks.Open(bank1_Path)
Set bank_2 = Workbooks.Open(bank2_Path)
Try_To_Access_Sheet = True
Exit Function
ErrHandler:
Set bank_1 = Nothing: Set bank_2 = Nothing
End Function
Private Function CountOccurence(ByVal Of_ As String, ByVal rng As Range)
Dim c As Range
For Each c In rng
If c.Value = Of_ Then
CountOccurence = CountOccurence + 1
End If
Next c
End Function
Private Function Get_Bank_Ranges(ByRef array_1, array_2 As Variant) As Boolean
Dim lRow, counter_1, counter_2 As Long
Dim rng, tmp, c As Range
Dim ws As Worksheet
counter_1 = 0: counter_2 = 0
Set ws = ThisWorkbook.Sheets("Transaktionen")
With ws
lRow = .Cells(.Rows.Count, 3).End(xlUp).Row
Set rng = .Range(.Cells(5, 3), .Cells(lRow, 3))
For Each c In rng
If Not c Is Nothing And c.Value  "" Then
Set tmp = .Range(.Cells(c.Row, 2), .Cells(c.Row, 7))
If c.Value = "Bank 1" Then array_1(counter_1) = tmp.Value: counter_1 =  _
counter_1 + 1
If c.Value = "Bank 2" Then array_2(counter_2) = tmp.Value: counter_2 =  _
counter_2 + 1
End If
Next c
End With
End Function
Private Function To_Bank1(ByVal array_ As Variant)
Dim values_, varItem, tmp As Variant
Dim ws_1, ws_2 As Worksheet
Dim lRow As Long
Set ws_1 = bank_1.Sheets("Firma 1")
Set ws_2 = bank_1.Sheets("Firma 2")
For Each varItem In array_
tmp = varItem
If tmp(1, 1) = "Firma 1" Then
With ws_1
lRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(lRow, 2).Value = tmp(1, 4)
.Cells(lRow, 3).Value = tmp(1, 3)
If tmp(1, 6) = "USD" Then .Cells(lRow, 5).Value = tmp(1, 5)
If tmp(1, 6) = "EUR" Then .Cells(lRow, 7).Value = tmp(1, 5)
End With
ElseIf tmp(1, 1) = "Firma 2" Then
With ws_2
lRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(lRow, 2) = tmp.Cells(1, 4).Value
.Cells(lRow, 3).Value = tmp(1, 3)
If tmp(1, 6) = "USD" Then .Cells(lRow, 5) = tmp(1, 5)
If tmp(1, 6) = "EUR" Then .Cells(lRow, 7) = tmp(1, 5)
End With
End If
Next varItem
Set ws_1 = Nothing: Set ws_2 = Nothing
End Function
Private Function To_Bank2(ByVal array_ As Variant)
Dim values_, varItem, tmp As Variant
Dim ws_1, ws_2 As Worksheet
Dim lRow As Long
Set ws_1 = bank_2.Sheets("Firma 1")
Set ws_2 = bank_2.Sheets("Firma 2")
For Each varItem In array_
tmp = varItem
If tmp(1, 1) = "Firma 1" Then
With ws_1
lRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(lRow, 2).Value = tmp(1, 4)
.Cells(lRow, 3).Value = tmp(1, 3)
If tmp(1, 6) = "USD" Then .Cells(lRow, 5).Value = tmp(1, 5)
If tmp(1, 6) = "EUR" Then .Cells(lRow, 7).Value = tmp(1, 5)
End With
ElseIf tmp(1, 1) = "Firma 2" Then
With ws_2
lRow = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(lRow, 2) = tmp.Cells(1, 4).Value
.Cells(lRow, 3).Value = tmp(1, 3)
If tmp(1, 6) = "USD" Then .Cells(lRow, 5) = tmp(1, 5)
If tmp(1, 6) = "EUR" Then .Cells(lRow, 7) = tmp(1, 5)
End With
End If
Next varItem
Set ws_1 = Nothing: Set ws_2 = Nothing
End Function

Anzeige
AW: Daten aus einer Datei in andere Datein kopieren
18.10.2017 11:44:55
Thomas
Das sieht ja mal schon ganz super aus, vielen vielen Dank für den Code!
Was kann ich machen damit mein File bank1 offen bleibt? also wenn ich es verbuche möchte ich gleich sehen das es im file ist, und nicht noch extra mein file manuell öffnen (schliessen kann ich es dann schon manuell)
AW: Daten aus einer Datei in andere Datein kopieren
18.10.2017 12:08:52
Peter(silie)
Hallo,
folgendes schließt und speichert die Dateien:

bank_1.Close True
bank_2.Close True
Lösche obiges einfach aus dem Code, dann bleiben die Dateien offen.
AW: Daten aus einer Datei in andere Datein kopieren
18.10.2017 15:14:26
Thomas
Funktioniert ...Firma 1 funktioniert also ohne probleme ...nur wenn ich dann die Firma auf Firma 2 ändere zeigts mir dieses code hier gelb an:
.Cells(lRow, 2) = tmp.Cells(1, 4).Value
Code kann im haltemodus nicht ausgeführt werden
Anzeige
AW: Daten aus einer Datei in andere Datein kopieren
19.10.2017 15:11:32
Thomas
könnte mir jemand mal den code genau erklären? stehe überall noch ein wenig a und wäre sehr dankbar dafür
Gerade etwas stressig, sorry
19.10.2017 16:58:44
Peter(silie)
Hallo,
habe momentan etwas stress, muss die Hilfe und erklärung also auf das Wochenende verlegen,
ich hoffe so lange kannst du noch warten :)
AW: Gerade etwas stressig, sorry
23.10.2017 16:01:19
Thomas
Ja klar, kein Stress :-)

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige