Hallo zusammen,
ich benötige Eure Hilfe!
Ich habe in Spalte A Namen stehen ( ca. 500 St. ) sein, in Spalte B dazugehörige Zahlen.
Nach der Eingabe eines Namens in E1 und einer Zahl in G1 soll geprüft werden, ob der Namen bereits vorhanden ist.
Wenn ja, dann soll die zum Namen gehörende Zahl (in Spalte B) aktualisiert werden.
Wenn nein, soll in Spalte A und B unter dem letzten vorhanden Namen der neue Namen und die Zahl eingetragen werden.
Ich hoffe ihr könnt mir weiterheflen, Screenshot anbei...
Herzlichen Dank schon einmal!
Winni
Hallo Winni,
folgender Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngZ As Long
If Target.Address = "$G$1" Then
If IsNumeric(Target.Value) And Len(Range("E1").Value) Then
On Error Resume Next
Application.EnableEvents = False
lngZ = Application.WorksheetFunction.Match(Range("E1").Value, Columns(1), 0)
If lngZ = 0 Then
lngZ = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(lngZ, 1).Value = Range("E1").Value
End If
Cells(lngZ, 2).Value = Cells(lngZ, 2).Value + Range("G1").Value
Range("E1,G1") = ""
Range("E1").Activate
Application.EnableEvents = True
On Error GoTo 0
End If
End If
End Sub
Gruß Uwe
In der Codemodule des Arbeitsblattes:
Code:
Dim d_00 As Object
Sub M_snb()
Cells(1, 5).Validation.Add 3, , , "=" & Cells(1).CurrentRegion.Columns(1).Address
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$1" Then
If d_00 Is Nothing Then
Set d_00 = CreateObject("scripting.dictionary")
sn = Sheet1.Cells(1).CurrentRegion
For j = 1 To UBound(sn)
d_00(sn(j, 1)) = sn(j, 2)
Next
End If
Target.Offset(, 2) = d_00(Target.Value)
End If
End Sub
Zelle E1 enthällt ein Validation: die Werten in Spalte A
(31.10.2016, 17:45)Kuwer schrieb: [ -> ]Hallo Uwe,
vielen Dank für Deine Antwort. Leider habe ich Probleme, den Code einzufügen. An welcher Stelle genau füge ich ihn ein ?
Wenn ich z.B. mit dem Makro-Recorder in diesem Tabellenblatt ein Makro erzeuge, entsteht ein Modul. In dieses habe ich dann Deinen Code reinkopiert, hat aber leider nicht funktioniert
Hilfe! Bitte !
Gruß
Winni
Danke, aber genau das habe ich gemacht, siehe Screensot.
Nur habe ich leider keine Ahnung wie ich das Makro starte, da es (auch nach Neustart der Datei) nicht in der Makroliste erscheint. Oder wie rufe ich es auf ?
Hallo Winni,
(31.10.2016, 22:40)Wiiinnniii schrieb: [ -> ]Nur habe ich leider keine Ahnung wie ich das Makro starte, da es (auch nach Neustart der Datei) nicht in der Makroliste erscheint. Oder wie rufe ich es auf ?
gib einfach Daten in E1 und G1 ein.
Gruß Uwe
:05: Boa, wie geil ist das denn! Vielen herzlichen Danke !!! Hab noch etwas angepasst, da ich keine aufaddierung der Werte haben möchte, sondern die Löschung des alten und Ersetzung mit dem neuen Wert haben möchte.
Vielen Dank Uwe, ich wäre froh, wenn ich verstehen könnte wie das funktioniert und ich das auch erstellen könnte !
Gruß
Winni