Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Name kürzen





Frage

Hallo! brauche Eure hilfe wieder mal :-) Ich möchte, dass bei der Bezeichnung S0101066-[b]1000,[/b]S0101066-[b]2000[/b], S0101066-[b]3000 [/b]nicht gekürzt wird, sonst immer kürzen. Beispiel : S0202040-1200 (kürzen) auf S0202040 S0202040-1500 (kürzen) auf S0202040 aber bei S0101066-1000 (nicht kürzen) muss so angezeigt werden. S0101066-2000 (nicht kürzen) muss so angezeigt werden. S0101066-3000 (nicht kürzen) muss so angezeigt werden. Formel: namekuerzen = Left$(var2vpname, 8) Wie mache ich das ? weiter bin ich nicht Gruß, LuiS

Antwort 1 von Flupo

Brauchst du die Lösung als Tabellenfunktion oder als VBA-Code?

Gruß Flupo

Antwort 2 von LuiS23

Hallo,

als VBA-code

Gruß, LuiS

Antwort 3 von LuiS23

Hallo,

als VBA-code

Gruß, LuiS

Antwort 4 von Flupo

Entschuldige bitte, dass ich auch noch was anderes zu tun habe, als hier auf deine Antworten zu warten. ;-)

Da du leider mit Infos zu deinem Programm etwas geizt, hier auch nur ein minimaler Lösungsvorschlag:
Ich gehe davon aus, dass der zu kürzende Wert in der Zeichenkettenvariable "var2vpname" steht und diese auch für die Ausgabe verwendet werden soll:

If Right(var2vpname, 3) <> "000" Then
    var2vpname = Left(var2vpname, 8)
End If


Gruß Flupo

Antwort 5 von rainberg

Hallo LuiS23,

hier mein Vorschlag

Option Explicit

Sub kuerzen()
    Dim rngC As Range
    For Each rngC In Range("A1:A100") 'Bereich anpassen
    If rngC <> "" Then
        If Right(rngC.Value, 4) = "1000" _
        Or Right(rngC.Value, 4) = "2000" _
        Or Right(rngC.Value, 4) = "3000" Then
        Else
            rngC.Value = Left(rngC.Value, Len(rngC.Value) - 5)
        End If
    End If
    Next
End Sub


@ Flupo

Dein Vorschlag kürzt auch 5000, 6000, 1000000 ....usw.

Gruß
Rainer

Antwort 6 von LuiS23

Hallo,

leider hab Ihr mich falsch verstanden oder ich habe mich falsch ausgedrückt.

Ich möchte, das bei den Nummern "S0101066-1000" & "S0101066-2000" & "S0101066-3000" nicht gekürzt wird, sonst immer. Das ist alles.


Range("a1000").Select
Selection.End(xlUp).Select
var2vpname = Range("a2").Value

namekuerzen = Left$(var2vpname, 8)

Antwort 7 von rainberg

Hallo LuiS23,

Zitat:
Ich möchte, das bei den Nummern "S0101066-1000" & "S0101066-2000" & "S0101066-3000" nicht gekürzt wird, sonst immer. Das ist alles.

..... und genau das macht mein Makro.

Gruß
Rainer

Antwort 8 von Flupo

Zitat:
..... und genau das macht mein Makro.

Nö, nicht ganz. Es kürzt alle Strings, die auf "1000", "2000" oder "3000" enden. Kleiner, aber feiner Unterschied.

Die If-Bedingung muss also nur so abgeändert werden, dass nicht ein Teil sondern der ganze String auf Übereinstimmung geprüft wird.

Gruß Flupo

Antwort 9 von Flupo

Ergänzung zu unserer Ehrenrettung: Im Ausgangsposting wurde durch den Fettdruck der Eindruck erweckt, dass die letzten vier Stellen das entscheidende Kriterium sind.

@LuiS23: was sollen die beiden Select-Anweisungen in deinem Code bezwecken?

Gruß Flupo

Antwort 10 von rainberg

Hallo Flupo,

Zitat:
Nö, nicht ganz. Es kürzt alle Strings, die auf "1000", "2000" oder "3000" enden. Kleiner, aber feiner Unterschied.


.... hast Du es mal getestet ?:-))

Gruß
Rainer

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: