Thema Datum  Von Nutzer Rating
Antwort
07.12.2020 12:54:48 Mehoranto
Solved
Blau Excel: Wenn Zelle Text enthält, diesen entfernen und dann die übrige Zahl um eins erhoehen
07.12.2020 13:48:34 Gast15078
Solved
07.12.2020 15:26:55 Gast85593
NotSolved
07.12.2020 15:36:28 Gast70489
NotSolved
08.12.2020 09:24:56 Gast61486
NotSolved
08.12.2020 09:54:12 Gast69341
Solved
08.12.2020 12:35:26 Mehoranto
Solved

Ansicht des Beitrags:
Von:
Gast15078
Datum:
07.12.2020 13:48:34
Views:
658
Rating: Antwort:
 Nein
Thema:
Excel: Wenn Zelle Text enthält, diesen entfernen und dann die übrige Zahl um eins erhoehen

Hallo Mehoranto
probier das mal bitte.
Die Originalen Daten werden überschrieben.
Probleme würden Eintragen wie "12km mehr als 7" machen. 
 

Vielleicht hilft das ja weiter

Gruß

 

Sub KM_ändern()
    Dim WS As Worksheet
    Set WS = ActiveSheet
    
    Dim Zeichen As String
    Dim zMax As Long
    Dim Pos As Long
    Dim Idx As Long
    Dim TXT As String
   
    Dim Daten As Variant
    
    Zeichen = "0123456789,"
    
    'letzte Zeile in der Spalte 'A' (1) suchen
    zMax = WS.Cells(2 ^ 16, 1).End(xlUp).Row
    'Von Zeile 2 bis zur letzten Zeile die Spalte 'A' (1) in das Array 'Daten' schreiben
    Daten = WS.Range(WS.Cells(2, 1), WS.Cells(zMax, 1))
    
    'Das Array 'Daten' vom ersten zum letzten Feld durchlaufen
    For Idx = LBound(Daten, 1) To UBound(Daten, 1)
        'Wenn keine Zahl drinsteht dann ...
        If IsNumeric(Daten(Idx, 1)) = False Then
            TXT = ""
            'Durchlaufe gesamten Zellinhalt Zeichen für Zeichen
            For Pos = 1 To Len(Daten(Idx, 1))
                'Überprüfe jedes Zeichen mit erlaubten Zahlenzeichen (mit Komma)
                If InStr(1, Zeichen, Mid(Daten(Idx, 1), Pos, 1), vbTextCompare) > 0 Then
                    'Erstelle eine Zeichenkette mit den gefundenen Zahlen 
                    TXT = TXT & Mid(Daten(Idx, 1), Pos, 1)
                End If
            Next Pos
            'Geänderte Zahl wieder in Array schreiben
            'Ich addiere nur 0,1 und Runde die Zahl auf. Bei 5,7 ergibt das dann 6 und bei ganzen Zahlen eins mehr
            Daten(Idx, 1) = Application.WorksheetFunction.RoundUp(CSng(TXT) + 0.1, 0)
        End If
    Next Idx
    'Debug in Spalte 'B' (Hier die 2)
'    WS.Range(WS.Cells(2, 2), WS.Cells(zMax, 2)) = Daten
    'Originale Daten überschreiben
    WS.Range(WS.Cells(2, 1), WS.Cells(zMax, 1)) = Daten
    
    Set WS = Nothing
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.12.2020 12:54:48 Mehoranto
Solved
Blau Excel: Wenn Zelle Text enthält, diesen entfernen und dann die übrige Zahl um eins erhoehen
07.12.2020 13:48:34 Gast15078
Solved
07.12.2020 15:26:55 Gast85593
NotSolved
07.12.2020 15:36:28 Gast70489
NotSolved
08.12.2020 09:24:56 Gast61486
NotSolved
08.12.2020 09:54:12 Gast69341
Solved
08.12.2020 12:35:26 Mehoranto
Solved