Microsoft Excel

Herbers Excel/VBA-Archiv

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

Hochstellung von Zeichenfolgen

Betrifft: Hochstellung von Zeichenfolgen von: Chris
Geschrieben am: 21.09.2006 13:08:37

Hallo,

in einer Arbeitsmappe sind mehrfach die Zeichenfolge "*1" , "*2" oder "*3" vorhanden. Diese soll auf eine bestimmte Fußnote hinweisen.

Diese Zeichenfolgen stehen zumeißt nicht alleine in einer Zelle, sondern mit anderen als Texteingabe

Beispiel:

Verursacher*1
Person*1
Auswirkung*2

Wie ist es möglich, die Zeichenfolgen "*1" hochzustellen und zwar NUR das "Sternchen 1", nicht die gesamte Zelle.

Mit folgendem Makro ist immer alles hochgestellt:

Sub Makro2()
Dim Sht As Worksheet
    With Application.ReplaceFormat.Font
        .Superscript = True
    End With

    For Each Sht In Worksheets
        Sht.Cells.Replace What:="*1", _
        Replacement:="*1", LookAt:=xlPart, MatchCase:=False, ReplaceFormat:=True
        Sht.Cells.Replace What:="*2", _
        Replacement:="*2", LookAt:=xlPart, MatchCase:=False, ReplaceFormat:=True
        Sht.Cells.Replace What:="*3", _
        Replacement:="*3", LookAt:=xlPart, MatchCase:=False, ReplaceFormat:=True
    Next
End Sub


Vielen Dank für Eure Hilfe

Chris
  


Betrifft: AW: Hochstellung von Zeichenfolgen von: Galenzo
Geschrieben am: 21.09.2006 13:27:37

ich empfehle dir, das Hochstellen eines Zeichens mal per Makrorecorder aufzuzeichnen.
da sollte ein Licht angehen...
Viel Erfolg!
/Galenzo


  


Betrifft: AW: Hochstellung von Zeichenfolgen von: Chris
Geschrieben am: 21.09.2006 14:29:09

Hallo Galenzo,

mein Makro - abgewandelte Aufzeichnugn einer Suchen/ersetzen Funktion - stellt die ganze Zelle hoch.
Dein Hinweis, die Aufzeichnung mit dem Makro-Recorder vom Hochstellen bringt mich da nicht weiter. Sie ergibt Anweisungen wie

With ActiveCell.Characters(Start:=6, Length:=2).Font...... .Superscript = True

Zumindest der Start variiert jedoch. Deshalb wollte ich ja die Suchen/Ersetzen Funktion nutzen.

Übrigens: Ein konkreter Hinweis welches Licht aufgehen sollte bzw. wie Dein Lösungsansatz ist, ist viel sinnvoller als eine kryptische Anweisung zur Selbsterkenntnis.


Gruß

Christoph


  


Betrifft: AW: Hochstellung von Zeichenfolgen von: Galenzo
Geschrieben am: 25.09.2006 13:35:19

.. genau das ist die Anweisung, die zu Denken geben sollte.
ActiveCell.Characters(Start:=6, Length:=2).Font...... .Superscript = True

Die 2 Zeichen ab Position 6 werden hochgestellt. Du mußt das ganze nur noch auf deine Wünsche anpassen.

Viel Erfolg!
/Galenzo


  


Betrifft: AW: Hochstellung von Zeichenfolgen von: ptonka
Geschrieben am: 21.09.2006 14:18:33

Hallo,
mit dem Makro sollte es funktionieren:
Allerdings ist hier die Fussnote fix vorgegeben.
Entweder Du gibst die Fussnote per Userform vor oder änderst diese im anliegenden Makro.
Du kannst auch das Makro so anpassen, dass *1, *2 und *3 gefunden werden.
Besser wäre es aber, eine Userform zu nutzen und das Makro hinter einen CommanButton zu hängen. Zu Beginn des Makros muss dann aber die Eingabe in der Userform abgefragt werden.

Hier das Makro:

Sub fussnoten_hochstellen()
Range("A1").Select
On Error GoTo ende
    Cells.Find(What:="*1", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate

AktiveZelle = ActiveCell.Address

vonvorne:

Wert = ActiveCell.Value
Länge = Len(Wert)
For i = 1 To Länge
    If Mid(Wert, i, 1) = "*" Then
        Starttext = i
        GoTo weiter
    End If
Next i

weiter:
EndeText = Länge - Starttext + 1

With ActiveCell.Characters(Start:=Starttext, Length:=EndeText).Font
        .Superscript = True
End With
        
Cells.FindNext(After:=ActiveCell).Activate

If ActiveCell.Address <> AktiveZelle Then
    GoTo vonvorne
End If
ende:
End Sub



Für Feedback sind viele andere auch dankbar !!!!


  


Betrifft: AW: Hochstellung von Zeichenfolgen / Danke von: Chris
Geschrieben am: 22.09.2006 15:23:31

Hallo Ptonka,

vielen dank für Dein Makro. Es funktionierte gut.

Es stellte zwar immer alles bis zum Ende der Zelle hoch - auch wenn der Fußnotenverweis eigentlich beendet war - dieses konnte aber durch leichtes Bearbeiten der Längenvariable behoben werden.

Danke.

Gruß

Chris


 

Beiträge aus den Excel-Beispielen zum Thema "Hochstellung von Zeichenfolgen"