Office: Wert zwischen zwei Zeichen in andere Spalte

Helfe beim Thema Wert zwischen zwei Zeichen in andere Spalte in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Ich müsste einen Zahlenwert, der zwischen zwei Zeichen in einer Spalte steht, eine Spalte weiter zu übertragen. Das Ganze Zeile für Zeile. Ich habe... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Freitag31, 22. November 2017.

  1. Wert zwischen zwei Zeichen in andere Spalte


    Ich müsste einen Zahlenwert, der zwischen zwei Zeichen in einer Spalte steht, eine Spalte weiter zu übertragen. Das Ganze Zeile für Zeile.
    Ich habe versucht aus diversen Seiten Programmteile für ein Makro zusammenzubasteln, aber stoße an meine Grenzen. Kann mir da jemand helfen:


    Sub WertZwischenZweiZeichen()

    i = 1
    While Cells(i, 1) ""


    Dim SignEins, SignZwei As Integer
    Dim Text As String

    Text = Cells(i, 12)
    SignEins = InStr(Text, "€")
    SignZwei = InStr(Text, "_")

    Cells(i, 13) = Mid(Text, SignEins + 1, (SignZwei - 1) - (SignEins + 1))


    i = i + 1
    Wend
    End Sub

    Die Ursprungstexte sehen in etwa so aus:
    ABCD56E78€12_FGH
    Ich müsste davon die 12 in die nächste Spalte bringen.

    :)
     
    Freitag31, 22. November 2017
    #1
  2. OfficeUser Neuer User
    ich hätte es ohne VBA gelöst.

    Tabelle1
     AB
    2ABCD56E78€12_FGH12
    verwendete Formeln
    Zelle Formel Bereich N/A
    B2=TEIL(A2;SUCHEN("€";A2)+1;SUCHEN("_";A2)-SUCHEN("€";A2)-1)*1  
    Excel-Inn.de
    Hajo-Excel.de
    XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
    Add-In-Version 25.14 einschl. 64 Bit
     
    OfficeUser, 24. November 2017
    #2
  3. Danke, aber Ich brauche arbeitstechnisch ein VBA dazu.
     
    Freitag31, 24. November 2017
    #3
  4. Wert zwischen zwei Zeichen in andere Spalte

    Du kannst doch Hajos Formel mittels VBA in die Spalte schreiben und .Value = .Value machen.
    Läuft allemal flotter als Deine beabsichtigte Schleife mit Zellzugriffen.

    Gruß Ralf
     
  5. DeinBereich anpassen:
    Code:
     
  6. Das würde schon gehen.
    Ich habe aber eine komplexe Tabelle in der ich laufend Zeilen einfügen, verschieben, weiterverlinken auch löschen usw. muss. Hier gibts dann Konflikte. Ausserdem müsste ich den Vorgang für viele (26) Tabellenseiten wöchentlich immer wieder neu machen.
    Da ich sowieso einen VBA Durchlauf machen muss, wäre es auf diesem Weg eine große Erleichterung.
     
    Freitag31, 25. November 2017
    #6
  7. Mein letzter Beitrag war jetzt aber nicht chinesisch, oder?
    War sogar fast pfannenfertig.
    Gut, den Bereich musst Du anpassen, da ich ihn nicht kenne.
     
  8. Wert zwischen zwei Zeichen in andere Spalte

    Hallo,

    Ralf's löst die Aufgabe zwar gut, man kann es aber auch als UDF formulieren.

    Als Beispiel wird ein Text in A1 geschreiben und per UDF die Zahl ausgelesen:


    PHP:
             sub main
    cells
    (1,1) = "Dphf€23,4_nrnc"
    msgbox gesuchtezahl(cells(1,1))
    end sub
    function gesuchteZahl(Tx as string) as double
    Tx 
    replace(Tx",",".")
    gesuchteZahl =  split(split(Tx,"€")(1),"_")(0)
    End function
     
  9. Für mich ist das leider schon chinesisch, weil ich so selten damit zu tun habe.

    Wenn ich deinen Teil so in meine Schleife einbaue (mein Bereich sei die 7te Spalte) - wie sage ich dem Programm, dass es den Wert in Spalte 8 einsetzen soll?



    Sub Werteversuch003()

    i = 1
    While Cells(i, 1) ""

    With Cells(i, 7)
    .FormulaR1C1 = "=MID(RC1,SEARCH(""€"",RC1)+1,SEARCH(""_"",RC1)-SEARCH(""€"",RC1)-1)*1"
    .Copy: .PasteSpecial xlPasteValues
    End With

    i = i + 1
    Wend

    End Sub
     
    Freitag31, 25. November 2017
    #9
  10. Ich habe es jetzt mal mit 10.000 Datensätzen probiert, Phi.
    "Meine" Funktion ist doppelt so schnell wie Deine UDF.
    (hat mich jetzt aber nicht verwundert, ich hätte die Differenz eher noch größer geschätzt)
    Mein Testcode:
    Man könnte jetzt nochmal mit einem Array testen, aber ich muss jetzt weg, REVIERDERBY!!!

    Gruß Ralf
     
  11. NEIN!!
    Lass den Blödsinn mit der langsamen Schleife und bearbeite den Bereich im Block!
     
  12. Ich habs jetzt gelöst.
    Und falls hier irgendwann jemand mit dem gleichen Problem hier landet, ist das vielleicht eine Hilfe:

    Sub ZweiZeichen()

    Dim Text As String
    Dim Euro As Variant



    i = 1
    While Cells(i, 1) ""

    Text = Cells(i, 7)
    pos1 = InStr(Text, "€") + 1 'Position erster Punkt
    If pos1 > 1 Then Euro = Mid(Text, pos1) Else: Euro = ""
    pos2 = InStr(Euro, "_") - 1
    If pos2 > 0 Then Euro = Left(Euro, pos2)


    Cells(i, 12) = Euro

    i = i + 1
    Wend
    End Sub
     
    Freitag31, 25. November 2017
    #12
  13. Wert zwischen zwei Zeichen in andere Spalte

    Sub KickUrLegsUp() 'Kombination aus #8 und #12
    n = [A65536].End(xlUp).Row 'einmalige Erledigung VOR DER Schleife, statt Exit For
    a = [A1:A65535] 'gib Spalte A in ein Variantarray aus
    For i = 1 to n
    a(i, 1) = Split(Split(Replace(a(i, 1), ",", "."), "€")(1), "_")(0)
    Next
    [B1:B65535] = a 'gib das Variantarray in Spalte B aus
    End Sub 'Ausführung ~0,8 Sekunden bei 65536 Einträgen
     
  14. Danke Lupo1,
    für deine Weiterverbesserung. Die freut mich. *Smilie
     
    Freitag31, 26. November 2017
    #14
Thema:

Wert zwischen zwei Zeichen in andere Spalte

Die Seite wird geladen...
  1. Wert zwischen zwei Zeichen in andere Spalte - Similar Threads - Wert Zeichen Spalte

  2. Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.

    in Microsoft Excel Hilfe
    Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.: Hallo, kann mir jemand bitte bei folgenderm Helfen. Habe etwas ähnliches gefunden was ich brauche, nur noch eine kleine Änderung ist notwendig. Aufgabe: Es wird geprüft, ob in Spalte Q ein Wert...
  3. Abfrageergebnis soll keine doppelten Werte enthalten

    in Microsoft Access Hilfe
    Abfrageergebnis soll keine doppelten Werte enthalten: Ich suche nach einer Lösung für folgendes Problem. In einer Tabelle werden Abwesenheiten erfasst. Verknüpft mit einer Mitarbeitertabelle. So erhalte ich eine Übersicht welcher Mitarbeiter aus...
  4. Teilstring einer Zelle auf Wert aus anderer Zelle überprüfen

    in Microsoft Excel Hilfe
    Teilstring einer Zelle auf Wert aus anderer Zelle überprüfen: Hallo zusammen, ich habe in einer Excel-Tabelle in zwei Tabellenblätter. Tabellenblatt "Artikelstamm" beinhaltet in Spalte A eine Artikel-Nr. und diverse weitere Spalten. Hier ein kleiner Auszug:...
  5. konti aufzählung und wert gleicher konti zusammenfassen

    in Microsoft Excel Hilfe
    konti aufzählung und wert gleicher konti zusammenfassen: hallo ich möchte eine automatische konti aufzählung aller gleichen konti und gleichzeitig die werte gleicher konti zusammenfassen (rot sind die zahlen, welche ich errechnen lassen möchte) danke...
  6. Werte zusammenzählen - ab einer Zelle die nächsten 5

    in Microsoft Excel Hilfe
    Werte zusammenzählen - ab einer Zelle die nächsten 5: Hallo. ich würde gerne eine bestimmte Menge an Zellen zusammenzählen. Genau gesagt: Wenn in einer Zelle (A1) die Zahl 5 steht dann soll Excel ab B2 die nächsten 5 Werte zusammenzählen. Wenn...
  7. Bedingte Formatierung basierend auf Wert anderer Zelle

    in Microsoft Excel Hilfe
    Bedingte Formatierung basierend auf Wert anderer Zelle: Hallo zusammen, beim Erreichen des 18. Lebensjahres (Geburtsdatum Spalte D, Alter automatisch in Spalte E kalkuliert) soll eine bedingte Formatierung den Namen und Vornamen der Teilnehmer (Spalte...
  8. Anzahl an Zeichen abhängig von Wert generieren

    in Microsoft Excel Hilfe
    Anzahl an Zeichen abhängig von Wert generieren: Hallo, folgendes Problem: Ich möchte in einer Zelle eine bestimmte Anzahl an Zeichen generieren, abhängig von einer Zahl. Also etwas in der Art "Verketten("I"*A1)" und wenn A1=5, dann ist...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden