Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Stringvergleich - komplex

Betrifft: Stringvergleich - komplex von: Michl
Geschrieben am: 11.08.2004 14:46:38

Hallo ihr Excel-Freaks! ;)

Ich hab da ein Problem und ich bin mir einfach nicht sicher, wie ich das lösen soll. Vielleicht könnt ihr mit ja auf die Sprünge helfen, wäre supi.

Folgendes Szenario:
In der Spalte A meiner Excel-Tabelle steht Text, also z.B.
A1: franz
A2: hans
A3: karl

So jetzt möchte ich aber den Inhalt meiner Zellen nicht immer von Hand eingeben, sondern hab mir einen Code geschrieben, der das für mich übernimmt. Das heißt also, ich lasse eine InputBox aufkommen, die mich nach dem Inhalt befragt, nach dem Klick auf OK soll das Makro dann in der Lage sein, den eingegebenen Begriff mit den bereits vorhandenen Zellinhalten zu vergleichen und mir dann an der richtigen alphabetischen Stelle eine Zeile einfügen und in dieser dann den Inhalt der InputBox reinschreiben.
Veranschaulicht sieht das dann so aus:

Tabelle:
A1: franz
A2: hans
A3: karl

nach der Eingabe von "gustav" in die InputBox, wird eine Zeile an der richtigen alphabetischen Stelle eingefügt und der Inhalt reingeschrieben, also:

Tabelle:
A1: franz
A2: hans
A3: gustav
A4: karl

Ich hoffe, ihr konntet mein Problem verstehen und wisst eventuell einen Lösungsansatz.
Vielen Dank schonmal an euch.

P.S.: An den Admin: Löscht bitte den Beitrag "fdd" von "d", das war ich. Vorhin hat das Beitrag schreiben nicht funktioniert und hab dann halt son Müll produziert, sorry! :(

  


Betrifft: AW: Stringvergleich - komplex von: Uwe Küstner
Geschrieben am: 11.08.2004 15:23:51

Hallo Michel,

wäre es nicht einfacher, den neuen Namen unten anzufügen und danach zu sortieren?

Gruß Uwe


  


Betrifft: AW: Stringvergleich - komplex von: Michl
Geschrieben am: 11.08.2004 15:41:07

Hallo Uwe, danke für deine Antwort.

Das Problem ist leider komplexer, so einfach lässt es sich nicht realisieren.
Schau doch bitte mal in den Beitrag "fdd" von "d". Den hab ich geschrieben, is der gleiche, aber is was schief gelaufen mit dem Beitragsnamen.

Guck doch bitte mal rein und vielleicht kannst du ja dann mein Prob nach vollziehen.

Dank dir.


  


Betrifft: AW: Stringvergleich - komplex von: Uwe Küstner
Geschrieben am: 11.08.2004 21:53:34

Hallo Michl,

hier mal ein Ansatz:
Sub SortInsert()
Dim rngA As Range
Dim rngP As Range
Dim strN As String
Dim bytZ As Byte
Dim bytP As Byte
Set rngA = Intersect(ActiveSheet.Cells.SpecialCells(xlCellTypeConstants), Columns(1))
bytZ = 3 'Anzahl einzufügender Zeilen
strN = "Achim"  'hier dann mit Inputbox einfügen
For Each rngP In rngA
  If LCase(strN) < LCase(rngP.Value) Then
    For bytP = 1 To bytZ
      rngP.EntireRow.Insert xlDown
    Next bytP
    rngP.Offset(-bytZ, 0) = strN
    Exit For
  End If
Next rngP
End Sub
Gruß Uwe


  


Betrifft: AW: Stringvergleich - komplex von: Michl
Geschrieben am: 12.08.2004 08:54:25

Wow, Uwe! Vielen Dank. Funktioniert echt prechtig, bis auf eine Sache:

Wenn ich angenommen die Namen "anita", "franz" und "hans" in der ersten Spalte stehen hab und dann per InputBox den Namen "peter" einfügen will, macht das Makro gar nichts, also es schreibt den Namen nicht in die Zelle, in diesem Fall die Untereste.

Das heißt also, zwischen zwei Zellen mit Inhalt gibt es keine Probleme den Inhalt der InputBox reinzuschreiben, aber wenn ein Name, der im Alphabet unter dem Inhalt der letzten Zelle in Spalte A stehen müsste eingefügt werden soll, dann macht das Makro nichts.