Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellinhalt prüfen und verändern

Forumthread: 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
Anzeige

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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige