Anzeige
Archiv - Navigation
1028to1032
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Text ersetzen

Text ersetzen
10.12.2008 07:14:00
robert
Guten Morgen,
mein Problem:
ich zeichne ein Makro auf -Suchen-Ersetzen-, Texte werden in Zahlen umgewandelt.
Ich starte das Makro neu, Texte bleiben erhalten, erst mit F2 in Zelle wird Text zu Zahl.
Warum?
https://www.herber.de/bbs/user/57495.xls
Danke und Gruß
Robert

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text ersetzen
10.12.2008 09:50:26
Tino
Hallo,
versuche es mal mit diesem Makro.
Option Explicit

Sub Text_Trennen()
Dim i As Long, j As Long
Dim meArea

With Application
 .ScreenUpdating = False
    With ActiveSheet.UsedRange
        j = .Cells(.Cells.Count).Row
    End With
      
      For i = 2 To j
            meArea = Cells(i, 1)
            meArea = Replace(meArea, """", "")
            meArea = Split(meArea, ";")
       If Ubound(meArea) > 0 Then Range(Cells(i, 1), Cells(i, Ubound(meArea))) = meArea
      Next i
  
  Call Format_Wandeln
 
 .ScreenUpdating = True
End With
End Sub


Sub Format_Wandeln()
Dim Bereich As Range
Dim tempArea
Dim i As Long, j As Long
    
    With ActiveSheet.UsedRange
        Set Bereich = Range("A2", .Cells(.Cells.Count))
    End With
 tempArea = Bereich
 Bereich.NumberFormat = "General"
 Columns(2).NumberFormat = "dd.mm.yyyy hh:mm"


For i = 1 To Ubound(tempArea, 1)
 For j = 1 To Ubound(tempArea, 2)
  If IsNumeric(tempArea(i, j)) Then
    tempArea(i, j) = Replace(tempArea(i, j), ".", ",") * 1
  End If
 Next j
Next i

Bereich = tempArea
End Sub


Gruß Tino

Anzeige
AW: Text ersetzen
10.12.2008 10:08:05
robert
Hi Tino,
ich habe schon einmal gesagt, Tino ist der Grösste!
Vielen Dank,funkt super, aber was ist an diesem Makro falsch,
dass es zwar beim aufzeichnen wandelt, aber über Makroaufruf nicht?

Sub Wandeln()
Range("A1:A104").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array( _
13, 1 _
), Array(14, 1), Array(15, 1)), TrailingMinusNumbers:=True
Range("C2:O104").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="""", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("E15").Select
End Sub


Anzeige
AW: @Tino-DANKE owT
10.12.2008 10:24:51
robert
AW: TINO-BITTE HILFE!!
10.12.2008 11:03:53
robert
hi tino,
bei deinem makro wir die letzte spalte nicht berücksichtigt !!
bitte um hilfe-warum nicht
gruß
robert
AW: TINO-BITTE HILFE!!
10.12.2008 11:56:14
Tino
Hallo,
sorry, war mein Fehler!
Hier die Korrigierte Version.
Option Explicit



Sub Text_Trennen()
Dim i As Long, j As Long
Dim meArea

With Application
 .ScreenUpdating = False
    With ActiveSheet.UsedRange
        j = .Cells(.Cells.Count).Row
    End With
      
      For i = 1 To j
            meArea = Cells(i, 1)
            meArea = Replace(meArea, """", "")
            meArea = Split(meArea, ";")
       If Ubound(meArea) > 0 Then Range(Cells(i, 1), Cells(i, Ubound(meArea) + 1)) = meArea
      Next i
  
  Call Format_Wandeln
 
 .ScreenUpdating = True
End With
End Sub


Sub Format_Wandeln()
Dim Bereich As Range
Dim tempArea
Dim i As Long, j As Long
    
    With ActiveSheet.UsedRange
        Set Bereich = Range("A2", .Cells(.Cells.Count))
    End With
 tempArea = Bereich
 Bereich.NumberFormat = "General"
 Columns(2).NumberFormat = "dd.mm.yyyy hh:mm"


For i = 1 To Ubound(tempArea, 1)
 For j = 1 To Ubound(tempArea, 2)
  If IsNumeric(tempArea(i, j)) Then
    tempArea(i, j) = Replace(tempArea(i, j), ".", ",") * 1
  ElseIf j = 2 And IsDate(tempArea(i, j)) Then
    tempArea(i, j) = CDate(tempArea(i, j))
  End If
    
 Next j
Next i

Bereich = tempArea
End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: DANKE !!! TINO- OK
10.12.2008 12:38:00
robert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige