Hilfe gesucht Makro / VBA
#1
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


Angehängte Dateien Thumbnail(s)
   
Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Wiiinnniii
Top
#3
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


Angehängte Dateien
.xlsb   __validation_dictionary snb.xlsb (Größe: 13,81 KB / Downloads: 4)
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Wiiinnniii
Top
#4
(31.10.2016, 18: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 Undecided

Hilfe! Bitte !

Gruß
Winni
Top
#5
Hallo Winni,

siehe Wie fügt man ein Makro in das Codefenster der Tabelle ein?

Gruß Uwe
Top
#6
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 ?


Angehängte Dateien Thumbnail(s)
   
Top
#7
Hallo Winni,

(31.10.2016, 23: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. Smile

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Wiiinnniii
Top
#8
: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
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste