Anzeige
Archiv - Navigation
868to872
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
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Übertragene, programmierte Daten verändern

Übertragene, programmierte Daten verändern
08.05.2007 20:21:11
Anja
Hallo,
ich hoffe, dass mir jemand weiterhelfen kann.
Ich habe folgendes Problem:
Ich will Excel-Daten, die aus einem anderen Programm erstellt wurden, in eine neue Tabelle übertragen.
Die Daten sehen wie folgt aus:
s5.4.
S8.7
S56.7.1
Soweit so gut.
Nun haben einige Daten als letzte Stelle jedoch einen Punkt (siehe oben).
Diesen Punkt kann ich jedoch nicht gebrauchen, da die Auswertung, die darauf folgen wird, dann Fehler enthält.
Daher möchte ich ihn per VBA-Programmierung auf einmal aus der ganzen Spalte löschen (Spalte kann über 100 Zeilen enthalten).
Alle weiteren Daten sollen jedoch genauso vorhanden bleiben.
Vielen Dank im Voraus für Eure Hilfe!
Anja

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Übertragene, programmierte Daten verändern
08.05.2007 20:32:09
Erich
Hallo Anja,
probier mal

Sub PunktWeg()
Columns(1).Insert
With Range(Cells(1, 1), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 1))
.FormulaR1C1 = "=IF(RIGHT(RC[1],1)=""."",LEFT(RC[1],LEN(RC[1])-1),RC[1])"
.Value = .Value
End With
Columns(2).Delete
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Übertragene, programmierte Daten verändern
08.05.2007 20:42:47
Anja
Hallo Erich,
prima, es hat alles super geklappt. Vielen Dank!
Eine Frage habe ich jedoch noch:
Ist dies auch über mehrere Spalten gleichzeitig möglich?
Kannst du mir da vielleicht auch noch weiterhelfen?
Viele Grüße,
Anja

Anzeige
AW: Übertragene, programmierte Daten verändern
08.05.2007 20:48:25
Ulf
Hallo Anja
bitte

Sub P()
Dim i As Integer
Dim Spalten As Integer
For Spalten = 1 To 5    'für 1. bis 5. Spalte kannst du ändern
For i = 1 To Cells(Rows.Count, Spalten).End(xlUp).Row
If Right(Cells(i, Spalten), 1) = "." Then Cells(i, Spalten) = Left(Cells(i, Spalten) _
, Len(Cells(i, Spalten)) - 1)
Next i
Next Spalten
End Sub


mfg Ulf

AW: Punkt hinten weg in mehrern Soalten
08.05.2007 23:11:00
Erich
Hallo Anja,
etwas schneller als die Bearbeitung der einzelnen Zellen in zwei Schleifen müsste dies gehen: _ p>

Sub PunktWegSpalten()
Dim intC1 As Integer, intC2 As Integer, ii As Integer, lngL As Long
intC1 = 2   ' von-Spalte anpassen
intC2 = 4   ' bis-Spalte anpassen
For ii = intC1 To intC2
Columns(ii).Insert
With Range(Cells(1, ii), Cells(Cells(Rows.Count, ii + 1).End(xlUp).Row, ii))
.FormulaR1C1 = "=IF(ISBLANK(RC[1]),""""," _
& "IF(RIGHT(RC[1],1)=""."",LEFT(RC[1],LEN(RC[1])-1),RC[1]))"
.Value = .Value
End With
Columns(ii + 1).Delete
Next ii
End Sub
Sub PunktWegSpaltenB()
Dim intC1 As Integer, intC2 As Integer, ii As Integer, lngL As Long, strR As String
intC1 = 2   ' von-Spalte anpassen
intC2 = 4   ' bis-Spalte anpassen
For ii = intC1 To intC2
lngL = Application.Max(lngL, Cells(Rows.Count, ii).End(xlUp).Row)
Next ii
Range(Columns(intC1), Columns(intC2)).Insert
strR = "RC[" & intC2 - intC1 + 1 & "]"
With Range(Cells(1, intC1), Cells(lngL, intC2))
.FormulaR1C1 = "=IF(" & strR & "="""","""",IF(RIGHT(" & strR & ",1)="".""," _
& "LEFT(" & strR & ",LEN(" & strR & ")-1)," & strR & "))"
.Value = .Value
End With
Range(Columns(intC2 + 1), Columns(intC2 + intC1 + 1)).Delete
End Sub

Die erste Routine ist etwas einfacher, dafür ist PunktWegSpaltenB() bei vielen Spalten schneller.
In "PunktWegSpaltenB" werden mehrere Spalten zusammen eingefügt und später gelöscht,
der gesamte Bereich wird auf einen Schlag bearbeitet.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Übertragene, programmierte Daten verändern
08.05.2007 20:37:27
Ulf
Hallo Anja
vieleicht so ?

Sub P()
Dim i As Integer
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Right(Cells(i, 1), 1) = "." Then Cells(i, 1) = Left(Cells(i, 1), Len(Cells(i, 1)) - 1)
Next i
End Sub


mfg Ulf

AW: Übertragene, programmierte Daten verändern
08.05.2007 21:37:46
Anja
Hallo zusammen,
vielen, vielen Dank nochmal für Eure Hilfe.
Es hat nun alles geklappt!
Viele Grüße,
Anja

AW: gern geschehen O T
08.05.2007 21:40:00
Ulf

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige