Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige