Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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
Datensätze speichern und gleich sortieren
28.06.2016 12:20:50
Magda
Hallo Zusammen,
ich habe eine Eingabemaske als Userform. Eingaben die man in die Textboxen macht, werden in das "Tabellenblatt 1" und in eine Listbox (UF2) geschrieben. Ich kann zwar nach verschiedenen Kriterien bereits sortieren, möchte jedoch jetzt erreichen, dass schon beim Abspeichern alphabetisch nach Nachnamen sortiert bzw. gleich alphabetisch nach Nachnamen abgespeichert wird.
Verschiedene Codes die ich entdeckte, konnte ich leider aus fehlenden Kenntnissen nicht in den Code für "Speichern" integrieren.
Vielleicht hat jemand von Euch eine Idee. Ich sollte dann allerdings soweit Hilfe haben, dass man mitteilt, ob ein bestehender Code abgeändert oder ersetzt werden muss.
Die Eingabemaske habe ich angehängt. Ich habe bezüglich dieses Themas keine anderen Foren aufgesucht, weil ich erstmal abwarten möchte, ob hier jemand eine Lösung hat.
https://www.herber.de/bbs/user/106587.xls
Liebe Grüße Magda

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
geht schlecht
28.06.2016 14:15:37
Michael
Hi Magda,
das bringt nichts.
Man müßte prinzipiell eine Zeile da einfügen, wo der neue Name reinpaßt, also z.B. "Bierbrauer" zwischen "Becker" und "Zeller".
Es gibt zwar Excel-Befehle, die so eine Zeilen-Nummer ermitteln können (=VERGLEICH), aber der funktioniert nur dann sauber, wenn die Liste sortiert ist.
D.h., um den zu benutzen, müßtest Du die Liste vorher sortieren (zumindest, wenn zuvor anders sortiert wurde), dann kannst es gleich unten anfügen und hinterher sortieren, das ist deutlich weniger Gefummel.
Du weißt ja, wie es geht, wobei ich es a) anders formulieren und b) noch nach Vorname sortieren würde:
Sub sortieren()
Tabelle1.Range("A1").CurrentRegion.Sort _
key1:=Tabelle1.Range("E1"), order1:=xlAscending, _
key2:=Tabelle1.Range("D1"), order2:=xlAscending, _
Header:=True
End Sub
Finkenbrunn 517 kannst vergessen, bei 145 ist Schluß, das ist das "Flügelrad".
Schöne Grüße,
Michael
P.S.: ok, ich verstehe das Problem. Hier die komplette Sub zum Reinkopieren in UF1:
Private Sub CommandButton3_Click()
'Eintrag speichern
Dim lZeile As Long, lIndex As Long
If ListBox1.ListIndex = -1 Then
lZeile = Tabelle1.Cells(Rows.Count, 5).End(xlUp).Row + 1
Else
lZeile = ListBox1.Column(1)
End If
lIndex = ListBox1.ListIndex
If Trim(TextBox91.Text) = "" Then
MsgBox "Feld Nachname muss gefüllt sein!", vbCritical + vbOKOnly, "FEHLER!"
'Abbrechen der Speicherroutine
Exit Sub
Else
With Tabelle1
.Cells(lZeile, 1).Value = TextBox1.Text
.Cells(lZeile, 2).Value = TextBox2.Text
.Cells(lZeile, 3).Value = TextBox3.Text
.Cells(lZeile, 4).Value = TextBox4.Text
.Cells(lZeile, 5).Value = Trim(TextBox91.Text)
.Cells(lZeile, 6).Value = TextBox5.Text
.Cells(lZeile, 7).Value = TextBox6.Text
.Cells(lZeile, 8).Value = TextBox7.Text
.Cells(lZeile, 9).Value = TextBox90.Text
.Cells(lZeile, 10).Value = TextBox8.Text
.Cells(lZeile, 11).Value = TextBox9.Text
.Cells(lZeile, 12).Value = TextBox10.Text
.Cells(lZeile, 13).Value = TextBox11.Text
.Cells(lZeile, 14).Value = TextBox12.Text
.Cells(lZeile, 15).Value = TextBox13.Text
.Cells(lZeile, 16).Value = TextBox14.Text
.Cells(lZeile, 17).Value = TextBox15.Text
.Cells(lZeile, 18).Value = TextBox16.Text
.Cells(lZeile, 19).Value = TextBox17.Text
.Cells(lZeile, 20).Value = TextBox18.Text
.Cells(lZeile, 21).Value = TextBox19.Text
.Cells(lZeile, 22).Value = TextBox20.Text
.Cells(lZeile, 23).Value = TextBox21.Text
.Cells(lZeile, 24).Value = TextBox22.Text
.Cells(lZeile, 25).Value = TextBox23.Text
.Cells(lZeile, 26).Value = TextBox24.Text
.Cells(lZeile, 27).Value = TextBox25.Text
.Cells(lZeile, 28).Value = TextBox26.Text
.Cells(lZeile, 29).Value = TextBox27.Text
.Cells(lZeile, 30).Value = TextBox28.Text
.Cells(lZeile, 31).Value = TextBox29.Text
.Cells(lZeile, 32).Value = TextBox30.Text
.Cells(lZeile, 33).Value = TextBox31.Text
.Cells(lZeile, 34).Value = TextBox32.Text
.Cells(lZeile, 35).Value = TextBox33.Text
.Cells(lZeile, 36).Value = TextBox34.Text
.Cells(lZeile, 37).Value = TextBox35.Text
.Cells(lZeile, 38).Value = TextBox92.Text
.Cells(lZeile, 39).Value = TextBox36.Text
.Cells(lZeile, 40).Value = TextBox37.Text
.Cells(lZeile, 41).Value = TextBox93.Text
.Cells(lZeile, 42).Value = TextBox38.Text
.Cells(lZeile, 43).Value = TextBox39.Text
.Cells(lZeile, 44).Value = TextBox94.Text
.Cells(lZeile, 45).Value = TextBox40.Text
.Cells(lZeile, 46).Value = TextBox41.Text
.Cells(lZeile, 47).Value = TextBox95.Text
.Cells(lZeile, 48).Value = TextBox42.Text
.Range("A1").CurrentRegion.Sort _
key1:=.Range("E1"), order1:=xlAscending, _
key2:=.Range("D1"), order1:=xlAscending, _
Header:=True
End With
' Nächste Verwaltungsnummer speichern
Tabelle2.Cells(2, 53).Value = Val(Tabelle2.Cells(2, 53).Value) + 1      ' xlph
End If
UserForm_Initialize
If lIndex = -1 Then
ListBox1.ListIndex = ListBox1.ListCount - 1
Else
ListBox1.ListIndex = lIndex
End If
End Sub

Anzeige
AW: geht schlecht
28.06.2016 14:33:16
Magda
Hallo Michael,
vielen lieben Dank für Deine Mühe und Deine Unterstützung. Ich werde Deinen Code mal ausprobieren und mir nochmal einen Kopf machen. Kannst Du mir vielleicht noch erklären, was Du mit dem Flügelrad meinst?
LG Magda

AW: geht schlecht
28.06.2016 14:46:31
Michael
na, die höchste Hausnummer von Finkenbrunn ist 145: das Flügelrad ist ein Sportverein. Weiter draußen kommt nicht mehr viel bzw. beginnt die Hafenstr.
Viel Spaß beim Basteln & Gruß,
M.

AW: geht schlecht
28.06.2016 14:50:00
Magda
hahahah Du Schelm! Es tut gut wenn man hier auch Leute kennenlernt die von Spaß ne Ahnung haben. Dir nen schönen Tag, Michael

Anzeige
very nice! Dir auch... owT
28.06.2016 15:07:25
Michael

AW: very nice! Dir auch... owT
28.06.2016 15:31:23
Magda
Übrigens bin ich zufrieden mit Deiner Lösung, das klappt gut, habe Deinen Code eingefügt. Vielleicht hast Du ja mal wieder Zeit für folgende Frage:
Wenn ich in der UF1 beispielsweise nach Verwaltungsnummer sortiere und auf die Listbox UF2 wechsle, ist dort die Sortierung noch nicht sichtbar. Ich muss erst wieder zur UF1 zurück und dann wieder in die Listbox, erst dann wurde aktualisiert. Gibt es denn eine Möglichkeit, dass beim Klick auf den Button Liste in UF1 bereits die Listbox aktualisiert wird?
Oder soll ich mit dieser Frage einen neuen Thread aufmachen, was denkst Du?
LG Magda

Anzeige
bitte nicht,
28.06.2016 16:17:58
Michael
sonst kommt man eher durcheinander.
Ich muß aus dem Haus, aber vielleicht sieht sich's jemand anderes an, ansonsten manana...
LG,
Michael

AW: bitte nicht,
28.06.2016 16:28:43
Magda
jawoll men Mästr !

sehr brav!
29.06.2016 16:49:44
Michael
Hi Chefin,
anbei Datei mit der Änderung von gestern und einigen weiteren:
https://www.herber.de/bbs/user/106619.xls
Erschrick nicht, ich habe diverse msgboxen eingebaut, um nachzuverfolgen, wann was ausgeführt wird; die kannst Du nach erfolgreicher "Fehlerbehegung" wieder löschen oder auskommentieren.
Die Crux ist, daß das "init" der UF2 "35 mal" ausgeführt wird, nur dann nicht, wenn die UF2 aufgerufen wird!
Also habe ich dort eine eigene Sub eingebaut, die das LB-Array nachlädt und beim UF1-Button "liste" getrennt aufgerufen wird: damit paßt die Sortierung.
Aber an der grundsätzlichen Logik sollte man noch arbeiten, um die mehr-, wenn nicht vielfache Ausführung gleicher Codeteile zu unterbinden.
Ansonsten habe ich den Code zur UF4 deutlich gekürzt.
Jawoll, Chefin,
viel Spaß,
Michael

Anzeige
AW: sehr brav!
29.06.2016 23:03:01
Magda
Ehrwürdiger Määstr !
ich danke Dir vielmals für Deine Hilfe. Du kannst Dir sicher vorstellen, dass ich etwas überfordert bin, weil ich von Tuten und, naja von Tuten halt keine Ahnung habe und wenn ich dumm nachfrage, bitte ich den Määstr schon jetzt um Verzeihung.
Dass die "init" der UF2 35-mal ausgeführt wird ist ja sicher nicht normal und wird ja auch nicht gewollt gewesen sein können oder sehe ich das falsch? Das führt mich dann zu der Frage, wieso das so ist und wie man das ändern kann. Was muss ich denn jetzt mit den zahlreichen MSG-Boxen bzw. deren Meldungen tun?
Was noch anders ist, Määstr: Die Suche funktioniert jetzt nicht mehr, wobei das wohl das geringste Problem sein dürfte wenn ich Deine Infos so lese.
Ich befürchte, dass ich das alleine nicht wegbekommen werde, da meine Kenntnisse in Tuten zu gering sind. Gibts nen Tipp vom Määstr? Und wenn nisch, dann hast Du trotzdem ne super Arbeit hingelegt und dafür meinen größten Dank und meine größte Bewunderung. LG Magda

Anzeige
AW: sehr brav!
29.06.2016 23:08:37
Magda
Sorry Määstr !
die Suche funkt trotzdem aber meine vorherige Nachricht ist ja unabhängig davon. Ich wollte Dir nur mitteilen, dass die Suche funktioniert.
LG Magda

wenn die Suche geht, bin ich ja froh
30.06.2016 13:11:17
Michael
Hi Chefin,
Du hast mir schwere Grinsereien entlockt!
Wärst Du in N, würde ich mich auf einen Kaffee mit Dir verabreden wollen, aber es klingt halt nicht so, hier heißt es "Masda", wobei das hintere a doch zu ä tendiert...
Aber ob Du noch wollen würdest, wenn Du wüßtest, daß ich eine Nerd-Koeffizienten von 89 oder so habe, d.h. Kaffeetassen und -flecken, Aschenbecher, Pizzakartons...
Egal: diese Msgboxen dienen ja nur zur Nachverfolgung, wann das Programm was macht. Du kannst sie allesamt auskommentieren, denn das Programm läuft ja. Worum es geht, sind hier Performance-Steigerungen, aber ob der Anwender 50 oder 100 Millisekunden wartet, bis das Fenster aufgeht, ist relativ unwichtig.
Ich würde es erst angehen, wenn es nötig ist.
Du kannst ja mal meine email notieren:
https://www.herber.de/cgi-bin/profile/call_profile.pl?user=1857094
Laß es Dir gutgehen, happy Exceling & LG zurück,
Michael

Anzeige
AW: wenn die Suche geht, bin ich ja froh
30.06.2016 13:46:20
Magda
Hallo Michael,
lach, ich danke Dir für Deine Hilfe und wünsche bis dahin alles Gute und viel Erfolg.
LG Magda

167 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige