Button - Eintrag in Liste übernehmen und Duplikate

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Button - Eintrag in Liste übernehmen und Duplikate
von: Christoph
Geschrieben am: 02.12.2015 17:34:07

Hallo zusammen,
ich habe ein kleines Problem. Ich muss diverse Events, welche ich plane und realisiere in unser ERP-System einspielen. Die Namensbezeichnung soll dabei immer gleich aufgebaut sein, damit man Einträge auch leicht wiederfinden kann.
Ich habe dafür eine Exceldatei, welche mir gewisse Parameter verkettet.
https://www.herber.de/bbs/user/101970.xlsm
Nun zu dem eigentlichen Problen (und ich bin nur in VBA-Bascis bewandert und muss meistens den Rekorder verwenden), wie schaffe ich es, dass beim drücken des Buttons (den ich eingefügt habe) der in der grünen Zelle befindliche Eintrag:
a) fortlaufend in Spalte A gespeichert wird - also wenn ich einen neuen Titel "generiert" habe, soll er automatisch in Zelle A2, dann in A3 und so weiter gespeichert werden
b) kann man auch auf Duplikate testen?
Ich möchte keine vollständige Lösung, nur ein paar Tipps, wie ich das Problem angehen kann. Würde mir meinen Arbeitsalltag erheblich erleichtern, aber gerade weiß ich nicht wo ich anfangen soll.
Tausend Dank für Eure Hilfe im Voraus.
Viele Grüße
Christoph

Bild

Betrifft: AW: Button - Eintrag in Liste übernehmen und Duplikate
von: Sepp
Geschrieben am: 02.12.2015 18:29:47
Hallo Christoph,
und wohin, (welches Tabellenblatt) soll der Eintrag geschrieben werden?

Gruß Sepp


Bild

Betrifft: AW: Button - Eintrag in Liste übernehmen und Duplikate
von: Christoph
Geschrieben am: 02.12.2015 20:44:27
Hallo Sepp,
vielen Dank für deine Meldung. Der Eintrag soll / die Einträge sollen dann im Tabellenblatt "Lister aller Namen" in Spalte A eingetragen werden.
Vielen Dank für deine Hilfe im Voraus.
VG Christoph

Bild

Betrifft: AW: Button - Eintrag in Liste übernehmen und Duplikate
von: Sepp
Geschrieben am: 02.12.2015 20:57:41
Hallo Christoph,
den Code in ein allgemeines Modul kopieren und der Schaltfläche zuweisen.

' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub kopieren()
Dim lngLast As Long

With Sheets("Liste aller Namen")
  If IsError(Application.Match(Sheets("Subject").Range("H5").Text, .Columns(1), 0)) Then
    If .Range("A1") = "" Then
      lngLast = 1
    Else
      lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    End If
    .Cells(lngLast, 1) = Sheets("Subject").Range("H5").Text
  Else
    MsgBox "Dieser Eintrag würde schon übertragen!", vbInformation, "Hinweis"
  End If
End With
End Sub

Gruß Sepp


Bild

Betrifft: AW: Button - Eintrag in Liste übernehmen und Duplikate
von: Christoph
Geschrieben am: 02.12.2015 20:58:07
Hallo Sepp,
vielen Dank für deine Meldung. Der Eintrag soll / die Einträge sollen dann im Tabellenblatt "Lister aller Namen" in Spalte A eingetragen werden.
Vielen Dank für deine Hilfe im Voraus.
VG Christoph

Bild

Betrifft: sollte hier hin
von: Sepp
Geschrieben am: 02.12.2015 20:59:01
https://www.herber.de/forum/messages/1462066.html

Gruß Sepp


Bild

Betrifft: AW: sollte hier hin
von: Christoph
Geschrieben am: 03.12.2015 10:51:11
Hallo Sepp,
vielen vielen Dank für Deine Hilfe. Klappt hervorragend. Wenn ich das Ganze aber noch für zwei weitere Buttons machen möchte... Also bspw. den Eintrag in aus Zelle H11 in Spalte B und den Eintrag aus Zelle H17 in Spalte C speichern wollen würde. Dann reicht ein anpassen deiner Syntax nicht aus, oder? Das habe ich schon probiert und es war nicht erfolgreich. Hast du ggf. einen Tipp für ein gutes Lehrbuch?
Ich wünsche einen fantastischen Tag.
VG Christoph

Bild

Betrifft: AW: sollte hier hin
von: Sepp
Geschrieben am: 03.12.2015 16:26:15
Hallo Christoph,
natürlich kann man den Code zweimal kopieren und entsprechend anpassen.
Ich würde aber das so lösen.

' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub kopierenH5()
'Parameter: Zieltabelle, Zielspalte, QuellZelle
Call kopieren(Sheets("Liste aller Namen"), 1, Sheets("Subject").Range("H5"))
End Sub

Sub kopierenH11()
Call kopieren(Sheets("Liste aller Namen"), 2, Sheets("Subject").Range("H11"))
End Sub

Sub kopierenH17()
Call kopieren(Sheets("Liste aller Namen"), 3, Sheets("Subject").Range("H17"))
End Sub

Sub kopieren(ByRef Target_WS As Worksheet, ByVal Target_Column As Long, ByRef Source_Range As Range)
Dim lngLast As Long

With Target_WS
  If IsError(Application.Match(Source_Range, .Columns(Target_Column), 0)) Then
    If .Cells(Target_Column, 1) = "" Then
      lngLast = 1
    Else
      lngLast = .Cells(.Rows.Count, Target_Column).End(xlUp).Row + 1
    End If
    .Cells(lngLast, Target_Column) = Source_Range
  Else
    MsgBox "Dieser Eintrag wurde schon übertragen!", vbInformation, "Hinweis"
  End If
End With
End Sub

Gruß Sepp


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Button - Eintrag in Liste übernehmen und Duplikate"