Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
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 in Mastertabelle anhand ID abgleichen

Daten in Mastertabelle anhand ID abgleichen
Gonzer
Hallo zusammen,
ich habe zwar eine Idee jedoch reichen mal wieder meine VBA Kenntnisse zur Umsetzung nicht aus... folgendes Problem:
Ich habe eine Tabelle mit Umsätzen für das aktuelle Jahr (Spalte F bis Q), in Spalte A befindet sich ein eindeutiger Identiefier, in Spalte B bis E informationen über Kunde, Verantwortlicher, Ort, usw..
Nun exportiere ich die Daten in unterschiedlicher Excel Files je Verantwortlicher und schicke diese an den jeweiligen zur Aktualisierung. Die aktuelisierten Daten erhalte ich nun zurück und möchte diese über ein Makro einlesen. Vorgehensweise sollte wie folt sein:
- Datei auswählen (Sheets sind identisch aufgebaut)
- Vergleich ID
- wenn ID in Master gefunden Abgleich der Daten in Spalte F bis Q und Importflag mit Datum setzen in Spalte S
So kann ich dann die einzelnen Dateien nacheinander importieren und abgleichen.
Danke im Vorraus!
AW: Daten in Mastertabelle anhand ID abgleichen
02.03.2011 12:23:35
Josef

Hallo ?,
da wäre eine oder besser zwei Beispieldateien hilfreich, mit Beschreibung was, wann, wo und warum abgeglichen werden soll.

Gruß Sepp

AW: Daten in Mastertabelle anhand ID abgleichen
02.03.2011 14:10:34
Gonzer
Hallo Sepp,
hier die Master Datei vereinfacht: https://www.herber.de/bbs/user/73804.xlsx
In diese Datei soll per Makro folgende Datei eingelesen werden: https://www.herber.de/bbs/user/73805.xlsx
Hierzu soll die ID aus der neuen Datei genommen werden und in der Master Datei gesucht werden.
Wurde diese gefunden, so sollen die Werte aus den Spalten F bis Q in die Master Datei übernommen werden. Nach erfolgreicher Übernahme soll am Ende in Spalte S noch ein Importflag mit Datum stehen.
Vielen Dank!
Anzeige
AW: Daten in Mastertabelle anhand ID abgleichen
02.03.2011 17:38:36
Josef

Hallo ?,
nimm mal die verbundenen Zellen in Spalte S raus, sonst kracht das Makro!
Dann probier mal diesen Code.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub collectData()
  Dim objWB As Workbook, objSh As Worksheet, objShTgt As Worksheet
  Dim strFile As String
  Dim lngRow As Long
  Dim vntRet As Variant
  
  On Error GoTo ErrExit
  GMS
  
  Set objSh = ActiveSheet
  
  strFile = Application.GetOpenFilename("Excel Dateien (*.xls; *.xlsx; *.xlsm)," & _
    "*.xls; *.xlsx; *.xlsm")
  If strFile = CStr(False) Then GoTo ErrExit
  
  If strFile = ThisWorkbook.FullName Then GoTo ErrExit
  
  Set objWB = Workbooks.Open(strFile)
  Set objShTgt = objWB.Sheets(objSh.Name)
  
  With objSh
    For lngRow = 2 To Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row)
      If .Cells(lngRow, 1) <> "" Then
        vntRet = Application.Match(.Cells(lngRow, 1), objShTgt.Columns(1), 0)
        If IsNumeric(vntRet) Then
          objShTgt.Cells(vntRet, 6).Resize(1, 12).Copy .Cells(lngRow, 6)
          .Cells(lngRow, 19) = "Update - " & Format(Now, "dd.MM.yy hh:mm:ss")
        End If
      End If
    Next
  End With
  
  objWB.Close False
  
  ErrExit:
  If Err.Number <> 0 Then
    MsgBox "Fehler:" & vbTab & vbLf & vbLf & Err.Description, vbExclamation, "Fehler"
  End If
  
  GMS True
  
  Set objShTgt = Nothing
  Set objSh = Nothing
  Set objWB = Nothing
End Sub


Public Sub GMS(Optional ByVal Modus As Boolean = False)
  
  Static lngCalc As Long
  
  With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Not Modus Then lngCalc = .Calculation
    If Modus And lngCalc = 0 Then lngCalc = -4105
    .Calculation = IIf(Modus, lngCalc, -4135)
    .Cursor = IIf(Modus, -4143, 2)
  End With
  
End Sub


Gruß Sepp

Anzeige
AW: Daten in Mastertabelle anhand ID abgleichen
07.03.2011 10:31:13
Gonzer
Hallo Josef,
Beispiel funktioniert - jedoch bricht er in der eigentlichen Datei in folgender Zeile ab:
Set objShTgt = objWB.Sheets(objSh.Name)
Fehlermeldung: Index ausserhalb des gültigen Bereichs. Weist Du zufällig wieso er den Namne des geöffneten Arbeitsblattes nicht an die Variable übergibt?
AW: Daten in Mastertabelle anhand ID abgleichen
07.03.2011 16:23:19
Josef

Hallo ?,
na da werden wohl die Tabellennamen doch nicht gleich sein!

Gruß Sepp

Anzeige
AW: Daten in Mastertabelle anhand ID abgleichen
07.03.2011 16:49:08
Gonzer
eben nicht... die neue Arbeitsmappe enthält ja das Arbeitsblatt "Mappe1" welches als Name an die Variable übergeben wird. In meinem Master ist jedoch kein Blatt "Mappe1" vorhanden...
bitte kurze Erklärung
07.03.2011 17:09:55
Gonzer
müssen die Tabellennamen nun gleich sein oder nicht?
falls diese nicht gleich sind wie muss ich das Makro umschreiben
AW: Daten in Mastertabelle anhand ID abgleichen
07.03.2011 17:09:59
Josef

Hallo ?,
wenn in der datei nur ein Blatt vorhanden ist, dann ändere
Set objShTgt = objWB.Sheets(objSh.Name)
ab in
Set objShTgt = objWB.Sheets(1)


Gruß Sepp

Anzeige
AW: Daten in Mastertabelle anhand ID abgleichen
08.03.2011 08:53:25
Gonzer
Hallo Sepp,
mit dem .....objWB.Sheets(1) funktioniert es! Vielen Dank!

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige