Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Teilwert einer Zelle auslesen und zu anderem Teilwert einen vorgegebenen Wert addiere
#1
Hallo Forumsnutzer,

ich habe eine Frage zum Auslesen von Teilwerten einer Zelle und deren Weiterverarbeitung und weiss auch gar nicht ob das so überhaupt möglich ist.

Die Tabelle hat über 40.000 Zeilen und 9 Spalten.
In verschiedenen Zellen stehen werde die mit "Z" oder "Z-" beginnen, nach Z oder Z- stehen dann noch Zahlenwerte.
Jetzt hätte ich gerne die ganzen Werte in ein neues Tabellenblatt übertragen und dabei soll bei allen Zellen in denen "Z" oder "Z-" enthalten ist der Zahlenwert ausgelesen werden und jeweilst mit einem vorgegebenen wert addiert werden.

Beispiel:
Zellwert: "Z400." --> Addierungswert - 660 --> Ergebnis in neuer Zelle auf neuem Tabellenblatt "Z1060."

Bei Minuswerten - Beispiel:
Zellwert: "Z-400." --> Addierungswert - 660 --> Ergebnis in neuer Zelle auf neuem Tabellenblatt "Z260."


Anbei die Excelliste:

.xlsx   Werte.xlsx (Größe: 1,01 MB / Downloads: 5)

Vielen Dank für die Hilfe
Antworten Top
#2
Hi,

brauchst Du den Punkt am Ende des Strings oder kann der wegfallen ?
Überlegen macht überlegen
Gruss aus dem schönen Hunsrück
_______ Klaus-Martin _______
Antworten Top
#3
Hi,

der Punkt steht für die Maschine welche die Datei dann einlesen soll für ein Komma und wird nur dann benötigt wenn hinter dem Punkt noch weitere Zahlen stehen, was auch
vorkommen kann.

allso "Z400." +660 darf dann "Z1060" sein
aber "Z400.50" sollte dann bei +660 "Z1060.50" sein.
Antworten Top
#4
Hallo

Code:
="Z"&WECHSELN(WECHSELN(WECHSELN(A1;"Z";"");".";",")+660;",";".")
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#5
Hi,

teste das mal in einer Kopie der Mappe...
aber Garantie gibt es keine, wenn das auf eine Maschine soll und knallt!

Code:
Sub stantiv()
Dim rng As Range, rng_cell As Range, lngCalc As Long
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        lngCalc = .Calculation
        .Calculation = xlCalculationManual
        .DisplayAlerts = False
    End With
    On Error GoTo errmsg
    Cells.NumberFormat = "General"
    Cells.Replace What:="Z", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Set rng = Cells.SpecialCells(xlCellTypeConstants, 1)
    Range("M1").Value = 660 'anpassen
    Range("M1").Copy
    With rng
    .PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
        False, Transpose:=False
    For Each rng_cell In rng
        rng_cell.Value = "Z" & Format(rng_cell, "0.#####")
    Next
    End With
    Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    Range("M1").Value = ""
    Set rng = Nothing
    Set rng_cell = Nothing
errmsg:
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = lngCalc
        .DisplayAlerts = True
    End With
If Err.Number <> 0 Then MsgBox Err.Number & " / " & Err.Description
End Sub

mit . am Ende
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#6
Hallo,

Super Danke,

Die Zellen mit Z werden alle berechnet.
Jetzt bräuchte ich noch das alle anderen Werte ohne Z im Original ohne Veränderung übernommen  werden.
Habe die Liste noch mal mit der eingefügten Formel angehängt:

.xlsx   Werte.xlsx (Größe: 1,01 MB / Downloads: 2)

Code:
="Z"&WECHSELN(WECHSELN(WECHSELN(A1;"Z";"");".";",")+660;",";".")
Antworten Top
#7
Hallo Chris,

den code probiere ich auch gleich aus - Danke dafür
Antworten Top
#8
(14.06.2016, 15:23)Valeverde schrieb: Jetzt bräuchte ich noch das alle anderen Werte ohne Z im Original ohne Veränderung übernommen  werden.
Code:
=WENNFEHLER("Z"&WECHSELN(WECHSELN(WECHSELN(A1;"Z";"");".";",")+660;",";".");A1)
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#9
Thumbs Up 
Hallo Chris,

der Code ist perfekt, macht genau das was wir wollten.

Vielen Dank dafür Thumps_up

Ich gehe das mit meinen Kollegen jetzt durch und wir schauen ob sich die Maschine genauso freut.

Melde mich dann noch mal...
Antworten Top
#10
Hallo,

es hat alles super geklappt.

Noch mal vielen Dank für die Lösung.

Alles Gute...
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste