Excel VBA - Vergleiche von Werten unterschiedlicher Tabellen

Man könnte die Funktionen aber auch für die nachträgliche Prüfung nehmen. Müsste dann halt angepasst werden.
das wollte ich wissen ;) das würde ja meinen anforderungen entsprechen.

zu der if-abfrage: naja, ich will halt übreprüfen, ob der inhalt der spalte gleich irgendeinem sortiment ist. es gibt insgesamt 26 sortimente, daher 26 verschachtelungen.
das ist aber ja nicht besonders elegant :/ aber wie gesagt, hab bissl rumprobiert das zu optimieren, kam aber nix bei raus :(

prinzip ist das gleiche wie bei artikelnr und es funktioniert ja auch, allerdings muss ich später die spalte der verwendeten marken überprüfen. da es über 300 marken gibt, könnte das mit einer verschachtelten if schleife meiner art schwer werden xD

daher meine frage ob du da eine optimierungsmöglichkeit siehst ;) bspw mit while? oder mit if --> or?
 
Na wenn du püfen willst ob das was eingegeben wurde in der "vergleichs" Tabelle vorhanden ist, dann brauchst du nur eine FOR/Next-Schleife und eine IF-Anweisung

Visual Basic:
For a = 1 To x
    If eingabe = Vergleich.Cells(a, spalte) Then
        'wenn ein entsprechender Eintrag gefunden wurde Prüfung verlassen
        Exit Sub
    End If
Next a

'hier kommt man nur hin wenn keine Übereinstimmung gefunden wurde
MsgBox "Fehler!"
 
naja so hab ich das ja auch, aber es soll ja bei 26 werten nach übereinstimmung gesucht werden; daher habe ich halt innerhalb der for schleife 26 if abfragen :/

was ist denn deine variable eingabe? ist das ein string mit allen werten, die abgefragt werden sollen?

kann man das nicht iwie so machen? also ich hab das schon so probiert aber es will nicht :(

For a = 1 To x
If Tabelle1.Cells(a, spalte) = "DOB" Or Tabelle1.Cells(a, spalte) = "Sporttextilien" usw Then(an dieser stelle würden dann halt 24 weitere werte stehn)

Else

MsgBox "fehler"

End if
Next a
 
Sorry, ich hatte da wohl einen Denkfehler drin.

Angenommen du willst ja nachträglich die in der Tabelle1 vorhandenen Werte mit den Werten in Tabelle2 vergleichen.

Dann gibt es zuerst eine FOR/NEXT-Anweisung für die Tabelle1 und darin eine FOR/NEXT-Anweisung für die Werte in Tabelle2

Visual Basic:
For tab_1 = 1 To X

    For tab_2 = 1 To Y

'hier wird immer ein Wert aus Tabelle1 mit allen Werten aus Tabelle2 verglichen
        If Tabelle1.Cells(tab_1, spalte_1) = Tabelle2.Cells(tab_2, spalte_2) Then Exit sub

    Next tab_2

Next tab_1
'hier wieder die Meldung wenn nichts gefunden wurde
 
das sieht gut aus / hört sich gut an :D

dann müsste ich quasi:

- per pfad die jeweiligen tabellen in einer datei zusammenfügen
--> dann habe ich tabelle 1 bis 3

- dann vergleiche anstellen

eine frage habe ich noch: da ja bestimmte spalten zusammenhängen (zB aus tabelle1 das sortiment und die mkz, da die ja in abhängigkeit voneinander überprüft werden müssen), kann man eine überprüfung exemplarisch wiefolgt aussehen lassen?

For tab_1 = 1 to X

For tab_2 = 1 to Y

'jetzt der vergleich zweier werte die zusammenhängen aus t1 mit zwei werten die zusammenhängen aus t2, also ungefähr so:

If "Wert1 aus Tabelle1" (an exakt bestimmter zelle x) = "Wert 1 aus Tabelle2 (exakt bestimmte zelle y)" Then
'zweite if schleife für zweiten wert
If "Wert2 aus Tabelle1" = "Wert2 aus Tabelle2" Then

Else
MsgBox "Fehler"

End if

Else
MsgBox "Fehler"

End if

Next tab_2

Next tab_1


ich hoffe du verstehst was ich damit versuche zu erzeugen ;) ansosnten frag einfach, ich versuchs dann nochmal zu erklären xD
 
Ich habe da so eine Idee was du meinen könntest.

Visual Basic:
If wert1_tab1 = wert1_tab2 And wert2_tab1 = wert2_tab2 Then
    'was auch immer
End If

Damit würdest du 2 verschiedene Werte aus Tabelle1 mit den entsprechenden zwei Werten aus Tabelle2 vergleichen und bei Übereinstimmung beider (!!) Werte eine bestimmte Anweisung ausführen.
 
jap, genau das brauche ich :D vielen dank :D ich werde mal versuchen, da so etwas in der art auf die beine zu stellen.

da sicherlich noch weitere fragen auftreten lasse ich diesen thread mal offen, dann sind wir gleich im kontext drin :)

und vielen dank nochmal! hat sich jetzt schon gelohnt hier im forum dabeizusein :D
 
Guten Morgen allerseits,

bin über die Google Suche auf diesen Thread gestossen und möchte mich hier mal einklinken,auch wenn der Beitrag schon sehr alt ist.
Sowas ähnliches suche ich auch. Folgender Sachverhalt:

Tabellenblatt "Dauerfahrten" enthält in Zellen B5,B6 usw. immer eine Adresse(Von) in Zelle C5,C6 usw, ebenfalls immer eine Adresse(Nach) und Zellen D6,D7 immer die dazugehörenden Km-Angaben.Diese Werte sind fest. Nun gibt es in der gleichen Datei(für jeden Monat eine eigene) bis zu 31 Tabellenblätter mit der Bezeichnung 01.April,2.April usw.(können 31 sein,können aber auch nur 10 sein),die die gleichen Spalten haben wie Tabellenblatt "Dauerfahrten. Da sich in diesen Tagesberichten in der Km-Angabe mal nen Fehler einschleichen kann,möchte ich diese Werte Werte mittels VBA vergleichen.Sollten Unterschiede in der KM-Angabe sein,dann eine Meldung wo der/die Fehler sich befinden,ansonsten "Alles okay"
Die Adressen in den Zellen B6 und C6 usw können auch mal umgekehrt stehen,da es auch die Rücktouren gibt.

Jemand ne Idee dafür?

Lg Frank
 
Ich hatte jetzt mal in der MSGBox bzw Hinweisfenster gedacht,wobei ich überlege,ob das "okay" überhaupt notwendig ist. Als Hinweis vielleicht,die einzelnen Tagesbrichte werden nach und nach erstellt,sind also nicht von Anfang an vorhanden.

Hab die Datei mal angehängt

Lg Frank
 

Anhänge

  • Test.xls
    171,5 KB · Aufrufe: 2
Zurück