suchen und ersetzten

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: suchen und ersetzten
von: Hans
Geschrieben am: 20.07.2015 12:51:01

Hallo,
ich habe folgendes Problem in einer Excel Tabelle:
Ab Zelle E2 werden in der Spalte E dreistellige Zahlenwerte nach untern aufgeführt.
Immer wenn in einer Zelle der Wert "900" vorkommt soll dieser geändert werden durch
"900-2000", alle anderen Werte (immer dreistellig) sollen geändert werden in
"###-3000".
Das Makro soll immer individuell bis zum Ende der gefüllten Spalte die Änderung durchführen.
Hat hier jemand eine Makrolösung? Vielen Dank!
VG Hans

Bild

Betrifft: AW: suchen und ersetzten
von: UweD
Geschrieben am: 20.07.2015 13:16:43
Hallo
so ??

Sub Neunhundert()
    On Error GoTo Fehler
    Dim i%
    Dim SP%, ZE&, LR&
    Application.ScreenUpdating = False
    
    SP = 5 'Spalte E
    ZE = 2 'ab Zeile 2 wegen Überschrift
   With ActiveSheet
        LR = .Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    
        For i = ZE To LR
            If Len(.Cells(i, SP)) = 3 Then
                If .Cells(i, SP) = 900 Then
                    .Cells(i, SP).Formula = "900-2000"
                Else
                    .Cells(i, SP).Formula = .Cells(i, SP) & "-3000"
                End If
            Else
                        
                    MsgBox "falscher Wert in ZEnd If"
        Next
    End With
    
    '*** Fehlerbehandlung
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    End Sub
gruß Uwe,de

Bild

Betrifft: AW: suchen und ersetzten
von: Hans
Geschrieben am: 20.07.2015 14:28:03
Hallo Uwe,
vielen Dank für die schnell Hilfe. Ich habe das Makro von Jochen eingebaut, aber auch dir Danke!
VG Hans

Bild

Betrifft: AW: suchen und ersetzten
von: JoWE
Geschrieben am: 20.07.2015 13:25:50
Hallo Hans,
oder so:

Private Sub changeValues()
    Dim ze As Range
    Dim myRng As Range
    Set myRng = ActiveSheet.Range("E2:E" & _
        ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row)
    For Each ze In myRng
        If IsNumeric(ze.Value) And ze.Value >= 100 And ze.Value <= 999 Then
            If ze = 900 Then
                ze.Value = "900-2000"
            Else
                ze.Value = "###-3000"
                'oder sollte es so aussehen?
                'ze.Value = ze.Value & "-3000" also z.B. "376-3000"
            End If
        End If
    Next
End Sub
Gruß
Jochen

Bild

Betrifft: AW: suchen und ersetzten
von: Hans
Geschrieben am: 20.07.2015 14:25:57
Hallo Jochen,
super Vielen Dank. Genau so soll es sein, also ohne die Raute sondern mit Werten.
Danke!
VG Hans

Bild

Betrifft: AW: suchen und ersetzten
von: Hajo_Zi
Geschrieben am: 20.07.2015 13:30:50
Hallo Hans,
wenn es nur um die Ansicht geht.

Tabelle3

 E
1895
2896
3897
4898
5899
6900
7901
8902
9903
10904

Zahlenformate
Zelle Format Wert
E1 '[=900]000"-2000";000"-3000" 895
E2 '[=900]000"-2000";000"-3000" 896
E3 '[=900]000"-2000";000"-3000" 897
E4 '[=900]000"-2000";000"-3000" 898
E5 '[=900]000"-2000";000"-3000" 899
E6 '[=900]000"-2000";000"-3000" 900
E7 '[=900]000"-2000";000"-3000" 901
E8 '[=900]000"-2000";000"-3000" 902
E9 '[=900]000"-2000";000"-3000" 903
E10 '[=900]000"-2000";000"-3000" 904
Zellen mit Format Standard werden nicht dargestellt
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.07 einschl. 64 Bit




Bild

Betrifft: AW: suchen und ersetzten
von: Hans
Geschrieben am: 20.07.2015 14:29:05
Hallo Hajo,
danke dir. Die Lösung von Jochen war genau das was ich gesucht habe.
VG Hans

 Bild

Beiträge aus den Excel-Beispielen zum Thema "suchen und ersetzten"