Live-Forum - Die aktuellen Beiträge
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
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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