Abkürzen mit VBA - Code vereinfachen

Bild

Betrifft: Abkürzen mit VBA - Code vereinfachen
von: Django Djang
Geschrieben am: 14.07.2015 14:45:54

Hallo Experten,
ich habe ein Makro geschrieben, das Einträge in Zellen je nach Vorgabe abkürzt bzw. verändert. In diesem Beispiel wird nur der Anfangsbuchstabe genommen. Im Anwendungsfall wird bspw. aus "Schreibtisch" "Schti" oder Ähnliches.
Meine Frage an euch ist, ob ich den Code noch besser gestalten kann. Hab erst vor kurzem mit _
VBA angefangen und mich vorher vor jeder Art von Code gedrückt.


Sub makroABK()
Dim x As Integer
Dim y As Integer
x = 1
y = 1
Do While x < 9 And y < 9
    
    For x = 1 To 9
    
    
    If Cells(x, y) = "Affe" Then Cells(x, y) = "A"
    If Cells(x, y) = "Giraffe" Then Cells(x, y) = "G"
    If Cells(x, y) = "Hund" Then Cells(x, y) = "H"
    If Cells(x, y) = "Katze" Then Cells(x, y) = "K"
    
    If x = 9 And y < 9 Then w = 1
    If w = 1 Then x = 0
    If w = 1 Then y = y + 1
    If w = 1 Then w = 0
    
    If x >= 9 And y >= 9 Then GoTo Zeile1
    
    
    
    
    
    
    
    Next x
    
    
    
Loop
    
Zeile1:
End Sub

Bild

Betrifft: AW: Abkürzen mit VBA - Code vereinfachen
von: ransi
Geschrieben am: 14.07.2015 15:42:51
HAllo,
ICh hab nicht verstanden was das w macht....
Verfsuch mal diesen Code.

Option Explicit

Sub makroABK()
    
    Dim x As ILong
    Dim y As Integer
    
    For y = 1 To 9
        For x = 1 To 9
            Select Case Cells(x, y)
                Case Is = "Affe", "Angel", "Ast": Cells(x, y) = "A"
                Case Is = "Giraffe": Cells(x, y) = "G"
                Case Is = "Hund": Cells(x, y) = "H"
                Case Is = "Katze": Cells(x, y) = "K"
            End Select
        Next x
    Next y
End Sub


ransi

Bild

Betrifft: AW: Abkürzen mit VBA - Code vereinfachen
von: Django Djang
Geschrieben am: 16.07.2015 16:45:29
Ahhhhh, cool danke

Bild

Betrifft: Das hängt ganz davon ab, wofür das sein soll, ...
von: Luc:-?
Geschrieben am: 14.07.2015 16:10:46
…d.h., welchem Zweck das Ergebnis dienen soll, Django,
und wie dessen RahmenBedingungen aussehen. Mal ein Bsp:
Ich hatte mir vor vielen Jahren mal überlegt, wie man Vorspalten­Texte bei Bedarf automatisch kürzen könnte, so dass sie 1. noch zu verstehen sind und 2. in Spalten unter­schiedlich umfang­reicher Tabellen mit daraus druck­technisch resultie­render wechselnder Vor­spalten­Breite unter­gebracht wdn können. Dazu musste natürlich auch ermittelt wdn, wieviele Zeichen ungefähr in die Spalte bei vorge­gebener Breite passen. Das ist auch von Schriftart und -größe abhängig. Bei Proportional­Schrift ist das relativ kompliziert, da man die Zeichen auch nach Breite unter­scheiden und die so entstehenden Typen auszählen müsste und dabei auch nur einen Zirka-Richtwert erhält. Bei nicht-propor­tionaler Schrift (zB Courier) muss man dagg nur die TextLänge (in Zeichen) ermitteln.
Dann hatte ich noch eine Liste der (häufigsten) in diesen Texten auftretenden Wort­Endungen (-ung, -heit, -keit, -lich, -ig, -isch usw), die einfach wegge­lassen (wenn mit Vokal beginnend) oder durch ihren Anfangs­buch­staben ersetzt wdn könnten, und natürlich anwendbarer Standard- bzw anderer verständ­licher Abkür­zungen (Lang­text → Abkür­zung, u.a. undu.) angelegt.
Aber das hängt natürlich alles vom Zweck des Ganzen ab.
Gruß, Luc :-?

Besser informiert mit …

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Abkürzen mit VBA - Code vereinfachen"