Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
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

Zellinhalt prüfen und verändern

Zellinhalt prüfen und verändern
VolkerM
Hallo Forum,
folgende Problemstellung:
Ich möchte mit einem Makro den gesamten Zellinhalt der Spalte B prüfen und wenn die Bedingungen zutreffen, den Zellinhalt verändern.
Wenn in einer Zelle die ersten 5 Zeichen Buchstaben sind und kein Leerzeichen in den ersten 5 Zeichen vorkommt, dann soll jeweils nach den ersten 3 Buchstaben ein Bindestrich eingefügt werden.
Vorher: ABCDE 1234
Nachher: ABC-DE 1234
Wenn in den ersten 3 Zeichen ein Leerzeichen vorkommt, dann soll das Leerzeichen gegen einen Bindestrich ausgetauscht werden.
Es sind dann jedoch zwei Leerzeichen vorhanden.
Vorher: A BC 1234
Nachher: A-BC 1234
Hat jemand eine Idee ?
Vielen Dank im Voraus.
Gruß Volker

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellinhalt prüfen und verändern
16.09.2010 17:05:22
JogyB
Hallo Volker,
probier das mal aus:
Sub ausTausch()
Dim i As Long
Dim regEx1 As Object
Dim regEx2 As Object
Set regEx1 = CreateObject("VbScript.Regexp")
Set regEx2 = CreateObject("VbScript.Regexp")
regEx1.Pattern = "^([A-Za-zÄÖÜäöü]){5}"
regEx2.Pattern = " "
' Wenn es nicht das aktive Blatt sein soll, dann anpassen
With ActiveSheet
For i = 1 To .Cells(Rows.Count, 2).End(xlUp).Row
With .Cells(i, 2)
If regEx1.Test(.Value) Then
.Value = Left(.Value, 3) & "-" & Mid(.Value, 4)
ElseIf regEx2.Execute(Left(.Value, 3)).Count = 1 Then
.Value = Replace(Left(.Value, 3), " ", "-") & Mid(.Value, 4)
End If
End With
Next
End With
End Sub

Gruß, Jogy
Anzeige
AW: Zellinhalt prüfen und verändern
16.09.2010 17:13:15
VolkerM
Hallo Jogy
Vielen Dank, es läuft perfekt.
Gruß Volker
Sicher! Formel oder VBA? Format oder Wert? orT
16.09.2010 17:05:36
Luc:-?
Gruß Luc :-?
AW: Zellinhalt prüfen und verändern
16.09.2010 17:07:14
EvilRik
Hallo Volker,
wenn du nur Großbuchstaben hast:

Sub andersschreiben1()
Dim zae1 As Long, strZahl As String
With ThisWorkbook.Worksheets("Tabelle2") ' ! entsprechend anpassen
For zae1 = 1 To 200 ' ! entsprechend anpassen
strZahl = .Cells(zae1, "B")
If strZahl Like "[A-Z][A-Z][A-Z][A-Z][A-Z]*" Then
.Cells(zae1, "B") = Left(strZahl, 3) & "-" & Mid(strZahl, 4, Len(strZahl))
ElseIf strZahl Like "[A-Z] [A-Z]*" Then
.Cells(zae1, "B") = Left(strZahl, 1) & "-" & Mid(strZahl, 3, Len(strZahl))
End If
Next zae1
End With
End Sub

wenn du nicht weißt, ob Groß- oder Kleinbuchstaben:

Sub andersschreiben2()
Dim zae1 As Long, strZahl As String, zae2 As Integer, sT As String, zae3 As Integer
With ThisWorkbook.Worksheets("Tabelle2") ' ! entsprechend anpassen
For zae1 = 1 To 200 ' ! entsprechend anpassen
strZahl = .Cells(zae1, "B")
zae3 = 0
For zae2 = 1 To 5
sT = Mid(strZahl, zae2, 1)
If sT Like "[A-Z]" Or sT Like "[a-z]" Then zae3 = zae3 + 1
If zae3 = 5 Then .Cells(zae1, "B") = Left(strZahl, 3) & "-" & Mid(strZahl, 4,  _
Len(strZahl))
If zae2 

Gruß Henrik
Anzeige
AW: Zellinhalt prüfen und verändern
16.09.2010 17:14:14
VolkerM
Hallo Henrik
Auch Deine Version läuft prima, vielen Dank.
Gruß Volker

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige