Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
732to736
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
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

neue Datensätze nach Namen alphab. einsortieren

neue Datensätze nach Namen alphab. einsortieren
21.02.2006 06:47:21
marcl
Moin moin,
ich habe eine Teilnehmerliste mit ca. 200 Personen. Die sind verknüpft mit anderen Blättern.
Ich möchte nun, wenn eine neue Person dazu kommt, dass diese in der Liste an der richtigen Position eingefügt wird.
Dazu müssten alle Blätter markiert, in der einen die richtige Stelle gefunden und dann eine neue Zeile eingefügt werden.
Wie bekomme ich da am Betsen hin?
Danke für Eure Hilfe
Gruß
marcl

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: neue Datensätze nach Namen alphab. einsortieren
21.02.2006 09:36:14
WernerB.
Hallo marcl,
wie gefällt Dir das?

Sub marcl()
Dim SuBe As Range, _
s As String, _
laR As Long, nZ As Long, _
laC As Integer, i As Integer
Sheets(1).Select
s = InputBox(vbCr & vbCr & vbCr & "neuen Namen eingeben:", "Zugang")
If s = "" Then
MsgBox "Sie haben keine Eingabe gemacht !" & vbCr & vbCr & _
"    Das Makro wird abgebrochen !", vbOKOnly + vbCritical, _
"Dezenter Hinweis für " & Application.UserName & ":"
Exit Sub
End If
laR = Cells(Rows.Count, 1).End(xlUp).Row
Range("A" & laR + 1).Value = s
laC = Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column
Range(Cells(1, 1), Cells(laR + 1, laC)).Sort Key1:=Range("A2"), _
Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Set SuBe = Range("A1:A" & laR + 1).Find(What:=s, _
After:=Range("A" & laR + 1), LookAt:=xlWhole)
If Not SuBe Is Nothing Then
nZ = SuBe.Row
Set SuBe = Nothing
For i = 2 To Sheets.Count
Sheets(i).Rows(nZ).Insert Shift:=xlDown
Next i
End If
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: neue Datensätze nach Namen alphab. einsortieren
22.02.2006 06:07:16
marcl
Danke Werner,
werde das mal am Wochenende ausprobieren.
Gruß Marcl
AW: neue Datensätze nach Namen alphab. einsortieren
23.02.2006 06:41:41
marcl
Hallo Werner,
ich bin mit Deinem Vorschlag nicht ganz klar gekommen. Habe nun sowas gebastelt. Kann man da einiges verkürzen?

Sub neuer_Zugang()
Range("IV1") = "1"
Sheets("Daten").Range("IV1") = "1"
Range("AH4").Select
' neue Daten kennzeichnen
Do While ActiveCell <> ""
ActiveCell.Offset(0, 222) = "neu"
ActiveCell.Offset(1, 0).Select
Loop
' Bestand zu neuen dazu und sortieren
Sheets("Daten").Range("AH4:AI1994").Copy
Sheets("Zugang").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rows("4:452").Select
Selection.Sort Key1:=Range("AH4"), Order1:=xlAscending, Key2:=Range("AI5" _
), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
Columns("IV:IV").Select
Do While Range("IV1") <> ""
' Stellen der neuen finden und in den verknüpften Tabellen richtig einsetzen
On Error GoTo weiter
Sheets("Zugang").Select
Columns("IV:IV").Select
Selection.Find(What:="neu", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
zeile = ActiveCell.Row
ActiveCell = ""
Rows(ActiveCell.Row).Copy
Sheets(Array("Daten", "Zahlungen", "DTSA Liste", "TK Belegung")).Select
Rows(zeile).Select
Rows(zeile).Insert Shift:=xlDown
Loop
weiter:
On Error GoTo 0
Range("IV1") = ""
' Verknüpfungen der anderen Tabellen nach oben und unten ziehen
Sheets("Daten").Range("IV1") = ""
Sheets("Zahlungen").Select
Range("A5:G5").Select
Selection.AutoFill Destination:=Range("A4:G5"), Type:=xlFillDefault
Range("A4:G5").Select
Selection.AutoFill Destination:=Range("A4:G226"), Type:=xlFillDefault
Range("A4:G226").Select
Sheets("DTSA Liste").Select
Columns("A:A").Select
Selection.Find(What:="Summe", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
zelle = ActiveCell.Offset(-1, 0).Row
Range("A3:K3").Select
Selection.AutoFill Destination:=Range("A2:K3"), Type:=xlFillDefault
Range("A2:K3").Select
Range("A2").FormulaR1C1 = "1"
Range("A3:K3").Select
Selection.AutoFill Destination:=Range("A3:K" & zelle), Type:=xlFillDefault
Range("A3:K254").Select
Sheets("TK Belegung").Select
Range("A4:V4").Select
Selection.AutoFill Destination:=Range("A3:V4"), Type:=xlFillDefault
Range("A3:V4").Select
Range("A3").Select
ActiveCell.FormulaR1C1 = "1"
Range("A4").Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",R[-1]C+1)"
Range("A4:V4").Select
Selection.AutoFill Destination:=Range("A4:V673"), Type:=xlFillDefault
End Sub

Vielen Dank
Gruß
marcl
Anzeige
AW: neue Datensätze nach Namen alphab. einsortieren
23.02.2006 10:28:09
WernerB.
Hallo marcl,
entsprechend Deiner ursprünglichen Problembeschreibung habe ich Dir einen Lösungsvorschlag angeboten.
Mit diesem kommst Du offenbar nicht zurecht und stellst statt dessen einen umfangreichen Code ins Forum, der verkürzt werden soll.
Ich habe jedoch weder die Zeit noch die Lust, mich da hineinzudenken.
Statt dessen solltest Du m.E. das Problem vielleicht in einem neuen Thread noch mal neu formulieren.
Die Frage habe ich auf "offen" gestellt - möglicher weise könnte sich ja auch ein anderer hilfsbereiter Forumsteilnehmer mit Deinem Code auseinandersetzen wollen ...
Gruß
WernerB.
Anzeige
@ WernerB
23.02.2006 15:39:58
marcl
Da sollten wir doch mal einiges klarstellen, oder?
WernerB.: P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
marcl: Dann sollten die Antworter auch nicht genervt sein, wenn die Fragesteller antworten, gelle?
WernerB.: ... Mit diesem kommst Du offenbar nicht zurecht ...
marcl: Korreckt, das hatte ich ja geschrieben.
WernerB.: ... Ich habe jedoch weder die Zeit noch die Lust, mich da hineinzudenken. ...
marcl: Immerhin ehrlich. Aber hätte man das nicht auch netter formulieren können?
WernerB.: ... möglicher weise könnte sich ja auch ein anderer hilfsbereiter Forumsteilnehmer mit Deinem Code auseinandersetzen wollen ...
marcl: ich weiß, dass es nicht so super ist, wenn man lange Codes einstellt. Hätte ich das geteilt, hätte man evtl nicht folgen können.
In diesem Sinne,
marcl
Anzeige
AW: @ WernerB
24.02.2006 07:03:41
WernerB.
Hallo marcl,
offensichtlich haben wir beide höchst unterschiedliche Erwartungshaltungen an das Forum.
Halten wir mal fest:
1. Du stellst eine Problembeschreibung ins Forum und hoffst auf entsprechende Hilfe.
2. Ich erarbeite einen (aus meiner Sicht) passenden Lösungsvorschlag entsprechend der Problembeschreibung.
3. Du kommst mit dem Vorschlag nicht zurecht, verschweigst jedoch die Gründe (was funktioniert nicht, war die Problembeschreibung zu ungenau, Du kannst den Code nicht lesen, oder …, oder …, oder was?), so dass ich keine Chance zur eventuellen Nachbesserung habe.
4. Statt dessen setzt Du mir einen Haufen schlampig fabrizierten Code vor die Tür (ich weiß, das kann man auch netter formulieren!) und glaubst, "Soll der das mal für mich richten!"
5. Ich lehne dieses für mich nicht zumutbare Ansinnen ab und Du regst Dich darüber auf.
Meine abschließende Empfehlung: Wenn Du von der Palme – auf die ich Dich offenbar gejagt habe – wieder herunter gestiegen bist, erst dann – bitte wirklich erst dann – solltest Du Dir die Forums-FAQ mal "reinziehen" und damit in Dich gehen.
Vielleicht hast Du danach ja etwas mehr Verständnis für meine Haltung.
Gruß
WernerB.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige