Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1720to1724
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

SVerweis in meinen VBA-Code integrieren

SVerweis in meinen VBA-Code integrieren
15.11.2019 10:52:53
Michael
Hallo zusammen,
ich möchte einen SVerweis in meine Formel einbauen, und bin mir unschlüssig, wie ich das machen soll. Hintergrund ist, dass bereits eine flexible Auswahl der Spalte (zIr Lösung von Problemen wie: in Datei1 ist Überschrift1 in Spalte 4 und in Datei2 ist Überschrift 1 in Spalte 8) eingebaut ist und ich zurzeit in der Programmierung erfolglos bin, dieses für die Zeilen zu übernehmen - hier wäre der Primärschlüssel bzw. die Idee in Spalte 1.
Über Ideen wie ich das anstellen kann? Anbei der Code:
Sub DateiVergleich()
Application.ScreenUpdating = False 'Bildschirmbewegungen des VBA-Codes werden ausgeblendet
Dim ws1Row As Long, ws2Row As Long, ws1Col As Long, ws2Col As Long
Dim maxrow As Long, maxcol As Long
Dim colval1 As String, colval2 As String
Dim Row As Long, Col As Long
Dim diffcnt As Long, report As Workbook, hdr As String
Dim MapColumn() As Long, b As Boolean
Dim reportWS As Worksheet
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim VergleichsTool2 As Workbook
Dim ColNew As Long
Dim ColTitel As String
Dim Zähler1 As Long
'Definition der Variablen ist abgeschlossen
Set VergleichsTool2 = ActiveWorkbook
Set ws1 = VergleichsTool2.Worksheets("Datei1")
Set ws2 = VergleichsTool2.Worksheets("Datei2")
'Die verwendeten Zeilen und Spalten der Worksheets werden berechnet
With ws1.UsedRange: ws1Row = .Rows.Count: ws1Col = .Columns.Count: End With
With ws2.UsedRange: ws2Row = .Rows.Count: ws2Col = .Columns.Count: End With
'Die Berechnung der verwendeten Zeile und Spalten der Worksheets ist abgeschlossen
'Die Berechnung der maximalen Zeile und Spalte ist abgeschlossen
maxrow = WorksheetFunction.Max(ws1Row, ws2Row)
maxcol = WorksheetFunction.Max(ws1Col, ws2Col)
'Die maximale Zeile und Spalten aus den beiden Worksheets werden berechnet
'Vorarbeit für korrekte Spaltenzuordnung
ReDim MapColumn(maxcol): For Col = 1 To maxcol: MapColumn(Col) = -1: Next
'Vorarbeit für korrekte Spaltenzuordnung ist abgeschlossen
'Sub für die korrekte Spaltenzuordnung beginnt
GoSub SetColumns
'Sub für die korrekte Spaltenzuordnung ist abgeschlossen
diffcnt = 0 'Count für Fehler
For Col = 1 To maxcol
For Row = 1 To maxrow
If MapColumn(Col) -1 Then 'If-Bedigung, die kontrolliert, ob der Wert in beiden Worksheets vorhanden ist
colval1 = ws1.Cells(Row, Col).Formula
colval2 = ws2.Cells(Row, MapColumn(Col)).Formula
If colval1 colval2 Then 'If-Bedigung, um zu überprüfen, ob es zu Abweichungen in den Zellen kommt. Wenn das der Fall ist, werden die folgenden Aktionen durchgeführt:
diffcnt = diffcnt + 1 'Anzahl der Fehler steigt um 1
VergleichsTool2.Worksheets(2).Select
Cells(Row, MapColumn(Col)).Interior.Color = 255 'Rote Markierung der Zelle
Cells(Row, MapColumn(Col)).Font.ColorIndex = 1 'Schwarze Markierung des Textes
Cells(Row, MapColumn(Col)).Font.Bold = True 'Fette Markierung des Textes
ColNew = MapColumn(Col)
ColTitel = Worksheets("Datei2").Cells(1, MapColumn(Col))
Call Fillreport(diffcnt, colval1, colval2, Row, Col, ColNew, ColTitel)
End If ' Überprüfung ist abgeschlossen
End If
Next Row
Next Col
LG
Darius

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Lade besser eine Beispieldatei hoch
15.11.2019 11:02:38
NoNet
Hallo Darius,
der Code liest sich fast so spannend wie ein Telefonbuch :-/
Ohne Tabelle grenzt das schon fast an Phantasie (oder Phantastereien ?)
Lade doch bitte eine entsprechene Beispielmappe hoch und verlinke diese in Deinem Beitrag - daran kann man wesentlich besser arbeiten als an diesem "trockenene Code" - Danke.
Salut, NoNet

Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum

Exceltreffen 12.-14.06.2020 in Freiberg/Sachsen

http://www.exceltreffen.de/index.php?page=291


Anmeldungen sind noch bis 31.03.2020 möglich ! - Schau doch mal rein !

Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige