Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1584to1588
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

Namensliste und Sortieren (Zeilen)

Namensliste und Sortieren (Zeilen)
21.10.2017 00:10:39
David
Guten Abend liebes Forum dies ist mein erster Beitrag, bin so ziemlich am verzweifeln aus meinem Studium her müssen wir eine kleine selbergestellte Excel Aufgabe mit Makros und vba lösen bzw programmieren. Nun zu meinem Programm: In einer Zelle bsp. A5 sollte man einen Namen eingeben können dieser wird dan mittels Makro in die untere Tabelle hineinkopiert und auf der Zeile Sortiert nach a,b,c....z . etwa so
Userbild

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Namensliste und Sortieren (Zeilen)
21.10.2017 02:00:10
Werner
Hallo David,
zum Beispiel so: Public Sub einordnen_sortieren() Dim loSpalte As Long, loLetzte As Long Dim strSuche As String, ws As Worksheet Set ws = ThisWorkbook.Worksheets("Tabelle1") Application.ScreenUpdating = False With ws strSuche = Left(.Cells(4, 2), 1) loSpalte = .Rows(8).Find(What:=strSuche, After:=.Cells(8, 1), _ LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, _ SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Column loLetzte = .Cells(.Rows.Count, loSpalte).End(xlUp).Row + 1 .Cells(loLetzte, loSpalte) = .Cells(4, 2) .Cells(4, 2).ClearContents loLetzte = .Cells(.Rows.Count, loSpalte).End(xlUp).Row .Sort.SortFields.Clear .Sort.SortFields.Add Key:=ws.Cells(8, loSpalte), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With .Sort .SetRange ws.Range(ws.Cells(9, loSpalte), ws.Cells(loLetzte, loSpalte)) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End With Set ws = Nothing Application.ScreenUpdating = True End Sub Dabei habe ich mich an deinem Screenshot orientiert. Der Name wird in B4 eingegeben, die Buchstaben des Alphabetes stehen in Zeile 8, Daten dann ab Zeile 9.
Gruß Werner
Anzeige
AW: Namensliste und Sortieren (Zeilen)
21.10.2017 07:06:23
Hajo_Zi
nur wenige schauen auf Deinen Rechner und sehen die Datei.
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Also sieht keiner Dein Makro, das die Aktionen im Beitrag schon macht. Wie von Dir geschrieben. Was Du noch machen möchtest hast Du nicht geschrieben.
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Schau mal hier
Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.
Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese hoch.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, solltest du diese Daten anonymisieren bzw. pseudonymisieren.
Falls Du den Download des Forums nicht benutzen möchtest beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms)

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
..jetzt dreht er durch....kwT
21.10.2017 11:21:19
robert
,,,
AW: ..jetzt dreht er durch....kwT
21.10.2017 12:05:03
Werner
Hallo Robert,
wieso denn? Er hat ja keine Ahnung, dass es bereits eine Lösung gibt, weil er meine Beiträge ja nicht liest.
Gruß Werner
AW: Namensliste und Sortieren (Zeilen)
21.10.2017 07:47:13
Sepp
Hallo David,
Sub einornden()
Dim lngCol As Long, lngRow As Long
Dim strInput As String

With Sheets("Tabelle1") 'Tabellenname anpassen!
  strInput = Application.Proper(Trim(.Range("B4")))
  
  If strInput <> "" Then
    lngCol = Asc(strInput) - 64
    If lngCol < 1 Or lngCol > 26 Then lngCol = 27
    lngRow = Application.Max(9, .Cells(.Rows.Count, lngCol).End(xlUp).Row + 1)
    If IsError(Application.Match(strInput, .Range(.Cells(8, lngCol), .Cells(lngRow, lngCol)), 0)) Then
      .Cells(lngRow, lngCol) = strInput
      .Range(.Cells(8, lngCol), .Cells(lngRow, lngCol)).Sort _
        Key1:=.Cells(8, lngCol), Order1:=xlAscending, Header:=xlYes
      .Range("B4") = ""
    End If
  End If
End With
End Sub

Gruß Sepp

Anzeige
Alternativ direkt bei Eingabe
21.10.2017 08:00:13
Sepp
Hallo David,
alternativ kannst du auch direkt bei der Eingabe in B4 die Zuordnung vornehmen.
In das Modul der Tabelle:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngCol As Long, lngRow As Long
Dim strInput As String

On Error GoTo ErrorHandler
Application.EnableEvents = False

If Target.Address(0, 0) = "B4" Then
  strInput = Application.Proper(Trim(Target))
  Target = "": Target.Select
  If strInput <> "" Then
    lngCol = Asc(strInput) - 64
    If lngCol < 1 Or lngCol > 26 Then lngCol = 27
    lngRow = Application.Max(9, Cells(Rows.Count, lngCol).End(xlUp).Row + 1)
    If IsError(Application.Match(strInput, Range(Cells(8, lngCol), Cells(lngRow, lngCol)), 0)) Then
      Cells(lngRow, lngCol) = strInput
      Range(Cells(8, lngCol), Cells(lngRow, lngCol)).Sort _
        Key1:=Cells(8, lngCol), Order1:=xlAscending, Header:=xlYes
    End If
  End If
End If

ErrorHandler:
Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: Namensliste und Sortieren (Zeilen)
21.10.2017 11:24:55
David
Hallöchen zusammen vielen vielen vielen vielen dank für die kompetenten Antworten nun funktioniert mein Programm und kann es hochladen :) dank euch :) "Sehr zufrieden"
Gerne u. Danke für die Rückmeldung. o.w.T.
21.10.2017 12:05:39
Werner
Bedenke aber ...
21.10.2017 12:07:15
Matthias
Hallo,
es gibt auch Vornamen wie z.B. Ümit
Gruß Matthias
und genau das wird bei mir auch berücksichtigt!
21.10.2017 12:43:28
Sepp
Gruß Sepp

ich weiß ;-) owT
21.10.2017 12:44:03
Matthias
AW: und genau das wird bei mir auch berücksichtigt!
21.10.2017 12:48:01
Matthias
Hallo :-)
Wollte damit nur sagen er soll erst Testen welchen Code er benutzt
Tabelle1

 ABCDEFGHAA
8ABCDEFGHAndere
9AnnaBandiClaus Esel GerdHaraldÇaliskan
10AnneBerd  Elfriede GuidoHeide 
11AnnetteBert    GiselaHeinz 
12 Brudi       


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Matthias
Anzeige
AW: Bedenke aber ...
21.10.2017 12:58:36
Werner
Hallo Matthias,
auch wenn der Hinweis nicht an mich gerichtet war - Danke dafür. Das hatte ich ehrlich gesagt überhaupt nicht auf dem Schirm.
Gruß Werner
war ja auch nicht böse gemeint :-) alles gut oT
21.10.2017 13:01:13
Matthias
Hab ich auch nicht so verstanden, passt. o.w.T.
21.10.2017 16:28:17
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige