Thema Datum  Von Nutzer Rating
Antwort
07.12.2020 12:54:48 Mehoranto
Solved
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
Blau Excel: Wenn Zelle Text enthält, diesen entfernen und dann die übrige Zahl um eins erhoehen
08.12.2020 09:54:12 Gast69341
Solved
08.12.2020 12:35:26 Mehoranto
Solved

Ansicht des Beitrags:
Von:
Gast69341
Datum:
08.12.2020 09:54:12
Views:
611
Rating: Antwort:
 Nein
Thema:
Excel: Wenn Zelle Text enthält, diesen entfernen und dann die übrige Zahl um eins erhoehen

Hallo,
bei den ws.cells(Zeile,Spalte) hättest du erste Zahl 2 gegen eine 3 tauschen müssen.

Hier nochmal der komplette Code :)

 

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 3 bis zur letzten Zeile die Spalte 'A' (1) in das Array 'Daten' schreiben
    Daten = WS.Range(WS.Cells(3, 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(3, 2), WS.Cells(zMax, 2)) = Daten
    
    'Originale Daten überschreiben ab Zeile 3 
    WS.Range(WS.Cells(3, 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
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
Blau Excel: Wenn Zelle Text enthält, diesen entfernen und dann die übrige Zahl um eins erhoehen
08.12.2020 09:54:12 Gast69341
Solved
08.12.2020 12:35:26 Mehoranto
Solved