Guten Abend zusammen,
ich habe keine bzw. kaum VBA Erfahrung und versuche mich zur Zeit an einem kleinen Makro. Einiges konnte ich schon durch das Forum und andere Quellen in Erfahrung bringen. Zur Zeit weis ich allerdings nicht mehr weiter. Daher hoffe ich auf euere Hilfe:)
Folgende beispielhafte nicht logische Situation.
Ich habe eine "Datenbank"/Tabelle für verschiedene Produkte der Form:
Modell |
Kennung |
Anzahl |
Zustand |
Alter |
Produkt 1 |
1 |
5 |
1 |
2 |
Produkt 1 |
1 |
3 |
4 |
0 |
Produkt 2 |
2 |
4 |
3 |
0 |
Produkt 3 |
3 |
4 |
2 |
0 |
Produkt 4 |
4 |
5 |
1 |
2 |
Produkt 1 |
1 |
6 |
2 |
0 |
und möchte durch Eingabe der Kennung die Anzahl um 1 reduzieren für eine spezifische Zeile.
Bespiel:
-
Kennung: "1" eingeben
-
Zeilen 1,2 und 6 ermitteln (Produkt 1)
-
Alter für die ermittelten Zeilen vergleichen und nur noch die Zeile mit dem größten Alter auswählen (Zeile 1)
-
Anzahl von 5 auf 4 reduzieren
(Im weitern, falls das Alter überall gleich ist, soll der Zustand verglichen werden und das Produkt mit der höchsten Nummer beim Zustand um 1 reduziert werden.)
Soweit in ich bis jetzt gekommen:
CommandButton verknüpft mit TexBox in einer UserForm. Mitel eingabe der Kennung, ermittel ich die erste Zelle, an der die Zelle den eingegebenen Wert hat.
Dim rng As Range
Set rng = ActiveSheet.Range("B1:B11100").Find(h9)
If rng Is Nothing Then
MsgBox "Nichts gefunden"
Exit Sub
End If
Diese Suche funktioniert auch soweit. Allerings weis ich nicht wie ich mehrer Zellen ermitteln kann
Schritt 2 und Schritt 3 bin ich komplett aufgeschmissen.
Zu Schritt 4 habe ich bis jetzt:
Dim h8 As Integer
h8 = ActiveSheet.Range("C" & rng.Row).Value
'MsgBox "" & h8
Dim h7 As Integer
h7 = h8 - 1
Ich hoffe ich konnte mein Problem erstmal richtig Erläutern und bin hier an dieser Stelle im Forum auch richtig.
Gruß Niklas
|