Anzeige
Archiv - Navigation
804to808
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
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eingabemaske gefunden, nun erweitern

Eingabemaske gefunden, nun erweitern
03.10.2006 16:34:01
Bernd
Hallo Allerseits,
ich habe im Netz eine Beispieldatei einer Eingabemaske gefunden (wo diese genau herstammt, kann ich leider nicht mehr sagen).

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

Nun möchte ich diese gerne für meine Bedürfnisse anpassen, d.h. um einige Spalten erweitern.
Da ich selbst bislang aber nur mit dem Makro-Rekorder oder irgendwelchen hier erfragten Code-Schnipseln gearbeitet habe, weiß ich nicht so recht, wie ich das anstellen soll.
Wäre für jeden Tipp dankbar.
Gruss

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 18:03:55
Bernd
*wow*
Aber, wie hast du das gemacht?
Ich will das doch selber auch können, gerade weil mehrere Spalten da noch ran müssen (s.o.)
Gruss
bernd
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 18:24:44
Thorsten_Z
Gut das du fragst hab grade noch einen Fehler gefunden ;-)
Du mußt noch eine CodeZeile ergänzen. Da wo Achtung steht!!!!!
Du öffnest als erstes den VBA Editor und klickst doppelt auf die UserForm, so das dir der Code angezeigt wird. In der UserForm selber habe ich das zusätzliche Textfeld mit der Überschrift eingefügt. Nun zum Code:
Mit ein bischen naiver Logik (bin wahrlich keine VBA leuchte) habe ich dann den Code logisch fortgesetzt

Private Sub ComboBox1_Click()
If ComboBox1.ListIndex <> 0 Then
TextBox1 = Cells(ComboBox1.ListIndex + 1, 1)
TextBox2 = Cells(ComboBox1.ListIndex + 1, 2)
TextBox3 = Cells(ComboBox1.ListIndex + 1, 3)
TextBox4 = Cells(ComboBox1.ListIndex + 1, 4) 'diesen habe ich eingefügt
Else
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = "" 'dann diesen
End If
End Sub


Private Sub CommandButton1_Click()
If ComboBox1.ListIndex > 0 Then
Rows(ComboBox1.ListIndex + 1).Delete
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = "" 'hier das Gleiche
UserForm_Initialize
End If
End Sub


Private Sub CommandButton2_Click()
Dim xZeile As Long
If TextBox1 = "" Then Exit Sub
If ComboBox1.ListIndex = 0 Then
xZeile = [A65536].End(xlUp).Row + 1
Else
xZeile = ComboBox1.ListIndex + 1
End If
Cells(xZeile, 1) = TextBox1
Cells(xZeile, 2) = TextBox2
Cells(xZeile, 3) = TextBox3
Cells(xZeile, 4) = TextBox4    'hier auch
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""  '!!!!!!!ACHTUNG MUßT DU NOCH EINFÜGEN!!!!!!!
Columns("A:D").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ 'hier mußte ich die Colums logischer Weise bis D erweitern.
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
UserForm_Initialize
End Sub

Den Rest des Codes konnte so bleiben.
gruss Thorsten
Anzeige
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 19:03:45
Bernd
*** Gut das du fragst hab grade noch einen Fehler gefunden ;-) ***
Und, was bewirkt dieser Fehler? Ich konnte nämlich beim Probieren keinen fesstellen.
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 19:12:49
Thorsten_Z
Ich glaube, dass sonst die TextBox4 nicht geleert wird. Aber ehrlich gesagt habe ich kein Plan... :-) Die Zeile fehlte nach meinem Verständniss halt. Wie gesagt ich bin keine VBAleuchte.
gruss Thorsten
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 19:41:10
Erich
Hallo Bernd und Thorsten,
das Leeren der Textboxen in CommandButton2_Click() ist tatsächlich überflüssig:
CommandButton2_Click() ruft UserForm_Initialize() auf, dort wird ComboBox1.ListIndex = 0 gesetzt,
und das löst das ComboBox1_Click-Ereignis aus.
In ComboBox1_Click() werden dann die Textboxen (bei ListIndex=0) sowieso geleert.
Hier noch eine etwas kürzere Fassung:
Option Explicit
Private Sub ComboBox1_Click()
If ComboBox1.ListIndex <> 0 Then
TextBox1 = Cells(ComboBox1.ListIndex + 1, 1)
TextBox2 = Cells(ComboBox1.ListIndex + 1, 2)
TextBox3 = Cells(ComboBox1.ListIndex + 1, 3)
TextBox4 = Cells(ComboBox1.ListIndex + 1, 4)
Else
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
End If
End Sub
Private Sub CommandButton1_Click()
If ComboBox1.ListIndex > 0 Then
Rows(ComboBox1.ListIndex + 1).Delete
UserForm_Initialize
End If
End Sub
Private Sub CommandButton2_Click()
Dim xZeile As Long
If TextBox1 = "" Then Exit Sub
If ComboBox1.ListIndex = 0 Then
xZeile = [A65536].End(xlUp).Row + 1
Else
xZeile = ComboBox1.ListIndex + 1
End If
Cells(xZeile, 1) = TextBox1
Cells(xZeile, 2) = TextBox2
Cells(xZeile, 3) = TextBox3
Cells(xZeile, 4) = TextBox4
Columns("A:D").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
UserForm_Initialize
End Sub
Private Sub CommandButton3_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim aRow As Long, i As Long
Application.EnableEvents = False
ComboBox1.Clear
aRow = [A65536].End(xlUp).Row
ComboBox1.AddItem "neue Person hinzufügen"
For i = 2 To aRow
ComboBox1.AddItem Cells(i, 1) & ", " & Cells(i, 2)
Next i
ComboBox1.ListIndex = 0
Application.EnableEvents = True
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 20:06:26
Thorsten_Z
Hallo Erich,
danke für die Aufklärung... mir fehlt einfach noch der richtige Blick, um Code zu lesen. Jetzt leuchtet es mir natürlich ein.
gruss Thorsten
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 20:27:10
Bernd
Danke für die Erklärung, Thorsten.
Und zu Codes äußere ich mich nun gar nicht erst *g*
Gruss
b.
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 20:52:20
Bernd
Noch, ne Frage:
welchen Code muss ich alles entfernen, um die Sortierfunktion zu entfernen?
Gruss
Bernd
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 22:03:26
Thorsten_Z
Das wäre dann dieser code:
Columns("A:D").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
gruss Thorsten
AW: Eingabemaske gefunden, nun erweitern
03.10.2006 22:08:10
Bernd
DANKE! :-)))
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige