Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1732to1736
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

Abgleich von Daten

Abgleich von Daten
18.01.2020 13:55:36
Daten
Hallo Zusammen,
ich habe folgendes Problem. Beim suchen nach einer Lösung wird leider immer nur das suchen mit einem gleichen Begriff angezeigt. Ich habe aber eine Liste mit ca. 500 Nummern die sich wöchentlich ändern. Diese möchte ich mit meiner Datenbank abgleichen ob diese aktiv sind und falls das so eine celle von dem wöchentlichen Report in meine Datanbank kopieren die das Datum der veröffentlichung enthält.
Dazu habe ich zwei Beispieldaten mit natürlich bedeutend weniger Zeilen hochgeladen. Wegen mir muss ich das Dokumen "Tosearch" auch nicht offen haben, das kann alles im hintergrund ablaufen.
Ich habe in dem Dokumen "Idea" in Spalte G unterschiedliche nummern die ich in dem andern Dokument in Spalte G abgleichen möchte. Falls die Nummer vorhanden ist soll er aus dem Dokument to search die Zelle Z in das Dokument "Idea" in Zelle P kopieren.
Hoffentlich kann mich jemand dabei unterstützen. Für einen Suchbegriff ist das ganze kein Problem auch mit Autofilter läuft es, aber leider schaffe ich es nicht eine Spalte als Suchbegriffe zu verwenden.
Vielen Dank für den Support.
Anbei die beiden Beispieldatein
https://www.herber.de/bbs/user/134499.xlsm
https://www.herber.de/bbs/user/134500.xlsx

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abgleich von Daten
18.01.2020 14:52:38
Daten
Hallo Stefan,
teste mal:
Option Explicit

Public Sub Abgleich()
    
    Const WORKBOOK_NAME As String = "to search.xlsx"
    
    Dim objWorkbook As Workbook, objWorksheet As Worksheet
    Dim objSearchCell As Range, objFindCell As Range
    Dim blnIsOpen As Boolean
    
    With Application
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    End With
    
    For Each objWorkbook In Workbooks
        If objWorkbook.Name = WORKBOOK_NAME Then
            blnIsOpen = True
            Exit For
        End If
    Next
    
    If Not blnIsOpen Then _
        Set objWorkbook = Workbooks.Open(Filename:= _
        ThisWorkbook.Path & "\" & WORKBOOK_NAME, ReadOnly:=True)
    
    Set objWorksheet = objWorkbook.Worksheets("Current Week")
    
    With ThisWorkbook.Worksheets("TUL")
        
        For Each objSearchCell In .Range(.Cells(2, 7), .Cells(.Rows.Count, 7).End(xlUp))
            
            If Not IsEmpty(objSearchCell.Value) Then
                
                Set objFindCell = objWorksheet.Columns(7).Find( _
                    What:=objSearchCell, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
                
                If Not objFindCell Is Nothing Then Call objFindCell.Offset(0, 19).Copy( _
                    Destination:=objSearchCell.Offset(0, 11))
                
            End If
        Next
    End With
    
    If Not blnIsOpen Then Call objWorkbook.Close(SaveChanges:=False)
    
    Set objWorksheet = Nothing
    Set objWorkbook = Nothing
    Set objFindCell = Nothing
    
    With Application
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub

Ich bin davon ausgegangen, dass sich beide Mappen im selben Ordner befinden.
Gruß
Nepumuk
Anzeige
AW: Abgleich von Daten
18.01.2020 15:35:18
Daten
Hallo Nepumuk,
es funktioniert, vielen vielen dank.
Was müsste man ändern, wenn die Dokumente nicht im gleifen Pfad liegen?
AW: Abgleich von Daten
18.01.2020 15:37:15
Daten
Hallo Stefan,
ein Beispiel:
If Not blnIsOpen Then _
    Set objWorkbook = Workbooks.Open(Filename:= _
    "H:\Ordner\" & WORKBOOK_NAME, ReadOnly:=True)

Gruß
Nepumuk
Anzeige
AW: Abgleich von Daten
18.01.2020 15:54:58
Daten
Herzlichen dank für die schnelle Unterstützung.
Besteht die möglichkeit zu dem ganzen eine erklärung zu bekommen.
Einzelne zeilen verstehe ich nicht das da genau passiert?
Muss nicht hier im Forum in schriftform sein ;)
Gruß Stefan
AW: Abgleich von Daten
18.01.2020 15:58:48
Daten
Hallo Stefan,
dann frag zu einzelnen Zeilen konkret.
Gruß
Nepumuk
AW: Abgleich von Daten
18.01.2020 16:59:29
Daten
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
Das verstehe ich nicht was da passiert?
Bis zu wie vielen Zeilen funktioniert das ganze?
Bezüglich Suchbegriffen und Quellzellen?
Danke schonmal im Vorraus
Gruuß Stefan
Anzeige
AW: Abgleich von Daten
18.01.2020 17:09:46
Daten
Hallo Stefan,
Calculation: Die Berechnung von Formeln auf manuell setzen.
EnableEvents: Automatische Ereignisse wie z.B. Worksheet_Change oder Worksheet_SelectionChange unterdrücken.
ScreenUpdating: Die Aktualisierung des Bildschirms abschalten.
Die Anzahl der Zeilen ist nur durch die Anzahl der Zeilen im Tabellenblatt begrenzt.
Gruß
Nepumuk
AW: Abgleich von Daten
21.01.2020 17:08:00
Daten
Hallo Nepumuk,
ich habe doch noch ein proble, das makro kopiert die formeln und nicht den wert.
Kann man da noch was hinzufuegen, ich schaffe es leider mit den infos im internet nicht.
Er soll nur den wert aus dem Vlookup kopieren und nicht formel in der zelle, weil dann der bezug nicht mehr besteht.
Anzeige
AW: Abgleich von Daten
21.01.2020 17:15:46
Daten
.Value oder .PasteSpecial Paste:=xlValues
es hat leider nicht funktioniert oder ich habe es an der falschen zeile positioniert.
Danke fuer die Hilfe
AW: Abgleich von Daten
21.01.2020 17:15:54
Daten
Hallo Stefan,
so:
Option Explicit

Public Sub Abgleich()
    
    Const WORKBOOK_NAME As String = "to search.xlsx"
    
    Dim objWorkbook As Workbook, objWorksheet As Worksheet
    Dim objSearchCell As Range, objFindCell As Range
    Dim blnIsOpen As Boolean
    
    With Application
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    End With
    
    For Each objWorkbook In Workbooks
        If objWorkbook.Name = WORKBOOK_NAME Then
            blnIsOpen = True
            Exit For
        End If
    Next
    
    If Not blnIsOpen Then _
        Set objWorkbook = Workbooks.Open(Filename:= _
        ThisWorkbook.Path & "\" & WORKBOOK_NAME, ReadOnly:=True)
    
    Set objWorksheet = objWorkbook.Worksheets("Current Week")
    
    With ThisWorkbook.Worksheets("TUL")
        
        For Each objSearchCell In .Range(.Cells(2, 7), .Cells(.Rows.Count, 7).End(xlUp))
            
            If Not IsEmpty(objSearchCell.Value) Then
                
                Set objFindCell = objWorksheet.Columns(7).Find( _
                    What:=objSearchCell, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
                
                If Not objFindCell Is Nothing Then
                    Call objFindCell.Offset(0, 19).Copy
                    Call objSearchCell.Offset(0, 11).PasteSpecial(Paste:=xlPasteValuesAndNumberFormats)
                End If
                
            End If
        Next
    End With
    
    If Not blnIsOpen Then Call objWorkbook.Close(SaveChanges:=False)
    
    Set objWorksheet = Nothing
    Set objWorkbook = Nothing
    Set objFindCell = Nothing
    
    With Application
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub

Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige