Schwierig zu erklaeren. Wenn jemand ein Produkt verkaufen
moechte, dann weiss er ja definitiv welches Herstellungsjahr
das Produkt hat, bspw. 1995. Wenn jemand jedoch ein Produkt
sucht ist es oft zwischen 1993 und 1999 oder aehnlich. Da ich
aber nur ein Jahr eingeben moechte, waere das in diesem Fall
die Mitte, also 1996. Wenn ich jetzt jedoch die Spalte C, also
das Jahr vergleiche, haette ich ja keine Uebereinstimmung. Ich
moechte also ein von bis eingeben koennen.
Hallo Christine,
mach mal eine Kopie deiner Mappe. Schließe alle anderen Mappen sodaß nur die Kopie geöffnet ist.
Alt+F11, links siehst du eine Art Verzeichnisbaum wie im Explorer, anstatt Ordnern sind dort deine Projekte Baumartig aufgelsiet.
Deine Kopie ist eines der Projekte, erkennbar am Projektnamen.
Dadrin doppelklickst du auf „Diese Arbeitsmappe“
Dahinein kopierst du den nachstehenden Code.
Im Code heißen die drei relevanten Arbeitsblätter Sucher, Bieter und Vergleich. Oben links im VB-Editor siehst du wie von Excel gewohnt „Bearbeiten“. Gehe dadrauf dann auf „Ersetezne“ und ersetze die drei Namen durch deine drei Blattnamen.
Derzeit, hab ihn grad so runtergeschrieben hat der Code noch eine Macke, anscheinend funktioniert er nur einseitig, d.h. er reagiert nur korrekt wenn du im Blatt Sucher Daten einträgst.
Dann wird in Blatt Bieter gesucht und bei Treffer wird es unten in Vergleich angefügt.
Okay, den Fehler kann man später beseitigen. Jetzt zum Testen für dich reicht es erstmal. Fülle halt falls leer das Blatt Bieter mit Testdaten.
Dann gib halt im Blatt Sucher eine Datenzeile ein und überprüfe ob die auch korrekt in Blatt Vergleich auftaucht.
Und ob dir der Codeablauf insgesamt so wie er funktioniert gefällt.
Grundsätzlich ist es danach so oder so besser du lädst dann eine mappe mit aussagekräftigen Daten hoch damit ich die tabellenstruktur genau sehe. Falls wichtig kannst du ja bestimmte daten anonymisieren.
Hochladen mit z.B. file-upload, s. FAQ:2606
Ob man dein Problem vielleicht mit Pivottabellen angehen/lösen könnte weiß ich nicht.
Gruß
Reinhard
Option Explicit
Private Sub Workbook\_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Sh2 As Worksheet, Zei2 As Long, Formel As String, ZeiV As Long
If Sh.Name "Sucher" And Sh.Name "Bieter" Then Exit Sub
If Target.Count \> 1 Then Exit Sub
If Target.Row = 1 Then Exit Sub
If Target.Column \> 5 Then Exit Sub
With Sh
If Application.CountBlank(.Range(.Cells(Target.Row, 1), .Cells(Target.Row, 5))) \> 0 Then Exit Sub
Set Sh2 = Worksheets(IIf(.Name = "Sucher", "Bieter", "Sucher"))
Zei2 = Sh2.Cells(Rows.Count, 1).End(xlUp).Row
If Zei2 = 1 Then Exit Sub
Formel = "=A2&""#""&B2&""#""&C2&""#""&D2&""#""&E2"
Sh2.Range(Sh2.Cells(2, 6), Sh2.Cells(Zei2, 6)).Formula = Formel
.Range(.Cells(2, 6), .Cells(Zei2, 6)).Formula = Formel
ZeiV = Worksheets("Vergleich").Cells(Rows.Count, 1).End(xlUp).Row + 1
If Application.CountIf(Sh2.Columns(6), .Cells(Target.Row, 6)) \> 0 Then
.Range(.Cells(Target.Row, 1), .Cells(Target.Row, 5)).Copy \_
Destination:=Worksheets("Vergleich").Cells(ZeiV, 1)
If Sh2.Name = "Bieter" Then
Worksheets("Vergleich").Cells(ZeiV, 5).Cut \_
Destination:=Worksheets("Vergleich").Cells(ZeiV, 6)
End If
End If
Application.EnableEvents = False
.Columns(6).ClearContents
Sh2.Columns(6).ClearContents
Application.EnableEvents = True
End With
End Sub