Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel-Datein Zeile für Zeile vergleichen

Excel-Datein Zeile für Zeile vergleichen
19.10.2017 18:57:16
Dominik
Hallo an alle,
ich habe folgenden Code geschrieben:
Sub MontageanweisungErstellen()
Dim wrbZiel As Workbook
Dim intZeileFilterTabelle As Integer
Dim intZeileMontageanleitung As Integer
Dim intZielSchild As Integer
Dim intQuelleSchild As Integer
Dim strMaschinenTyp As String
Dim intSpalteMaschinenTyp As Integer
Dim strSpeicherPfad As String
strSpeicherPfad = "C:\Users\Dominik\Desktop\Test\" 'Hier Speicherpfad eintragen
'Application.ScreenUpdating = False  '"Flackern" beim ausführen unterdrücken
If Dir(strSpeicherPfad & "Montageanweisung.xls")  "" Then
Set wrbZiel = Workbooks.Open(strSpeicherPfad & "Montageanweisung.xls")
m_strMsgBoxBezeichnung = p_cstrAppTitel 'in dieser Variablen steht ein String den ich  _
deglariert habe
intZeileFilterTabelle = p_cintStartZeile '=3
intZeileMontageanleitung = p_cintStartzeileMontageanweisung '=17
ThisWorkbook.Activate
'Löscht alle Zeilen mit Inhalt der nicht benötigt wird (Wichtig Excel-Listen müssen 1  _
zu 1 übereinstimmen!)
Do While Tabelle1.Cells(intZeileFilterTabelle, 4)  ""
Workbooks("Montageanweisung.xls").Activate
intZielSchild = Workbooks("Montageanweisung.xls").Sheets("Montageanweisung"). _
Cells(intZeileMontageanleitung, 1) 'Nummer aus Ziel-Datei
ThisWorkbook.Activate
intQuelleSchild = Tabelle1.Cells(intZeileFilterTabelle, 4) 'Nummer aus Ziel- _
Datei
If intZielSchild = intQuelleSchild Then
If Tabelle1.Rows(intZeileFilterTabelle).Hidden = True Then
Workbooks(p_cstrMontageanweisungName.xls).Activate
Workbooks(p_cstrMontageanweisungName.xls).Sheets("Montageanweisung"). _
Cells(intZeileMontageanleitung, 1).EntireRow.Delete
intZeileMontageanleitung = intZeileMontageanleitung - 1
End If
Else
intZeileFilterTabelle = intZeileFilterTabelle - 1
intQuelleSchild = Tabelle1.Cells(intZeileFilterTabelle, 4)
MsgBox "Die Reihenfolge in der Excel-Listen stimmt nicht überein. Bitte  _
stellen Sie sicher, dass diese Reihenfolge stimmt. Abbruch in Zeile: " & intZeileFilterTabelle & " bei Schild: " & intQuelleSchild & " Das Programm wird jetzt abgebrochen. Wiederholen Sie den vorgang nach der Überarbeitung!", vbCritical, m_strMsgBoxBezeichnung
End
End If
intZeileMontageanleitung = intZeileMontageanleitung + 1
Loop
'Speichern der Montageanweisung
Workbooks("Montageanweisung.xls").Activate
Workbooks("Montageanweisung.xls").Save
Workbooks("Montageanweisung.xls").Close
MsgBox "Montageanleitung wurde erstellt.", vbInformation, m_strMsgBoxBezeichnung
Else
MsgBox "Bitte zuerst einen komplette Montageanweisung über Tool in das entsprechende  _
Verzeichnis exportieren.", vbCritical, m_strMsgBoxBezeichnung
End If
'Application.ScreenUpdating = True
End Sub

Dieser soll dafür sorgen, dass zwei Excel-Dateien miteinandern verglichen werden. In der ersten _
Datei kann ich Filtern. Dadurch wähle ich sozusagen aus welche Einträge in der Montageanweisung _ später noch vorhanden sein sollen. Alle einträge die nicht benötigt werden, werden durch löschen der Zeile entfernt. Dies funktioniert auch einwandfrei. Mich stört nun aber noch, dass ich durch das hin un her Schalten zwischen den beiden Excel-Dateien ein "flackern" erzeuge. Ich dachte eigentlich ich könnte dies mit

'Application.ScreenUpdating = False

unterdrücken. Das funktioniert soweit auch und der Code ist spührbar schneller. Leider _
funktioniert das Löschen der Zeilen in der Montageanweisung dann aber nicht richtig. Die Bilder _
die in den Zellen sind werden dann nur klein gedrückt und nicht wie zuvor mit der Zeile gelö _
scht. Gibt es eine bessere Methode zwischen den beiden Arbeitsmappen hin und her zuschalten (im Hintergrund) als
.Activate
?
Ich wäre euch sehr dankbar für Hilfe.
Gruß
Dominik
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Datein Zeile für Zeile vergleichen
19.10.2017 19:28:14
onur
Du brauchdst eigentlich nix zu aktivieren, solange du IMMER die komplete korrekte Bezeichnung benutzt, wie z.B.:

Workbooks("Montageanweisung.xls").Sheets("Montageanweisung").usw usw

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige