Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)
   
Antwortento 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 Benutzer sagt Danke an Kuwer für diesen Beitrag:
  • Wiiinnniii
Antwortento 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 Benutzer sagt Danke an snb für diesen Beitrag:
  • Wiiinnniii
Antwortento top
#4
(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 Undecided

Hilfe! Bitte !

Gruß
Winni
Antwortento top
#5
Hallo Winni,

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

Gruß Uwe
Antwortento 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)
   
Antwortento top
#7
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. Smile

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


Gehe zu:


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