1.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich bin absoluter Anfänger bei Excel VBA. Ich habe eine einfache alphabetische Sortieraufgabe bei der ich einen neuen Namen in eine bestehende Liste einorndnen will. Aktuell geb ich den Namen über eine MessengerBox ein, will den neuen Namen aber in Zukunft von einem festen Feld, z.B. !"A1", übernehmen. Ich weiß nicht wie ich das richtig programmieren soll.
Hier der aktuelle Stand:
Sub Einfügen()
Range("D1").Select
name = Application.InputBox("Name eingeben: ", "Mitglieder")
vglText = name
zeile = 1 'Ab wo die Werte stehen
spalte = 4 'Die Spalte wo die Werte stehen (A=1, B=2,...)
While vglText > ActiveSheet.Cells(zeile, spalte) And ActiveSheet.Cells(zeile, spalte) > " "
zeile = zeile + 1
Wend
b = MsgBox("Der Wert gehört vor Zeile " & zeile & " eingefügt")
Range("D1").Select
ActiveCell.Range(Cells(zeile, 1), Cells(zeile, 1)).Select
Sheets("Mitglieder2012").Select
End Sub

2 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi :-)

ein beispiel

gruss nighty

eingabefeld a1

spalte d wird eingefügt und sortiert

der code ist einzufuegen

alt +f11 / projektexplorer / deinetabelle

Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$1" Then
Range("A1").Copy Range("D" & ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row + 1)
Range("D2:D" & ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row).Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom
End If
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hi nighty,
danke für die schnelle Antwort. Habe nur noch ein Problem: Programm moniert ständig fehlendes "end sub" obwohl es programmiert ist. Und wie könnte denn der Befehl aussehen, wenn der Inhalt des Eingabefeldes "A1" als zusätzliche Zeile alphabetisch eingefügt werden sollte?
Danke und Gruß
...