Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus einer anderen Mappe synchronisieren

Daten aus einer anderen Mappe synchronisieren
27.08.2014 14:55:46
jafa
Hallo,
ich habe zwei Mappen, eine für die Eingabe (92319.xlsm) und eine zweite für die Überwachung (92320.xlsm). Die Daten aus der Eingabe sollen automatisch mit der ersten Tabelle der Überwachung synchronosiert werden. Ich habe mich schon an einer VBA-Lösung versucht, aber meine Kenntnisse sind leider zu gering um zu einem funktionierenden Ergebniss zu kommen.
Ich habe die Dateien mit hochgeladen.
https://www.herber.de/bbs/user/92319.xlsm
https://www.herber.de/bbs/user/92320.xlsm
In der Datei Eingabe ist ebenfalls eine VBA-Lösung hinterlegt, dass bei Eingabe in Spalte B ein Datum in A erzeugt, auf das nicht zugegriffen werden kann. Ich möchte aber alle Daten, die in den Spalten A bis K stehen automatisch in die Datei Überwachung übertragen haben.
Für Hilfe bin ich sehr dankbar.
Mit freundlichen Grüßen...

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus einer anderen Mappe synchronisieren
27.08.2014 16:27:07
fcs
Hallo Jafa,
synchronisieren heist bei dir -wenn ich es richtig verstanden habe- dass die Überwachungsdatei auf den Stand der Eingabedatei gebracht wird. D.h. nach dem Synchroniseren haben beide Dateien den gleichen Inhalt.
Wann soll denn synchronisiert werden?
Nach jeder Eingabe? Das wäre der leichte Wahnsinn.
Nach Anwender-Befehl (Schaltfläche)?
Vor dem Schließen der Eingabedatei?
Vor- oder nach dem Speichern der Eingabedatei?
Zeitgesteuert in bestimmten Abständen?
Wie soll denn synchronisiert werden?
Einzelzeilenvergleich? Kann dann Auftrags-Nr+Positionsnr. als Datensatz-ID verwendet werden?
oder
Inhalt in Überwachung löschen und Inhalt aus Eingabe nach Überwachung kopieren?
Gruß
Franz

Anzeige
AW: Daten aus einer anderen Mappe synchronisieren
27.08.2014 17:32:46
jafa
Hallo Franz,
danke für die Antwort.
Ja, nach dem synchronisieren sollen Überwachungsdatei und Eingabdatei auf dem gleichen Stand sein.
Es wäre nicht schlecht, wenn dies über eine Schaltfläche/Button in der Überwachungsdatei geschieht. Die Aktualisierung kann/sollte erst dann erfolgen, wenn die Eingabedatei gespeichert bzw. geschlossen ist und dann der Button benutzt wird.
Als Datensatz-ID kann die Auftrags-Nr. verwendet werden und neue Eingaben sollten auf die vorherigen in der Überwachungsdatei folgen.
Danke nochmals.
Mit freundlichen Grüßen...

