Wortanfang automatisch groß

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

nik1337
Beiträge: 4
Registriert: Mo, 21.04.2014 19:39

Wortanfang automatisch groß

Beitrag von nik1337 »

Hallo,

ich möchte in einige Zellen meiner Tabelle Vor- und Nachnamen von Personen eintragen und hätte gerne, dass z.B. der Eintrag "max mustermann" in Zelle C1 automatisch in "Max Mustermann" umgewandelt wird, und zwar genau innnerhalb dieser Zelle C1.
(Das ganze brauche ich in den Spalten B, C, H und I.)

Das mit dem AutoKorrektur-Befehl "Ersetzen durch" zu lösen fällt schonmal weg, da ich dann jeden Vor- und Nachnamen einzeln eintippen müsste, bei mehreren hundert (und wöchentlich neu dazukommenden) Personen macht das keinen Sinn.

Gibt es eine andere Möglichkeit einzelne Zellen bzw. ganze Spalten (oder zur auch Not das ganze Tabellenblatt) so zu formatieren/manipulieren, dass alle Wörter automatisch mit Großbuchstaben beginnen?

In Excel habe ich dieses Problem mit einem kurzen VBA-Code lösen können, der wie folgt aussieht:

Code: Alles auswählen

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
    On Error GoTo Errorhandler
    Application.EnableEvents = False
    Target.Value = WorksheetFunction.Proper(Target)
End If
If Target.Column = 3 Then
    On Error GoTo Errorhandler
    Application.EnableEvents = False
    Target.Value = WorksheetFunction.Proper(Target)
End If
If Target.Column = 8 Then
    On Error GoTo Errorhandler
    Application.EnableEvents = False
    Target.Value = WorksheetFunction.Proper(Target)
End If
If Target.Column = 9 Then
    On Error GoTo Errorhandler
    Application.EnableEvents = False
    Target.Value = WorksheetFunction.Proper(Target)
End If
Errorhandler: Application.EnableEvents = True
End Sub
Wie ich das äquivalent in OpenOffice umsetzen soll weiß ich allerdings nicht.

Danke im Vorraus
nik
nik1337
Beiträge: 4
Registriert: Mo, 21.04.2014 19:39

Re: Wortanfang automatisch groß

Beitrag von nik1337 »

@HeritzP

Danke für deine Antwort.
Wenn man aber 'Format -> Groß/Kleinschreibung ändern -> jedes Wort groß schreiben' anklickt, dann wird dies zum einen nur "nachträglich" auf die gerade ausgewählten Zellen angewendet, ich fände es eleganter wenn das automatisch während der Eingabe passiert.
Und zum anderen ändert diese Option komischerweise gar nicht jedes Wort so um, dass der erste Buchstabe groß ist, sondern nur das erste einer Zelle.
So wird aus "max mustermann" dann "Max mustermann", das hilft leider noch nicht wirklich weiter.

Viele Grüße
nik
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wortanfang automatisch groß

Beitrag von Stephan »

Weise das folgende Makro dem Tabellenereignis "Inhalt geändert" (Kontextmeü des Tabellenregisters) zu:

Code: Alles auswählen

Sub schreibe_gross(tmp)
	On Error Goto err
	Select Case tmp.CellAddress.Column
		Case 1,2,7,8
			eingabe = tmp.String
			x_String = Split(eingabe, " ")
			x1_string = UCASE(Left(x_String(0), 1)) & Right(x_String(0), LEN(x_String(0))-1)
			x2_string = UCASE(Left(x_String(1), 1)) & Right(x_String(1), LEN(x_String(1))-1)
			x3_string = x1_string & " " & x2_string
			z = ThisComponent.CurrentController.ActiveSheet
			z.getCellByPosition(tmp.CellAddress.Column, tmp.CellAddress.Row).String = x3_string
		Case Else
	End Select
	err:
		
End Sub
Gruß
Stephan
Dateianhänge
anfang-gross.ods
(8.42 KiB) 115-mal heruntergeladen
nik1337
Beiträge: 4
Registriert: Mo, 21.04.2014 19:39

Re: Wortanfang automatisch groß

Beitrag von nik1337 »

@Stephan

Jo danke, das Makro klappt ganz gut, nur eine Kleinigkeit:

Ich trage auch Namen ein die nicht aus exakt 2 Wörtern bestehen, sondern manchmal auch solche die aus 3 oder 4 Wörtern bestehen, wie "Tim von Weid" und "Gert van der Zandt" oder auch "Hiu Ching Lee", diese wandelt das Makro jetzt in "Tim Von", "Gert Van" bzw. "Hiu Ching" um.

Ist es möglich das Makro so umzuschreiben, dass alle Wörter einen großen Anfangsbuchstaben haben egal ob in einer Zelle 2, 3 oder 4 Wörter stehen?

Also, dass "tim von weid", "gert van der zandt" und "hiu ching lee" in "Tim Von Weid", "Gert Van Der Zandt" und "Hiu Ching Lee" umgewandelt werden.
(Dass "Von" und "Van Der" dann auch großgeschrieben werden ist nicht schlimm, das macht mir nix^^)

Dankeschön
nik
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wortanfang automatisch groß

Beitrag von Stephan »

Ist es möglich das Makro so umzuschreiben, dass alle Wörter einen großen Anfangsbuchstaben haben egal ob in einer Zelle 2, 3 oder 4 Wörter stehen?
ja:

Code: Alles auswählen

Sub schreibe_gross(tmp)
	On Error Goto err
	Select Case tmp.CellAddress.Column
		Case 1,2,7,8
			eingabe = tmp.String
			x_String = Split(eingabe, " ")
			x3_string = ""
			For i = 0 To UBOUND(x_String())
				x1_string = UCASE(Left(x_String(i), 1)) & Right(x_String(i), LEN(x_String(i))-1)
				If i = 0 Then
						x3_string = x3_string & x1_string
					Else
						x3_string = x3_string & " " & x1_string
				End If
			Next i
			z = ThisComponent.CurrentController.ActiveSheet
			z.getCellByPosition(tmp.CellAddress.Column, tmp.CellAddress.Row).String = x3_string
		Case Else
	End Select
	err:
		
End Sub

Gruß
Stephan
nik1337
Beiträge: 4
Registriert: Mo, 21.04.2014 19:39

Re: Wortanfang automatisch groß

Beitrag von nik1337 »

Vielen Dank Stephan, jetzt funktioniert's einwandfrei.

Eine Sache noch:
Ich muss das Makro jetzt gerade nach jedem Öffnen des Dokuments neu bei "Inhalte geändert" zuweisen. Gibt es eine Möglichkeit, dass diese Zuweisung permanent ist, also auch immer noch bestehend ist, wenn ich das Dokument schließe und neu öffne?

Viele Grüße
nik
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Wortanfang automatisch groß

Beitrag von Stephan »

Gibt es eine Möglichkeit, dass diese Zuweisung permanent ist, also auch immer noch bestehend ist, wenn ich das Dokument schließe und neu öffne?
Das ist der Standardfall, das hier im Thread angehängte Dokument zeigt das auch.


Gruß
Stephan
Antworten