Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code fuer Grossbuchstaben anpassen

Code fuer Grossbuchstaben anpassen
23.03.2006 22:33:44
Jonas
Hallo alle beisammen!
Ich hab mir diesen Code hier zusammengesucht, weil ich die Saetze in meiner Excel-Tabelle mit Grossbuchstaben ausstatten will:
Immer das erste Wort in einer Zelle soll mit einem Grossbuchstaben anfangen.
ALLERDINGS steht vor diesem ersten Wort immer "a " oder "b " oder "c ", manchmal auch "a-f "
D.h. das ERSTE Wort kommt immer nach der ersten LEERTASTE.
- Kann man folgenden Code irgendwie anpassen?
- UND, kann man auch ne MsgBox einbauen, die mich fragt, in welcher Spalte das stattfinden soll? (Die Spalte aendert sich naemlich von Zeit zu Zeit)
HERZLICHEN DANK!!!

Sub Erster_Buchstabe_groß()
z = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For Each Zelle In Worksheets("Tabelle1").Range("A1:A" & z)
s = Zelle.Value
a = 0
For x = 1 To Len(s)
If Mid(s, x, 1) = " " Then a = a + 1
Next x
t = ""
For x = 1 To a + 1
tmp = strParse(s, " ", x)
tmp = UCase(Left(tmp, 1)) & LCase(Mid(tmp, 2, Len(tmp)))
t = t & " " & tmp
Next x
Zelle.Value = Trim(t)
Next Zelle
End Sub

Public

Function strParse(ByVal strText As String, _
ByVal Trennzeichen As String, ByVal Position As Integer) As String
Dim posStart, posStop, lenCar As Integer
posStart = 1
Do While Position > 1
posStart = InStr(posStart, strText, Trennzeichen) + 1
Position = Position - 1
Loop
posStop = InStr(posStart, strText, Trennzeichen)
strParse = Mid(strText, posStart, IIf(posStop = 0, Len(strText) + 1, _
posStop - posStart))
End Function

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

Betreff
Datum
Anwender
Anzeige
AW: Code fuer Grossbuchstaben anpassen
24.03.2006 08:35:24
UweD
Hallo
das ganze makro lässt sich hierauf reduzieren.
Dabei wurde es bereits ergänzt.

Sub Erster_Buchstabe_groß2()
I = CInt(InputBox("Welche Spalte" & vbLf & " A=1, B=2,..", "Frage", "1"))
For Each zelle In Worksheets("Tabelle1").Columns(I).SpecialCells(xlCellTypeConstants, 2)
strText = zelle.Value
Trennzeichen = " "
posStart = InStr(1, strText, Trennzeichen) + 1
strText = Mid(strText, posStart)
zelle.Value = Trim(WorksheetFunction.Proper(strText))
Next zelle
End Sub

Gruß UweD
(Rückmeldung wäre schön)
nachtrag
24.03.2006 09:04:09
UweD
Hallo
hab ja den ersten Teiltext (a, b, c, a-f) rausgeworfen.
So bleibt der erhalten

Sub Erster_Buchstabe_groß2()
I = CInt(InputBox("Welche Spalte" & vbLf & " A=1, B=2,..", "Frage", "1"))
For Each zelle In Worksheets("Tabelle1").Columns(I).SpecialCells(xlCellTypeConstants, 2)
strText = zelle.Value
Trennzeichen = " "
posStart = InStr(1, strText, Trennzeichen)
Teil2 = Mid(strText, posStart + 1)
Teil1 = Left(strText, posStart)
zelle.Value = Teil1 & Trim(WorksheetFunction.Proper(Teil2))
Next zelle
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Grossbuchstaben, aber nicht alle
24.03.2006 16:43:19
Jonas
Hey Danke!
Prinzipiell funzt es, ABER er macht mir jetzt ALLE Woerter gross - ich wollte doch nur das ERSTE Wort in einer Zelle mit nem Grossbuchstaben versehen.
Kann man das noch anpassen? Das waer super!
Aber DANKE auf jeden Fall!!!
AW: Grossbuchstaben, aber nicht alle
25.03.2006 15:27:51
Reinhard
Hi Jonas,
Option Explicit
Sub Erster_Buchstabe_groß()
Dim z As Long, n As Integer, pos As Integer
With ActiveSheet
For n = 1 To .Range("A65536").End(xlUp).Row
pos = InStr(.Cells(n, 1), " ")
If pos <> 0 Then
.Cells(n, 1) = Left(.Cells(n, 1), pos) & UCase(Mid(.Cells(n, 1), pos + 1, 1)) & Mid(.Cells(n, 1), pos + 2)
End If
Next n
End With
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige