Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1424to1428
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Termine aus UserForm Mitgliedern zuorden

Termine aus UserForm Mitgliedern zuorden
01.05.2015 21:57:27
VBA
Hallo zusammen,
bin mal wieder auf Hilfe angewisen :)
Ich möchte Mitgliedern in meinem Verein die Möglichkeit geben "Sperrtermine" in einer UserForm eizugeben.
Die "Sperrtermine" sollen dann im Tabellenblatt beim jeweiligen Namen der in der Userform eingetragen wurde hintereinander durch Kommatrennung in Spalte 2 aufgelistet werden.
Auch wenn dort bereits "Sperrtermine" vorhanden sind .
Vielen dank im Vorraus ;)
Hier die Beispieldatei :
https://www.herber.de/bbs/user/97414.xlsm

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Termine aus UserForm Mitgliedern zuorden
02.05.2015 07:03:52
Alexander
Hallo,
Das ist jetzt mein Einfall dazu, ein Profi findet evtl. eine bessere Lösung.
Aber Probiere mal das.
Private Sub cmd_Speichern_Click() Dim sName As String Dim lngRow As Long Dim lngColumn As Long Application.ScreenUpdating = False sName = TextBox1.Value On Error GoTo Fehler Cells.Find(What:=sName, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate If sName "" Then lngRow = ActiveCell.Row lngColumn = Cells(lngRow, Columns.Count).End(xlToLeft).Column + 1 Cells(lngRow, lngColumn).Value = TextBox2.Value Else MsgBox "Bitte einen Namen eingeben" End If Application.ScreenUpdating = True Unload Me Exit Sub Fehler: MsgBox "Der Name " & sName & " wurde nicht gefunden" Unload Me End Sub Gruß
Alex

Anzeige
AW: Schon fast gelöst
02.05.2015 10:24:41
VBA
Guten Morgen,
vielen Dank erstmal Alex ;)
Funktioniert schon fast so wie ich mir das vorgestellt habe.
Das einzige was ich gerne noch ändern würde ist dass wenn bereits Termine in Spalte B stehen und ein Mitglied beispielsweise tage später noch einen Termin hinzufügen möchte, dieser nicht in Spalte C sondern per Kommatrennung in Spalte B hinten angehangen wird.
Und wenn ein Mitglied beispielsweise 1.1.15 eingibt soll im Arbeitsblatt unter einheitlichem DatumsFormat vorzugsweise 01.01.15 gespeichert werden.
Bekomm ich das hin indem ich einfach die Zellen im Arbeitsblatt auf dieses DatumsFormat formartiere ?
Oder muss das mit in den code?
Danke nochmal im vorraus ;) you made my day :)
https://www.herber.de/bbs/user/97421.xlsm

Anzeige
habs mal so gelöst
02.05.2015 11:55:15
Matthias
Hallo
Habs mal eingepflegt und ne Combobox statt der Textbox1 gesetzt
Ist leichter auszuwählen als immer zu tippen

Die Datei https://www.herber.de/bbs/user/97423.xlsm wurde aus Datenschutzgründen gelöscht


Gruß Matthias

AW: klappt leider noch nicht
03.05.2015 22:14:44
VBA
Hallo zusammen,
danke erstmal an Matthias L ;)
Klappt aber leider noch nicht. Speichert die termine teilweise mit Kommatrennung hinter den Namen in Spalte A, teilweise mit komma vorweg in Spalte B obwohl es der erste Termin ist. Manchmal mehrere Termine in Spalte B mit komma (so wie es eig sein soll ; bis auf das komma am Anfang) und manchmal nacheinander in Spalte b dann c dann d .....
Hat noch jemand ne idee ?
Vielen dank
https://www.herber.de/bbs/user/97443.xlsm

Anzeige
mein Fehler, sorry
04.05.2015 04:18:46
Matthias
Hallo
Bitte den Code einfach ersetzen
Private Sub cmd_Speichern_Click()
Dim sName As String
Dim lngRow As Long
Dim lngColumn As Long
Application.ScreenUpdating = False
sName = ComboBox1.Text
On Error GoTo Fehler
Cells.Find(What:=sName, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If sName  "" Then
lngRow = ActiveCell.Row
lngColumn = Cells(lngRow, Columns.Count).End(xlToLeft).Column
If IsDate(TextBox2.Value) Then
If Cells(lngRow, 2).Value  "" Then
Cells(lngRow, 2).Value = Cells(lngRow, 2).Value & ", " & Format(TextBox2.Value, "DD/MM/ _
YYYY")
Else
Cells(lngRow, 2).Value = Format(TextBox2.Value, "DD/MM/YYYY")
End If
End If
Else
MsgBox "Bitte einen Namen eingeben"
End If
Application.ScreenUpdating = True
Unload Me
Exit Sub
Fehler:
MsgBox "Der Name " & sName & " wurde nicht gefunden"
Unload Me
End Sub
Gruß Matthias

Anzeige
AW: mein Fehler, sorry
04.05.2015 09:56:23
VBA
Guten Morgen
Danke Matthias, :)
speichert jetzt so wie es sein soll. Ich hoffe ich nerve nicht :) aber eine Kleinigkeit wäre da noch.
Wenn ich die UserForm das erste mal für ein Mitglied benutze speichert er ohne Komma und beim zweiten mal mit Komma unabhängig davon ob dort ein Termin steht oder nicht. Schöner wäre es wenn geprüft wird ob die Zelle leer ist oder schon Termine vorhanden.
Falls eingetragene Termine nachträglich gelöscht werden und die Zelle somit wieder leer ist.
Hast du dafür auch noch ne idee ?
Bin dir sehr dankbar für deine Mühe ;)
https://www.herber.de/bbs/user/97447.xlsm

Anzeige
klappt doch alles ...
04.05.2015 16:28:29
Matthias
Hallo
Zitat:

Schöner wäre es wenn geprüft wird ob die Zelle leer ist oder schon Termine vorhanden.
Genau das wird doch hier gemacht.
If Cells(lngRow, 2).Value  "" Then
Cells(lngRow, 2).Value = Cells(lngRow, 2).Value & ", " & Format(TextBox2.Value, "DD/MM/YYYY")
Else
Cells(lngRow, 2).Value = Format(TextBox2.Value, "DD/MM/YYYY")
End If
Gruß Matthias

AW: klappt doch alles ...
04.05.2015 18:13:00
VBA
Ja im Prinzip schon. Aber wenn ich einen Termin zum Ersten mal speichere geschieht das so (01.01.2015) wenn ich diesen Termin dann wieder aus der Zelle lösche und einen anderen oder den gleichen Termin für das selbe Mitglied erneut speichere geschieht das so (,01.01.2015) obwohl es ja der erste Termin in der Spalte B ist

Anzeige
kann ich nicht bestätigen, sorry
04.05.2015 18:52:22
Matthias
Hallo
 AB
6Klaus Klaus 
7Thomas Müller04.05.2015
8Dirk Sowieso04.05.2015, 05.05.2015


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Ich habe einen Termin für Thomas Müller eingegeben
Dann habe ich diesen Termin aus der Zelle wieder glöscht und erneut eingegeben.
Dabei entstehen (bei mir) keinerlei Probleme.
Übrigens kann ja dann das Ermitteln der Spalte:
'lngColumn = ...

entfernt werden Du möchtest ja immer in Spalte(2) schreiben.
Du müsstest mir step by step erklären was Du der Reihe nach machst, vielleicht kann ich es dann reproduzieren. So läuft bei mir alles wie es soll.
Gruß Matthias

Anzeige
noch Interesse an einer Erweiterung?
05.05.2015 15:57:41
Matthias
Hallo
Noch Interesse an einer Erweiterung?
Userbild
Ich kanns Dir so schicken, wenn Du noch Intersse hast.
Es müsste bei Dir nur das Calendar-Steuerelement als Verweis vorhanden sein
Code aus der erweiterten Datei
Private Sub Calendar1_Click()
TextBox2 = Calendar1
End Sub
Private Sub UserForm_Initialize()
TextBox2.Text = Date
End Sub
Private Sub cmd_Speichern_Click()
Dim sName$, lngRow&
Application.ScreenUpdating = False
sName = ComboBox1.Text
On Error GoTo Fehler
lngRow = Cells.Find(What:=sName, After:=ActiveCell).Row
If sName  "" Then
If IsDate(TextBox2.Value) Then
If Cells(lngRow, 2).Value  "" Then
Cells(lngRow, 2).Value = Cells(lngRow, 2).Value & "," & Format(TextBox2.Value, "DD/MM/YYYY")
Else
Cells(lngRow, 2).Value = Format(TextBox2.Value, "DD/MM/YYYY")
End If
End If
Else
MsgBox "Bitte einen Namen eingeben"
Exit Sub 'damit UForm offen bleibt
End If
Application.ScreenUpdating = True
Unload Me
Exit Sub
Fehler:
MsgBox "Der Name " & sName & " wurde nicht gefunden"
Unload Me
End Sub
Private Sub cmd_Abbruch_Click()
Unload Me
End Sub
Gruß Matthias

Anzeige
AW: kann ich nicht bestätigen, sorry
05.05.2015 17:54:11
VBA
Hey Matthias,
entschuldigung das ich jetzt erst wieder schreibe hatte keine Möglichkeit an den PC zu gehen die letzten Tage. Ja es besteht noch interesse, sogar sehr. Allerdings überschreitet noch vieles meine VBA und Excel Kenntnisse und viele Vorgänge die für fortgeschrittene direkt verständlich sind müssen mir noch etwas detaillierter erklärt werden. Ich bin auch im moment sehr ausgelastet was die durchführung meines Trainings und sonstiger Arbeit angeht. Wäre schön wenn du von zeit zu zeit nochmal helfen kannst. Allerdings habe ich im moment wie gesagt kaum zeit. Ich würde mich, ich denke mal zum Wochenende hin, gerne wieder intensiver damit beschäftigen. Vielleicht schaffe ich es auch mich zu späterer stunde damit zu beschäftigen. Kann ich aber nicht zusagen. Ist aber auch überhaupt kein Problem wenn du nicht direkt antwortest und die Frage etwas länger offen bleibt. Wäre super wenn du gelegentlich mal schaust ob ich wieder mal fragen habe . Wenn nicht bin ich dir aber auch nicht böse. Nochmal danke für deine bisherige Arbeit und nen schönen Tag noch. Muss dann auch schon wieder los.
Gruß benny

Anzeige
kein Problem :-)
05.05.2015 18:06:56
Matthias
Hallo benny
Beiträge wandern hier nach 7 Tagen ins Archiv.
Du müsstest dann eben einen Neuen eröffnen.
Bis dahin
Gruß Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige