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

Forumthread: Bestimmte Zeichen in einer Zelle mit VBA ändern

Bestimmte Zeichen in einer Zelle mit VBA ändern
14.11.2006 07:42:03
Stefan
Hallo zusammen,
ich möchte in eine Tabelle die mal aus 1 mal aus X Zeilen bestehen kann an das 38., 39. und 40. Zeichen der Zellen in Spalte D mittels VBA immer dann ein Stern (*) setzen, wenn in den Zellen der Spalte A ein "D" steht. Ich habe bislang noch keine Lösung gefunden.
Habt Ihr eine Idee?
MfG Stefan
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zeichen in einer Zelle mit VBA ändern
14.11.2006 08:05:44
Heiko
Hallo Stefan,
z.B. so.

Sub SternRein()
Dim lngLastRow As Long, lngI As Long
Dim strHelp As String, strRest As String
lngLastRow = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
For lngI = 1 To lngLastRow
If ActiveSheet.Cells(lngI, 1) = "D" And Len(ActiveSheet.Cells(lngI, 4)) > 40 Then
strHelp = Left(ActiveSheet.Cells(lngI, 4), 37) & "***"
strRest = Right(ActiveSheet.Cells(lngI, 4), Len(ActiveSheet.Cells(lngI, 4)) - 40)
ActiveSheet.Cells(lngI, 4) = strHelp & strRest
End If
Next lngI
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Bestimmte Zeichen in einer Zelle mit VBA änder
14.11.2006 08:51:48
Erich
Hallo Stefan,
es ginge auch ohne VBA - siehe unten Spalte E.
Heiko, deine Lösung funzt nicht bei Textlängen 38 bis 40 - Spalte F.
Deshalb
Sub SternRein2()
Dim lngI As Long, strT As String, strErg As String
With ActiveSheet
For lngI = 2 To .Cells(Rows.Count, 4).End(xlUp).Row
strT = .Cells(lngI, 4)
If .Cells(lngI, 1) = "D" And Len(strT) > 37 Then
strErg = Left(strT, 37) & Left(String(Len(strT) - 37, "*"), 3)
If Len(strT) > 40 Then strErg = strErg & Right(strT, Len(strT) - 40)
.Cells(lngI, 7) = strErg
Else
.Cells(lngI, 7) = strT
End If
Next lngI
End With
End Sub

 ABCDEFG
1  LängeQuelleFormelVBAVBA2
2D 43................................................................................***........................................***........................................***...
3  41....................................................................................................................................................................
4D 40.............................................................................***.............................................................................***
5D 39............................................................................**............................................................................**
6D 38...........................................................................*...........................................................................*
7D 37....................................................................................................................................................

Formeln der Tabelle
ZelleFormel
C2=LÄNGE(D2)
E2=WENN(A2="D";LINKS(D2;37)&WIEDERHOLEN("*";MIN(3;LÄNGE(D2)-37))&WENN(LÄNGE(D2)>40;RECHTS(D2;LÄNGE(D2)-40);"");D2)
C3=LÄNGE(D3)
E3=WENN(A3="D";LINKS(D3;37)&WIEDERHOLEN("*";MIN(3;LÄNGE(D3)-37))&WENN(LÄNGE(D3)>40;RECHTS(D3;LÄNGE(D3)-40);"");D3)

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
@ Erich
14.11.2006 09:11:31
Heiko
Hallo Erich,
I know, aber man muß ja nicht alles verraten ;-)
Gruß Heiko
@ Heiko: war mir schon klar... :-)) (oT)
14.11.2006 09:18:44
Erich
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige