Guten Morgen/Tag/Abend!
Ich bin momentan an einem Roadblock der mein Wissen übersteigt. Kurze Daten vorab ich benutze Excel 2010 und Windows 10.
Ich arbeite komplett ohne UserForm, da es sich über Zellen+VBA Flexibler gestaltet.
Zu meinem Problem:
In der Range E2:E9 ist der Anwender in der Lage Daten für ein Fahrzeug anzugeben. Hierbei kann er schon vorhande Daten aus einer Range bei C13:J13 Fortlaufend beginnend, über das Kennzeichen such Kriterium in E2, sich anzeigen lassen und Bearbeiten. Der Code dazu sieht so aus.
Sub KFZAufrufen()
Dim sh As Worksheet, arr, lastErow As Long, matchCel As Range 'Nötige Variablen
Set sh = ActiveSheet 'Variabel Deklaration
arr = sh.Range("E2:E9").Value 'Wenn in Zukunft mehr Daten aufgenommen werden muss hier E9 entsprechend verändert werden
lastErow = sh.Range("C" & sh.Rows.Count).End(xlUp).Row + 1
If Range("E2") = "" Then
MsgBox "Wählen Sie ein KFZ aus!" 'Zwingt den Nutzer ein KFZ aus der Dropdown in E2 zu wählen, darf nicht verändert werden
Range("E2").Select
Exit Sub
End If
If lastErow < 13 Then lastErow = 13
'Suche nach dem KFZ welches durch die Zelle E2 definiert wird
Set matchCel = sh.Range("C13:C" & lastErow - 1).Find(WHAT:=sh.Range("E2").Value, LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=False)
If Not matchCel Is Nothing Then
MsgBox sh.Range("E2").Value & " wurde gefunden in " & matchCel.Address & "."
'Fahrzeugdaten aus der Tabelle in die in die Bearbeitung hoch holen
sh.Range("E3:E9").Value = Application.Transpose(sh.Range(matchCel.Offset(0, 1), matchCel.Offset(0, 7)).Value)
Exit Sub
End If
sh.Range("C" & lastErow).Resize(1, UBound(arr)).Value = Application.Transpose(arr)
sh.Range("E2:E9").ClearContents
End Sub
Meine Frage ist nun:
Wie kann ich die Aufgerufenen Daten Aktualisieren?
Beispiel:
A. gibt wert y in E2 ein.
Wert y wird in C30 gefunden.
Range D30:J30 wird zu Range E3:E9 Kopiert. (C30 ist nicht nötig, da Wert y schon in E2 vorhanden).
A. verändert in E3 denn Wert x zu z und aktieviert das makro.
Wert X wird in Zelle D30 durch Wert Z ersetzt ohne ein Duplikat zu erstellen.
Ich hoffe ich konnte mein Problem gut genug beschreiben.
|