AW: Daten aus einer anderen Mappe synchronisieren
28.08.2014 11:01:01
fcs
Hallo Jafa,
hier ein Makro, dass die Daten in der Überwachungsdatei mit den Daten in der Eingabedatei abgleicht.
Als Schaltfläche fügst du im Tabellenblatt eine Schaltfläche aus den Formular-Steuerelementen ein und weist der Schaltfläche das Makro zu.
Gruß
Franz
'Makro in einem allgemeinen Modul der Überwachungsarbeitsmappe
Sub DatenHolenAusEingabeMappe()
Dim Zeile_Q As Long, Spalte_Q As Long
Dim ZeileMax As Long
Dim Zeile_Z As Long
Dim rngTreffer As Range, rngSuche As Range, strAdr1 As String, bolNeu As Boolean
Dim varPos, varPosNr
Dim wkbQuelle As Workbook, wksQuelle As Worksheet, strQuelle As String, _
strVerzQuelle As String
Dim wkbZiel As Workbook, wksZiel As Worksheet
strQuelle = "Eingabe.xlsm" 'Name der Eingabe-Datei            - ggf. anpassen
strVerzQuelle = ThisWorkbook.Path 'Verzeichnis Eingabe-Datei  - ggf.anpassen
'prüfen, ob Eingabedatei geöffnet ist
For Each wkbQuelle In Application.Workbooks
If LCase(wkbQuelle.Name) = LCase(strQuelle) Then
MsgBox "Die Eingabe-Datei ist noch geöffnet, bitte Datei erst speichern und schließen"
wkbQuelle.Activate
GoTo Beenden
End If
Next
Set wkbZiel = ThisWorkbook
Set wksZiel = wkbZiel.Worksheets(1)
'Quelle schreibgeschützt öffnen
Set wkbQuelle = Workbooks.Open(strVerzQuelle & "\" & strQuelle)
Set wksQuelle = wkbQuelle.Worksheets(1)
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
With wksQuelle
ZeileMax = .Cells(.Rows.Count, 2).End(xlUp).Row
'Zeilen in Quelle (Eingabeblatt) abarbeiten
For Zeile_Q = 6 To ZeileMax
varPos = .Cells(Zeile_Q, 2).Text
varPosNr = .Cells(Zeile_Q, 3).Value
bolNeu = True
With wksZiel
Zeile_Z = .Cells(.Rows.Count, 2).End(xlUp).Row
If Zeile_Z > 5 Then
Set rngSuche = .Range(.Cells(6, 2), .Cells(Zeile_Z, 2))
'Position in Zieltabelle suchen
Set rngTreffer = rngSuche.Find(what:=varPos, LookIn:=xlValues, _
lookAT:=xlWhole)
If rngTreffer Is Nothing Then
'Position ist noch nicht vorhanden
Zeile_Z = Zeile_Z + 1
Else
strAdr1 = rngTreffer.Address '1. Fundstelle merken
Do
If rngTreffer.Offset(0, 1) = varPosNr Then
'Position und Positions-Nr. ist vorhanden
Zeile_Z = rngTreffer.Row
bolNeu = False
Exit Do
End If
'Suche nach Position wiederholen
Set rngTreffer = rngSuche.FindNext(After:=rngTreffer)
If rngTreffer.Address = strAdr1 Then
'Position und Positions-Nr. ist nicht vorhanden
Zeile_Z = Zeile_Z + 1
Exit Do
End If
Loop
End If
Else
'1. Eintrag in Überwachungsblatt
Zeile_Z = 6
End If
End With
'Werte Spalte_Q A bis K ( 1 bis 11) nach Ziel übertragen
For Spalte_Q = 1 To 11
Select Case Spalte_Q
Case 2, 3
If bolNeu = True Then
wksZiel.Cells(Zeile_Z, Spalte_Q).Value = .Cells(Zeile_Q, Spalte_Q).Value
End If
Case Else
wksZiel.Cells(Zeile_Z, Spalte_Q).Value = .Cells(Zeile_Q, Spalte_Q).Value
End Select
Next Spalte_Q
Next Zeile_Q
End With
wkbQuelle.Close savechanges:=False
'Daten in Zieltabelle sortieren _
aufsteigend nach Eingabedatum, aufsteigend nach Auftrags-/Positionsnummer
With wksZiel
ZeileMax = .Cells(.Rows.Count, 2).End(xlUp).Row
If ZeileMax > 6 Then
With .Range(.Cells(5, 1), .Cells(ZeileMax, 11))
.Sort Key1:=.Range("A1"), Order1:=xlAscending, _
Key2:=.Range("B1"), Order2:=xlAscending, _
Key3:=.Range("C1"), Order3:=xlAscending, Header:=xlYes
End With
End If
End With
Beenden:
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set wkbZiel = Nothing: Set wksZiel = Nothing: Set wkbQuelle = Nothing: Set wksQuelle =  _
Nothing
Set rngSuche = Nothing: Set rngTreffer = Nothing
End Sub

Anzeige
AW: Daten aus einer anderen Mappe synchronisieren
28.08.2014 11:29:35
jafa
Hallo Franz,
vielen Dank für die Antwort und das Makro funktioniert super!!!
Mit freundlichen Grüßen...

AW: Daten aus einer anderen Mappe synchronisieren
28.08.2014 15:25:08
jafa
Hallo Franz,
ich hätte da noch eine Frage. Ist es möglich den Code so zu erweitern, dass man mit ihm auf weitere Mappen zugreifen kann oder ist dies nicht so einfach möglich?!
Wenn ja, was müsste dazu an welcher Stelle eingefügt werden?
Danke nochmals für die Hilfe!
Mit freundlichen Grüßen...

AW: Daten aus einer anderen Mappe synchronisieren
28.08.2014 16:08:45
fcs
Hallo Jafa,
Ist es möglich den Code so zu erweitern, dass man mit ihm auf weitere Mappen zugreifen kann oder ist dies nicht so einfach möglich?!
Ja, wenn du die Dateinamen/Verzeichnisse und Blattnamen kennst, dann ist das Öffnen und Bearbeiten/Verarbeiten weiterer Dateien möglich.
"Einfach" ist relativ - für mich wahrscheinlich einfach, für dich im Moment schwierig bis unmöglich.
Wenn ja, was müsste dazu an welcher Stelle eingefügt werden?
Das kann man nicht pauschal sagen. Das hängt dann davon ab wie sich Zieldatei/-tabelle und Quelldatei/-tabelle bei den Aktionen ändern.
Gruß
Franz
Gruß
Franz

Anzeige
AW: Daten aus einer anderen Mappe synchronisieren
29.08.2014 14:17:13
jafa
Ok, danke. Mit der Antwort ist mir fürs erste geholfen.
Mit freundlichen Grüßen...

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige