Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Buchstaben aus Spalte löschen

Buchstaben aus Spalte löschen
20.08.2007 14:39:46
Reptil
Hallo zusammen
wiedereinmal brauche ich den rat eures geballten Excel / vba wissens ;-)
es geht um folgendes:
ich habe in einem excelfile eine spalte, in der eigentlich nur zahlen stehen sollten. dummerweiße kann es passieren, dass dort, durch falsche datenpflege in einem anderen system, auch buchstaben stehen. meine idee war nun, die spalte zu durchsuchen und buchstaben einfach durch nichts zu ersetzen. vorgestellt hatte cih mir das so:
Replace(range("G11","G65563"),"A" or "B" or "C" or ..... "Z","")
naja... gehen tut das so nicht, wie ich festgestellt habe, allerdings hab ich auch keine andere idee...
ich hoffe euch geht das anders ;-)
vielen dank im voraus : )
grüße

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Buchstaben aus Spalte löschen
20.08.2007 14:54:00
Jens
Hallo Unbekannter (?)
Stehen in den zu ersetzenden Zellen NUR Buchstaben (z.B. "A"), oder sind das gemischte Werte (z.B. "234AB456C33")?
Für den ersten Fall versuch mal (ungetestet):

Sub tt()
Dim zelle As Range
For Each zelle In Range("G11:G65536")
If Not IsNumeric(zelle.Value) Then
zelle.Replace What:=zelle.Value, Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
Next zelle
End Sub


Gruß aus dem Sauerland
Jens

AW: Buchstaben aus Spalte löschen
20.08.2007 14:59:00
Reptil
unbekannter?
es handelt sich um gemischte werte, wobei die zahlwerte dann auch korrekt sind... es steht also quasi nichts falsches in der zeile, sondern einfach zu viel... bsp:
statt 567 steht drin 567ABCXKKG

Anzeige
AW: Buchstaben aus Spalte löschen
20.08.2007 14:56:00
Jens
Mahlzeit.
Probiers mal hiermit:

Sub BuchstabenEntfernen()
Dim Zelle As Range
Dim neu As String
Dim i As Integer
For Each Zelle In Selection
For i = 1 To Len(Zelle)
Select Case Asc(Mid(Zelle, i, 1))
Case 0 To 64, 123 To 197
neu = neu & Mid(Zelle, i, 1)
End Select
Next i
Zelle.Offset(0, 1).Value = neu
neu = ""
Next Zelle
End Sub


Soll "G" bereinigt werden kommt das Ergebnis in "H". Markiere einfach den zu reinigenden Bereich und führe das Makro aus; leider nicht von mir (danke an den Verfasser!) aber funktioniert für meine Belange. Probiers halt mal aus.
Gruß aus dem Ruhrgebiet
Jens

Anzeige
AW: Buchstaben aus Spalte löschen
20.08.2007 14:58:11
Onkel
Hallo Reptil
test mal dies:

Sub raus()
Dim intZ As Integer, zelle As Range
For Each zelle In Selection
zelle = BuchstRaus(zelle)
Next
End Sub



Function BuchstRaus(rng As Range)
Dim intZ As Integer
For intZ = 1 To Len(rng)
Select Case Asc(Mid(rng, intZ, 1))
Case 48 To 57
BuchstRaus = Val(BuchstRaus & Mid(rng, intZ, 1))
End Select
Next intZ
End Function


Gruss Onkel

AW: Buchstaben aus Spalte löschen
20.08.2007 15:01:00
Daniel
Hi
naja, da brauchst du wohl eine Schleife für, also

Sub Zeichen_Löschen()
Dim i As Long
Dim LöschZeichen As String
LöschZeichen = " abcdefghijklm....." 'hier alle zu löschenden Zeichen aufführen
For i = 1 To Len(LöschZeichen)
Range("A:A").Replace what:=Mid(LöschZeichen, i, 1), lookat:=xlPart, replacement:="", MatchCase:= _
False
Next
End Sub


Groß/kleinschreibung spiele mit den entsprechenden Parametern keine Rolle, dh. die Buchstaben müssen nur einmal aufgeführt werden.
Wenn nur die Buchstaben A-Z gelöscht werden sollen und sonst keine andern Zeichen, kann man es auch so schreiben


Sub Zeichen_Löschen()
Dim i As Long
For i = Asc("a") To Asc("z")
Range("A:A").Replace what:=Chr(i), lookat:=xlPart, replacement:="", MatchCase:=False
Next
End Sub


Gruß, Daniel

Anzeige
AW: Buchstaben aus Spalte löschen
20.08.2007 15:03:54
Peter
Hallo Reptil
so könnte es gehen:

Public Sub OnlyDigits()
Dim re      As Object
Dim rCelle  As Range
Set re = CreateObject("vbscript.regexp")
re.Pattern = "[^0-9]+"
re.Global = True
For Each rCelle In Range("G11:G" & Range("G65536").End(xlUp).Row)
rCelle.Value = re.Replace(rCelle.Value, "")
Next rCelle
Set re = Nothing
End Sub


Gruß Peter

AW: Buchstaben aus Spalte löschen
20.08.2007 15:29:00
Reptil
OHA, danke für eure schnelle und zahlreiche hilfe, bin echt begeistert : )
@jens: es soll ohne markierung funktionieren, das makro sollte automatisch nach ausführung von anderen makros aufgrufen werden.
@onkel: siehe oben ;-)
@daniel: ja, es umfasst auch noch ein anderes zeichen, ein komma ,
jedoch brachte mir dein code eine fehlermeldung ein, nachdem ich die range an mein file angepasst hatte ( range("G11", "G65563"))
@Pester Feustel dein code schmiss mir leider bei allen komma zahlen die kommata raus...
...ich bin aber auch mit nix zufrieden zu stellen : (
kann man eure codes entsprechend anpassen? bin vba mäsig nicht so versiert....

Anzeige
AW: Buchstaben aus Spalte löschen
20.08.2007 15:35:36
Onkel
Hallo reptil
Ist doch ganz einfach:
tausche doch Selection mit deinem Bereich aus (Range("G11:G?")
Gruss Onkel

AW: Buchstaben aus Spalte löschen
20.08.2007 15:41:00
Peter
Hallo Reptil,
so behälst du auch deine Kommata:

Public Sub OnlyDigits()
Dim re      As Object
Dim rCelle  As Range
Set re = CreateObject("vbscript.regexp")
re.Pattern = "[^0-9,]+"
re.Global = True
For Each rCelle In Range("G11:G" & Range("G65536").End(xlUp).Row)
rCelle.Value = re.Replace(rCelle.Value, "")
Next rCelle
Set re = Nothing
End Sub


Gruß Peter

AW: Buchstaben aus Spalte löschen
20.08.2007 17:11:00
Reptil
ok, vielen dank noch mal an eure hilfe, so klappt jetzt alles : )

Anzeige
ohne VBA: www.excelformeln.de
20.08.2007 15:11:00
selli
einfach mal suchen
gruß selli

also dann so:
20.08.2007 15:16:39
selli
{=TEXT(SUMME((TEIL(0&A1;KGRÖSSTE(WENN(ISTZAHL(TEIL(0&A1;ZEILE($1:$256);1)*1);ZEILE($1:$256);1); ZEILE($1:$256));1)*1)*10^(ZEILE($1:$256)-1));WIEDERHOLEN(0;SUMME(ISTZAHL(TEIL(A1;ZEILE($1:$256);1)*1) *1))) }
wenn dein text mit zahl in A1 steht
gruß selli

AW: also dann so:
20.08.2007 15:30:01
Reptil
hallo selli, leider muss es vba sein, da die tabelle überschrieben werden können soll... aber danke für den link, den tipp und deine hilfe : )

Level: VBA nein, soll aber VBA sein ?
20.08.2007 15:42:00
selli
o.T.

AW: Level: VBA nein, soll aber VBA sein ?
20.08.2007 17:10:00
Reptil
....ich dachte, das level bezieht sich nicht auf die frage, sondern den fragesteller? dann ist die angabe korrekt. ich habe keine nennenswerte ahnung von vba, die aufgabe jedoch muss leider in vba gelöst werden. sorry, wenn cih das falsch verstanden hatte...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige