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

Kleines VBA-Problem?

Kleines VBA-Problem?
11.06.2003 11:21:54
patrick
Ich habe folgenden Code "versucht" zu schreiben aber er hat noch einen schönheitsfehler .

Public Sub löscht_letztes_zeichen()
Dim c As Range
For Each c In Selection
'''If c <> "" Then
If c <> "" And IsNumeric(c) = False Then
c = Left(c, Len(c) - 1)
End If
Next c
End Sub

Es soll nur das letzte Zeichen gelöscht werden wenn es ein Symbol (konsolidierto)
Wie kann man den Code verbessern so das er auch keine Buchstaben löscht sondern nur Symbole?
Danke!!


3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Kleines VBA-Problem?
11.06.2003 11:35:16
TinoS

Hi,

was verstehst du unter Symbole ?
Du könntest mit der ASC-Funktion arbeiten und dann deinen Bereich eingrenzen, den du zulassen möchtest.

z.B.
if asc(left(string,1))> 60 and asc(left(string,1))< 90

oder so ähnlich, musst mittels ASCII-Tabelle deine Bereiche auswählen.

Gruß Tino


Re: Kleines VBA-Problem?
11.06.2003 12:16:01
GraFri

Hallo

Option Explicit

Sub lösche_letztes_Zeichen()
Dim Bereich As Range
Dim Zelle As Range
Dim TMP

Set Bereich = Selection

For Each Zelle In Bereich
TMP = Zelle.Value
If Len(TMP) <> 0 Then
Select Case Asc(Right(TMP, 1))
Case 48 To 57 'Zahl 0-9
Case 65 To 90 'A-Z
Case 97 To 122 'a-z
Case Else
Zelle.Value = Left(TMP, Len(TMP) - 1)
End Select
End If
Next Zelle

End Sub

mfg, GraFri

Anzeige
Verbesserung
11.06.2003 12:31:34
GraFri

Hallo

Option Explicit

Sub lösche_letztes_Zeichen(Optional nameBereich As String)
Dim Bereich As Range
Dim Zelle As Range
Dim TMP

If IsMissing(nameBereich) Or nameBereich = "" Then
Set Bereich = Selection
Else
Set Bereich = Range(nameBereich)
End If

For Each Zelle In Bereich
TMP = Zelle.Value
If Len(TMP) <> 0 Then
Select Case Asc(Right(TMP, 1))
Case 48 To 57 'Zahl 0-9
Case 65 To 90 'A-Z
Case 97 To 122 'a-z
Case 196, 258, 214, 246, 220, 252, 223 'Ä,ä,Ö,ö,Ü,ü,ß
Case Else
Zelle.Value = Left(TMP, Len(TMP) - 1)
End Select
End If
Next Zelle

End Sub

Sub Aufruf_Makro()

Call lösche_letztes_Zeichen("A1:A7")
'oder wenn Bereich in Tabelle markiert ist
'Call lösche_letztes_Zeichen

End Sub

mfg, GraFri

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige