Daten aus zwei Excel vergleichen (Tab1spalte N mit Tab2spalte N) färben

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von RyoSaki.

    Daten aus zwei Excel vergleichen (Tab1spalte N mit Tab2spalte N) färben

    Ich kann nicht mehr...
    Normalerweise soll er in der Tabelle 1 die 2 Zeile in Spalte N überprüfen was zb. die Nummer 12345678 ist ob es diese Nummer in Tabelle 2 Spalte N auch zu finden ist WENN JA soll er in beiden Tabellen dieses Feld makieren und nochmals den Preis makieren der in spalte AC ist bei beiden Tabellen

    Das Problem ist alles wird grün gemacht und in der einen wird dann die hälte wieder blau gemacht...ich weiß nicht mehr woran es liegen kann

    VB.NET-Quellcode

    1. ​Imports Excel = Microsoft.Office.Interop.Excel
    2. Imports System.Drawing
    3. Public Class Form1
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. ' Öffne Dialogfenster, um die beiden Excel-Dateien auszuwählen
    6. Dim openFileDialog1 As New OpenFileDialog()
    7. openFileDialog1.Filter = "Excel-Dateien (*.xlsx)|*.xlsx"
    8. openFileDialog1.Multiselect = True
    9. If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
    10. ' Speichere die ausgewählten Dateinamen
    11. Dim file1 As String = openFileDialog1.FileNames(0)
    12. Dim file2 As String = openFileDialog1.FileNames(1)
    13. ' Öffne Excel-Anwendung und Dateien
    14. Dim xlApp As Excel.Application = Nothing
    15. Dim xlWorkbook1 As Excel.Workbook = Nothing
    16. Dim xlWorkbook2 As Excel.Workbook = Nothing
    17. Dim xlWorksheet1 As Excel.Worksheet = Nothing
    18. Dim xlWorksheet2 As Excel.Worksheet = Nothing
    19. Try
    20. xlApp = New Excel.Application()
    21. xlWorkbook1 = xlApp.Workbooks.Open(file1)
    22. xlWorkbook2 = xlApp.Workbooks.Open(file2)
    23. ' Vergleiche die Spalten in den Tabellen
    24. xlWorksheet1 = CType(xlWorkbook1.Worksheets(1), Excel.Worksheet)
    25. xlWorksheet2 = CType(xlWorkbook2.Worksheets(1), Excel.Worksheet)
    26. Dim lastRow1 As Integer = xlWorksheet1.Cells(xlWorksheet1.Rows.Count, "N").End(Excel.XlDirection.xlUp).Row
    27. Dim lastRow2 As Integer = xlWorksheet2.Cells(xlWorksheet2.Rows.Count, "N").End(Excel.XlDirection.xlUp).Row
    28. For i As Integer = 2 To lastRow1 ' Schleife durch alle Zeilen in Tabelle 1
    29. Dim searchValue As String = xlWorksheet1.Range("N" & i).Value
    30. Dim searchRange As Excel.Range = xlWorksheet2.Range("N2:N" & lastRow2)
    31. Dim foundValues As Excel.Range = searchRange.Find(searchValue, LookIn:=Excel.XlFindLookIn.xlValues, MatchCase:=False, SearchFormat:=False)
    32. If foundValues IsNot Nothing Then ' Wenn die Sendungsnummer gefunden wurde
    33. For Each foundValue As Excel.Range In foundValues ' Schleife durch alle gefundenen Zeilen in Tabelle 2
    34. Dim foundRow As Integer = foundValue.Row
    35. Dim price1 As Double = xlWorksheet1.Range("AC" & i).Value
    36. Dim price2 As Double = xlWorksheet2.Range("AC" & foundRow).Value
    37. If price1 = price2 Then ' Wenn die Preise übereinstimmen
    38. xlWorksheet1.Rows(i).Interior.ColorIndex = 4 ' Makiere Zeile in Tabelle 1
    39. xlWorksheet2.Rows(foundRow).Interior.ColorIndex = 4 ' Makiere Zeile in Tabelle 2
    40. xlWorksheet1.Range("N" & i & ":AC" & i).Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue)
    41. End If
    42. Next
    43. End If
    44. Next
    45. ' Speichere Änderungen und schließe Excel-Anwendung und Dateien
    46. xlWorkbook1.Save()
    47. xlWorkbook2.Save()
    48. xlWorkbook1.Close()
    49. xlWorkbook2.Close()
    50. xlApp.Quit()
    51. Catch ex As Exception
    52. MessageBox.Show("Ein Fehler ist aufgetreten: " & ex.Message)
    53. End Try
    54. End If
    55. End Sub
    56. End Class
    Bei Übereinstimmung der Artikel(?)nummer und Preis werden die betroffenen Zeilen aus Tabelle1 und 2 im Ganzen grün. Steht ja so in Zeile#50 und #51.
    Und der Bereich von Spalte#14 bis #29 in jenen Zeilen soll dunkelblau werden. Steht in Zeile#52. Was pass daran jetzt genau nicht?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    OMG ich bin Dumm...nicht nur das sonsdern hab auch grade realierst ich vergleiche die gleich tabelle miteinander...klar das sich alles grün färbt....
    Konnte weil Excel keine andere excel datei erstellen...und hatte nur die eine

    Trotzdem danke das du mir geholfen hast auf meinen "Fehler" zu kommen