Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Listen abgleichen
#1
Moin allerseits,
ich brauch mal wieder Hilfe, sonst hack ich mir die Finger wund.
Ich habe eine recht grosse Excel-Datei in der alle Informationen unserer Brandmeldeanlage dokumentiert sind.
Verschiedene Leute nehmen Änderungen an der Anlage vor und diese Änderungen muss ich übernehmen.
Ich kann aus der BMA eine CSV exportieren mit diversen Informationen, die ich dann an meine Datei übertragen muss.
Da die Anlage recht umfangreich ist es manchmal schwierig überhaupt die Unterschiede zu finden.
Nunja, ich hab erst mal eine Bsp.Datei gebastelt in der das Problem grob umrissen wird.
Es gibt wahrscheinlich noch Fragen. Achja, und bitte nur den Code hier posten, weil unsere EDV xlsm blockt.

Igel


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 16,7 KB / Downloads: 12)
Ich kann nicht alles wissen,
aber vieles lernen ! 19
Antworten Top
#2
Hallo,

bitte testen, ob das so richtig ist.

Code:
Option Explicit

Sub uebertrag()
    Dim lngZeile As Long
    Dim strSuch As String
    Dim lngZiZeile As Long
    Dim zelle As Range
    Dim ersteAdresse As String
    lngZiZeile = 1
    For lngZeile = 2 To Tabelle2.Range("A1").End(xlDown).Row 'strSuch =
        If Tabelle2.Cells(lngZeile, 4) = "" Then
            strSuch = Tabelle2.Cells(lngZeile, 3) & "/00"
        Else
            strSuch = Tabelle2.Cells(lngZeile, 3) & "/0" & Tabelle2.Cells(lngZeile, 4)
        End If
        With Tabelle1.Range("B2:B" & Tabelle2.Range("A1").End(xlDown).Row)
            Set zelle = .Find(strSuch, LookIn:=xlValues)
            If Not zelle Is Nothing Then
                ersteAdresse = zelle.Address
                Do
                    lngZiZeile = lngZiZeile + 1
                    Tabelle3.Cells(lngZiZeile, 1) = Tabelle1.Cells(lngZeile, 3)
                    Tabelle3.Cells(lngZiZeile, 2) = Tabelle1.Cells(lngZeile, 4)
                    Tabelle3.Cells(lngZiZeile, 4) = Tabelle1.Cells(lngZeile, 9)
                    Set zelle = .FindNext(zelle)
                Loop While Not zelle Is Nothing And zelle.Address <> ersteAdresse
            End If
        End With
    Next lngZeile
End Sub
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallöchen,

Du könntest den CSV-Export mittels Kopieren - Inhalte einfügen - Werte in ein vorbereitetes Blatt einfügen wo entsprechende Formeln vorbereitet sind, die Dir die Arbeit abnehmen. Wäre dann ohne Code möglich ... Die Frage wäre lediglich, was recht groß ist und welche Performance sich bei einer Formellösung dadurch ergibt. Im Prinzip mal so, nur für B & C Abgleich

Arbeitsblatt mit dem Namen 'CSV-Export'
ABCDEFGHI
1ObjektAbschnittMeldergruppeNr.Text
2120012008001EG BA9 Flur EBZ_6901
31200120080011EG BA9 Flur EBZ_6901

ZelleFormel
I2=ZÄHLENWENN(Peripherie!B:B;C2&"/"&TEXT(D2;"00"))
I3=ZÄHLENWENN(Peripherie!B:B;C3&"/"&TEXT(D3;"00"))
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.7.0) erstellt. ©Gerd alias Bamberg
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Hi,
Danke schon mal für die ersten Ideen.
@Klaus-Dieter.  Habe den Code mal ausprobiert (Tabellenblätter mussten angepasst werden).
                       Unterschiede hat er aber nicht abgeglichen und in Tabelle3 hab ich ziemlich unsinnige Einträge  bekommen.
@schauan.  Formel scheidet wohl aus.
Ich kann nicht alles wissen,
aber vieles lernen ! 19
Antworten Top
#5
Hallo,

jede Antwort und jedes Programm kann nur so gut sein, wie die Anfrage. Habe das, so wie ich es verstanden hatte, an deine Beispieldatei angepasst. Wenn das so nicht funktioniert, musst du wohl noch mal nachliefern.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#6
Ich arbeite dran.
Aber jetzt ist erstmal Mittag
19
Ich kann nicht alles wissen,
aber vieles lernen ! 19
Antworten Top
#7
Hallo,

der erste Teil ist es die Bestandsdaten in ein Dictionary zu laden. Das sollte so gehen:

Code:
Sub Igel_abgleich()
Dim DD As Object: Set DD = CreateObject("Scripting.Dictionary")
Dim Ar

With Sheets("Peripherie")
    Ar = .Cells(1).CurrentRegion
    
    For i = 2 To UBound(Ar)
        DD(Ar(i, 2) & " " & Ar(i, 3) & " " & Ar(i, 4)) = Ar(i, 9)
    Next i
    For Each k In DD.keys
        Debug.Print k, DD(k)
    Next k
End With
End Sub

Der Vergleich mit den CSV-Daten fehlt noch, aber jetzt ist erst einmal Mittagspause.

mfg
Antworten Top
#8
So, frisch gestärkt.
@ Klaus-Dieter.   Hast natürlich recht. Ein paar Kleinigkeiten hab ich jetzt schon ausgebügelt.
Jetzt noch einmal ab dem Punkt wo die Zelle gefunden wurde.
In Peripherie muss der Text(Spalte I ) aus der CSV (Spalte E) übernommen werden.
Dann muss geschaut werden ob Spalten C,D in Peripherie mit A,B in CSV übereinstimmen.
Wenn nicht, dann am Besten Kopie der ganzen Zeile in Tabelle3.
Wenn strsuch nicht gefunden wurde ebenso.
Ich hoffe das ist jetzt besser erklärt.

@Fen Lass dirs schmecken
Ich kann nicht alles wissen,
aber vieles lernen ! 19
Antworten Top
#9
Hallo,

lade bitte eine Datei mit dem Wunschergebnis hoch.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#10
So noch mal etwas genauer.


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 16,76 KB / Downloads: 6)
Ich kann nicht alles wissen,
aber vieles lernen ! 19
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste