Microsoft Excel

Herbers Excel/VBA-Archiv

VBA: Automatische Gross-/Kleinschrift Umwandlung

Betrifft: VBA: Automatische Gross-/Kleinschrift Umwandlung von: Sascha Koerber
Geschrieben am: 24.08.2004 17:39:15

Hallo Freunde,

ich habe hier einmal wieder ein Problem, dass ich gern geschickt über Excel lösen möchte. Und zwar bekomme als Rohdaten für Werbebriefe oft reine Textdaten, die nur in Großschrift vorliegen.

Ich möchte nun per Macro alle Zellen die auch tatsächlich einen Inhalt haben per VBA in Gross-/Kleinschrift umwandeln (analog zur Excel-Funktion gross2()).

Bis jetzt habe ich mir mit einem Makro aus dem Makro-Rekorder beholfen, welches einfach einen bestimmten Tabellenbereich markiert und alles darin umwandelt mittel der gross2()-Funktion. Was aber den Nachteil hat, dass ich eine bestimmte Anzahl von Zeilen vorgeben muss (z. B. Markiere Zeile 1-1000). Das hat zur Folge das auch bei kleinen Werbebrief-Daten mit weniger als 1000 Zeilen die Formel in alle 1000 Zeilen hereingeschrieben werden (ich also nachher beim Auswerten der Werbedatei auch immer 1000 Datensätze haben, obwohl meist nur ein Bruchteil wirklich mit Daten belegt ist).

Wie bekomme ich es hin, das nur Zellen mit Inhalt per VBA in Gross-/Kleinschrift umgewandelt werden?

Für sachdienliche Hinweise wäre ich sehr dankbar! Danke schon einmal an die VBA-Spezies :-)

  


Betrifft: AW: VBA: Automatische Gross-/Kleinschrift Umwandlung von: Werner
Geschrieben am: 24.08.2004 18:22:14

Hallo Sascha,

Ein Makro aus dem Forumsarchiv!

Es wandelt alle Texte in Spalte A in Gross/Klein um.


Sub Gross2()
Dim iRow As Integer, iRowL As Integer, iChr As Integer
Dim sTxt As String
iRowL = Cells(Rows.Count, 1).End(xlUp).Row
For iRow = 1 To iRowL
    If Not IsEmpty(Cells(iRow, 1)) Then
        Cells(iRow, 1).Value = _
            WorksheetFunction.Proper(Cells(iRow, 1).Value)
    End If
Next iRow
With ActiveSheet
    iRowL = .Cells(Rows.Count, 1).End(xlUp).Row
    For iRow = 1 To iRowL
        Columns(1).Replace _
            WorksheetFunction.Proper(.Cells(iRow, 1).Value), _
            .Cells(iRow, 1)
                        
    Next iRow
End With
End Sub

Gruss Werner


  


Betrifft: AW: VBA: Automatische Gross-/Kleinschrift Umwandlung von: P@ulchen
Geschrieben am: 24.08.2004 18:26:42

Hi Sascha,

läßt Du uns mal in Deinen Code schauen ?

Ansonsten so (mußt Du halt noch anpassen):



Sub DeinMakro()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange
    'Hier Dein Code zum Umwandeln
Next
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5




Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


  


Betrifft: AW: VBA: Automatische Gross-/Kleinschrift Umwandlu von: Sascha Körber
Geschrieben am: 25.08.2004 09:30:35

Hallo Ihr beiden,

vielen Dank erst einmal für die heissen Tips. Werde versuchen mir aus beiden Beispielen das nötige zusammen zu klauben. Das zweite Beispiel ist für mich wohl erst einmal besser geeignet, da ich mich als VBA-Anfänger bezeichnen kann. :-)

Ich probiere es aus, und poste dann was ich daraus gemacht habe. Danke noch mal!

Gruss, Sascha


  


Betrifft: AW: VBA: Automatische Gross-/Kleinschrift Umwandlu von: P@ulchen
Geschrieben am: 25.08.2004 10:59:37

Hi Sascha,

probier mal so:



Sub Gross2()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange
    If Not IsEmpty(rng) Then rng.Value = WorksheetFunction.Proper(rng.Value)
Next
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5




Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


 

Beiträge aus den Excel-Beispielen zum Thema "VBA: Automatische Gross-/Kleinschrift Umwandlung"