Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1676to1680
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

Stückzahlvergleich

Stückzahlvergleich
07.03.2019 09:18:05
Tim
Hallo zusammen,
ich habe folgendes Problem:
Ich habe 2 Tabellenblätter in einer Excel-Datei.
In Tabellenblatt 1 soll eine Bewertung durchgeführt werden. Dazu werden die Werte aus Spalte C mit den Werten aus Spalte D verglichen und in Spalte E eine entsprechende Bewertung Bewertung zwischen Aktuell und geplant durchgeführt.
Die Werte in Spalte C werden händig eingetragen. Die Werte in Spalte D müssen aus Tabellenblatt 2 entnommen werden.
Zunächst muss dazu überprüft werden, ob der Wert aus Tabellenblatt 2 in Spalte 1 in Spalte 1 Tabellenblatt 1 enthalten ist(1. Bedingung). Das muss für alle Werte in Tabelle 2 Spalte 1 durchgeführt werden. Hier ist wichtig, dass er nicht genau gleich ist, sondern nur enthalten ist (siehe Tabelle 1 Zelle(2,1) und Tabelle 2 Zelle(3,1)).
Ist das der Fall muss überprüft werden, ob in Tabelle 1 Spalte 2 FG oder VG steht.
Wenn VG, muss die geplante Stückzahl aus Tabelle 2 Spalte 2 in Tabelle 1 Spalte 4 eingetragen werden.
Wenn FG, muss die geplante Stückzahl aus Tabelle 2 Spalte 3 in Tabelle 1 Spalte 4 eingetragen.
Die Werte sollen fix eingetragen werden und sich nicht mehr ändern, auch wenn Tabelle 2 abgeändert wird.
Lediglich neu angelegte Zeilen (Tabelle 1 wird fortlaufend ergänzt) sollen dann die aktualisierten, jeweils zu diesem Zeitpunkt in Tabelle 2 eingetragenen Werte übernehmen.
Ich hoffe es ist halbwegs verständlich ausgedrückt.
Eine Beispieltabelle habe ich angehängt.
https://www.herber.de/bbs/user/128164.xlsx
Vielen Dank vorab!
Liebe Grüße

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Stückzahlvergleich
07.03.2019 09:58:15
Armin
Hallo,
irgendwie stimmen Text und Sheet nicht überein. Die Rückwärtsprüfung ist fast unmöglich. Welchen Teil der Nummer willst Du den verwenden um den Teil in Tabelle2 zu finden.
Ich fürchte das ganze ist nicht bis zu ende gedacht.
Gruß Armin
AW: Stückzahlvergleich
07.03.2019 10:08:22
Bernd
Servus Tim,
teste mal:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim j As Integer
Dim intlz As Integer
Dim intLZ2 As Integer
Dim ws As Worksheet
Dim ws2 As Worksheet
Set ws = ThisWorkbook.Worksheets("Tabelle1")
Set ws2 = ThisWorkbook.Worksheets("Tabelle2")
intlz = ws.Cells(Rows.Count, 1).End(xlUp).Row
intLZ2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row
With ws
For i = 2 To intlz
For j = 3 To intLZ2
If InStr(1, .Cells(i, 1).Text, ws2.Cells(j, 1).Text, vbBinaryCompare) > 0 Then
If .Cells(i, 2).Value = "VG" Then
Application.EnableEvents = False
.Cells(i, 4).Value = ws2.Cells(j, 2).Value
Application.EnableEvents = True
Exit For
ElseIf .Cells(i, 2).Value = "FG" Then
Application.EnableEvents = False
.Cells(i, 4).Value = ws2.Cells(j, 3).Value
Application.EnableEvents = True
Exit For
Else
MsgBox "Unbekanntes VG/FG"
End If
End If
Next j
Next i
End With
Set ws2 = Nothing
Set ws = Nothing
End Sub
Grüße, Bernd
Anzeige
AW: Stückzahlvergleich
08.03.2019 09:41:43
Tim
Hallo zusammen,
vielen Dank zuerst einmal für eure Hilfe!!
Bernd, dein Code funktioniert soweit super!
Das einzige Problem ist, dass er die Werte immer aktualisiert, sobald ich das Makro neu ausführe.
Ich möchte aber, dass die Zahl, die einmal geschrieben wurde fest ist und sich nicht ändert, wenn ich eine Änderung in Tabelle 2 vornehme.
Für Zeilen, die neu dazu kommen soll natürlich dann der aktuellste Wert übernommen werden.
Hat dazu noch jemand eine Idee?
Vielen Dank vorab!
Ihr seid super!
Viele Grüße
AW: Stückzahlvergleich
08.03.2019 15:08:24
Bernd
Servus Tim,
teste folgendes
in ein allgemeines Modul:

Option Explicit
Public Start As Long
Public Änderung As Boolean
in DieseArbeitsmappe:

Option Explicit
Private Sub Workbook_Open()
Start = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
Änderung = False
End Sub
in Tabelle1:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim j As Integer
Dim intlz As Integer
Dim intLZ2 As Integer
Dim ws As Worksheet
Dim ws2 As Worksheet
If Änderung = True Then Exit Sub
Set ws = ThisWorkbook.Worksheets("Tabelle1")
Set ws2 = ThisWorkbook.Worksheets("Tabelle2")
intlz = ws.Cells(Rows.Count, 1).End(xlUp).Row
If Start >= intlz Then Exit Sub
intLZ2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row
With ws
For i = Start + 1 To intlz
For j = 3 To intLZ2
If InStr(1, .Cells(i, 1).Text, ws2.Cells(j, 1).Text, vbBinaryCompare) > 0 Then
If .Cells(i, 2).Value = "VG" Then
Application.EnableEvents = False
.Cells(i, 4).Value = ws2.Cells(j, 2).Value
Application.EnableEvents = True
Exit For
ElseIf .Cells(i, 2).Value = "FG" Then
Application.EnableEvents = False
.Cells(i, 4).Value = ws2.Cells(j, 3).Value
Application.EnableEvents = True
Exit For
Else
MsgBox "Unbekanntes VG/FG"
End If
End If
Next j
Next i
End With
Set ws2 = Nothing
Set ws = Nothing
End Sub
in Tabelle2:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If MsgBox("Es wurden Änderungen in den Grunddaten durchgeführt. Sollen die neuen Werte zur  _
Berechnung von Tabelle1 angewandt werden?", vbYesNo) = vbYes Then
Änderung = False
Else
Änderung = True
End If
End Sub
Grüße, Bernd
Anzeige
AW: mit einer Matrixfunktion(alität)sformel ...
07.03.2019 10:10:48
neopa
Hallo Tim,
... kannst Du die geplante Stückzahl in Spalte D ermitteln. Anschließend kopierst Du die die Spalte D und fügst diese "nur als Werte" dort wieder ein.
Die Formel in D2:
=WENNFEHLER(INDEX(Tabelle2!A:C;VERWEIS(9;1/FINDEN(Tabelle2!A$3:A$99;A2)^0/(Tabelle2!A$3:A$99"");
ZEILE(Tabelle2!A$3:A$99));VERGLEICH(B2;Tabelle2!$1:$1;0));"")

und nach unten kopieren.
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige