Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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
Inhaltsverzeichnis

VBA Befehle Formatierung

VBA Befehle Formatierung
20.09.2013 12:31:09
Jürgen
Hallo miteinander,
wer könnte mir bitte sagen wie der Befehl für Schriftstellung Kursiv ist
und für
Text-Ausrichtung
(Gibt es für Text-Ausrichtung mehrere Varianten? So wie z.B. in in der Programmier-Sprache CSS da gibt es die Varianten px, em u. %, gibt es das in VBA auch?)
Würde mich freuen wenn mir da jemand weiter helfen könnte
Mit freundlichen Grüßen

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Befehle Formatierung
20.09.2013 12:35:10
Rudi
Hallo,
wer könnte mir bitte sagen wie der Befehl für Schriftstellung Kursiv ist
der Recorder.
Gruß
Rudi

AW: VBA Befehle Formatierung
20.09.2013 12:42:19
Jürgen
Hallo miteinander,
wer könnte mir bitte sagen wie der Befehl für Schriftstellung Kursiv ist
und für
Text-Ausrichtung
(Gibt es für Text-Ausrichtung mehrere Varianten? So wie z.B. in in der Programmier-Sprache CSS da gibt es die Varianten px, em u. %, gibt es das in VBA auch?)
Würde mich freuen wenn mir da jemand weiter helfen könnte
Mit freundlichen Grüßen

Der Makrorekorder ! (owT)
20.09.2013 13:11:21
EtoPHG

Hinweis....
20.09.2013 14:38:50
rolfk
Hallo Jürgen,
was Dir die beiden vorsichtig andeuten wollen ist, dass Du den Makrorekorder nutzen sollst über
Entwicklertools/Makro aufzeichnen/OK
dann die einzelnen Schritte in einer Zelle durchführst und die Aufzeichnung über
Entwicklertools/Aufzeichnung beenden
Abschließt. Dann bekommst Du die folgende Prozedur:
  • Sub Makro1()
    ' Makro1 Makro
    Range("A1").Select
    Selection.Font.Italic = True 'kursiv einschalten
    Selection.Font.Italic = False 'kursiv ausschalten
    With Selection
    .HorizontalAlignment = xlCenter 'horizontale Ausrichtung zentriert
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    With Selection
    .HorizontalAlignment = xlRight 'horizontale Ausrichtung rechtsbündig
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    With Selection
    .HorizontalAlignment = xlLeft 'horizontale Ausrichtung linksbündig
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    With Selection
    .HorizontalAlignment = xlGeneral 'horizontale Ausrichtung Standard
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
    End With
    End Sub
    


  • Gruß Rolf

  • Anzeige
    Hinweis....
    20.09.2013 15:41:02
    Jürgen
    Hallo Rolf,
    danke für Deine Bemühungen
    danke für die Übesendung des Codes
    der ist mir jedoch bestens bekannt
    und es ist ja auch nicht so das ich erst seit gestern mich mit VBA auseinandersetze
    ich krieg den Code nicht in mein Makro eingebaut so das alles wieder rundläuft
    mein Code ist folgender, der erweitert werden soll auf die Ausrichtung Text "Rechts"
    (Wenn ich nochmal darauf Hinweisen darf, JEDOCH NICHT DER GESAMTE TEXT IN DER ZELLE, sonder nur der Text, der in Zelle "G42" gefunden wird und in "E7" formatiert werden soll)
    MyTxt = Tabelle1.Range("G42").Value
    Set Zelle = Tabelle4.Range("E7")
    FirstPos = InStr(1, Zelle, MyTxt)
    Zelle.Characters(FirstPos, Len(MyTxt)).Font.ColorIndex = 41
    "hier müsste jetzt die Bedigung für Ausrichtung "RECHTS" her"
    und das ist mit dem Resultat aus der Makro-Aufzeichnung nicht machbar
    (Der Code aus dem Makro für Kursiv der funktioniet aber nicht für Ausrichtung "Recht")
    Nochmal recht herzlichen Dank für Deine Bemühungen
    Beste Grüße
    Jürgen

    Anzeige
    10 Sekunden mit Rekorder!
    20.09.2013 15:48:28
    EtoPHG
    Jürgen,
    und man bekommt raus, das heisst irgendwie
    Range.HorizontalAlignment = xlRight
    
    Schönes Wochenende
    Hansueli

    AW: 10 Sekunden mit Rekorder!
    20.09.2013 15:53:06
    Jürgen
    Hallo Du da,
    meinste nicht auch das ich das schon ausprobiert habe,
    DEFENITIV FUNKTINIERT NICHT!!!!!!!!1
    Und nochmal besten Gruß zurück an
    Rudi
    Mit freundliche Grüßen
    Jürgen

    AW: 10 Sekunden mit Rekorder!
    20.09.2013 15:55:15
    Jürgen
    Hallo Du da,
    meinste nicht auch das ich das schon ausprobiert habe,
    DEFENITIV FUNKTINIERT NICHT!!!!!!!!1
    Und nochmal besten Gruß zurück an
    Rudi
    Mit freundliche Grüßen
    Jürgen

    Anzeige
    AW: Stopp..
    20.09.2013 16:10:36
    hary
    Moin
    .... nicht streiten, ich meine zu glauben was Juergen haben moechte!? Nicht den ganzen Text sondern nur den hinteren Teil. Also: 63Mill Dollar soll ganz rechts.
    2004: Suspect Zero - Im Auge des Mörders (01) (Suspect Zero) 104Min TH, KR, MY 63Mill Dollar
    2004: Suspect Zero - Im Auge des Mörders (01) (Suspect Zero) 104Min TH, KR, MY xxxxxxx63Mill Dollar
    Die x sind Leerzeichen
    Da kannst du hoechstens leerzeichen einfuegen. *glaub*
    Oder setz diesen Teil eine Spalte weiter.
    gruss hary

    AW: Stopp..
    20.09.2013 16:29:30
    Jürgen
    Hallo Hary,
    Du hast das ganz recht erkannt, die Budget-Angabe soll ganz rechts in der Zelle ausgerichtet werden,
    soweit so gut
    ich kann mir aber beim besten willen nicht vorstellen das man das nicht programmieren kann
    (man kann mit VBA auch um "die Ecke" programmieren)
    Nein eine weite Spalte hinzufügen soll nicht sein! (warum nicht - Weiterverarbeitung der Zelle)
    Hary wie immer danke
    Beste Grüße
    Jürgen

    Anzeige
    AW: siehe unten owT
    20.09.2013 16:42:54
    hary
    .

    Dann hast du es halt falsch gemacht
    20.09.2013 15:58:47
    EtoPHG
    Jürgen,
    Du sagst uns ja nicht was und wie du es ausprobiert hast.
    Falls du davon sprichst, nur einen Teil eines Texts in einer Zelle rechts auszurichten, dann bist du definitiv auf dem Holzweg. Denn was du nicht durch manuelle Operation über die Excel-GUI an der Zell-Formatierung ändern kannst, ist auch per VBA unmöglich.
    Übrigens ist "DEFENITIV FUNKTINIERT NICHT!!!!!!!!1" keine mir bekannte VBA-Fehlermeldung!
    Gruess Hansueli

    AW: Dann hast du es halt falsch gemacht
    20.09.2013 16:12:22
    Jürgen
    Hansueli
    wenn ich etwas falsch gemacht habe, gaaaaaannnnnnzzzzz bestimmt
    dann komm doch mal mit einer Lösung rüber
    Gruß

    Anzeige
    Es gibt keine saubere Lösung
    20.09.2013 18:05:56
    EtoPHG
    Jürgen,
    Wie gesagt: Ein Teil eines Zellen-Texts lässt sich nicht rechts ausrichten! XL ist nicht WORD!
    Der Ansatz mit Leerstellen wird mit allen Proportional-Schriften scheitern.
    Verwendet man hingegen eine nicht proportionale Schrift für die Zelle, z.B. Courier New, dann lässt sich das auch mit Formeln zusammenbasteln. Im übrigen hab ich geschrieben, dass vor die HorizontalAlignment-Eigenschaft eine Range gehört und du verwendest dann einfach deine Characters-Objekt, welches aber diese Eigenschaft gar nicht besitzt und zu einem Laufzeitfehler 438 führt, den du aber geflissentlich verschwiegen hast. Vielleicht ab und zu die VBA-Hilfe bemühen, oder den Objekt-Explorer im VBE?
    Gruess Hansueli

    Anzeige
    AW: Hinweis....
    20.09.2013 16:17:44
    Jürgen
    Hallo Rolf,
    danke für Deine Bemühungen
    danke für die Übesendung des Codes
    der ist mir jedoch bestens bekannt
    und es ist ja auch nicht so das ich erst seit gestern mich mit VBA auseinandersetze
    ich krieg den Code nicht in mein Makro eingebaut so das alles wieder rundläuft
    mein Code ist folgender, der erweitert werden soll auf die Ausrichtung Text "Rechts"
    (Wenn ich nochmal darauf Hinweisen darf, JEDOCH NICHT DER GESAMTE TEXT IN DER ZELLE, sonder nur der Text, der in Zelle "G42" gefunden wird und in "E7" formatiert werden soll)
    MyTxt = Tabelle1.Range("G42").Value
    Set Zelle = Tabelle4.Range("E7")
    FirstPos = InStr(1, Zelle, MyTxt)
    Zelle.Characters(FirstPos, Len(MyTxt)).Font.ColorIndex = 41
    "hier müsste jetzt die Bedigung für Ausrichtung "RECHTS" her"
    und das ist mit dem Resultat aus der Makro-Aufzeichnung nicht machbar
    (Der Code aus dem Makro für Kursiv der funktioniet aber nicht für Ausrichtung "Recht")
    Nochmal recht herzlichen Dank für Deine Bemühungen
    Beste Grüße
    Jürgen

    Anzeige
    AW: Hinweis....
    20.09.2013 16:22:28
    hary
    Hallo Juergen
    Trifft meine Ahnung im Beitrag "Stop" zu?
    gruss hary

    Ergänzung.....
    20.09.2013 16:22:48
    rolfk
    Hallo Jürgen,
    ...und es ist ja auch nicht so das ich erst seit gestern mich mit VBA auseinandersetze
    Das war aus Deinem ersten Beitrag nicht zu erkennen, insbesondere nachdem Du den ersten Hinweis ignoriert hast und Deine Eingangsfrage nur wiederholt hast.
    (Wenn ich nochmal darauf Hinweisen darf, JEDOCH NICHT DER GESAMTE TEXT IN DER ZELLE, sonder nur der Text, der in Zelle "G42" gefunden wird und in "E7" formatiert werden soll)
    Auch das war nicht aus Deinem ersten Beitrag zu erkennen.
    Aber egal, das man das nicht einfach mit
    .HorizontalAlignment = xlRight
    erreichen kann, hat Dir EtoPHG ja schon erklärt. Eine rein theoretische Möglichkeit besteht dann nur noch, wenn der Zieltext eine definierte Gesamtlänge hast, dass Du dann Textteil aus G42 mit einer berechneten Anzahl Leerzeichen auffüllst. Aber Vorsicht, da die Schriften ja meist Proportionalschriften sind, kann das nicht wirklich aufgehen...
    Gruß Rolf

    Anzeige
    AW: Ergänzung.und Probe
    20.09.2013 16:41:32
    hary
    Hallo Rolf
    Das meinte ich.
    Juergen probier mal so.
    Sub schrift()
    Dim hoch As Long
    Dim Zelle As Range
    Dim FirstPos&
    Dim MyTxt$
    hoch = 100 'Anzahl der Zeichen bei dieser Schriftgroesse
    MyTxt = Tabelle2.Range("G42").Value
    Set Zelle = Tabelle3.Range("E7")
    FirstPos = InStr(1, Zelle, MyTxt)
    Zelle.Characters(FirstPos, Len(MyTxt)).Font.ColorIndex = 41
    Zelle.Characters(FirstPos, Len(MyTxt)).Font.FontStyle = "Kursiv"
    Zelle = Left(Zelle, FirstPos - 1) & String(hoch - Len(Zelle), " ") & Mid(Zelle, FirstPos, 9  _
    ^ 9)
    MyTxt = Tabelle2.Range("G13").Value
    FirstPos = InStr(1, Zelle, MyTxt)
    Zelle.Characters(FirstPos, Len(MyTxt)).Font.Size = 6.5
    Set Zelle = Nothing
    End Sub
    

    gruss hary

    Anzeige
    AW: Ergänzung.und Probe
    20.09.2013 17:07:28
    Jürgen
    Hallo Hary,
    dein Makro läuft rund
    aber ohne das gewünschte Ergebnis
    selbst die Budget-Angabe wird nicht mehr farblich ausgeführt
    (obwohl es im Code eindeutig zulesen ist)
    Ich mach heute an dieser Stelle Schluß
    Beste Grüße
    Jürgen

    Mea Culpa
    20.09.2013 16:49:53
    Jürgen
    Hallo Rolf,
    sorry, wenn das so rüber gekommen sein sollte, tut es mir leid.
    Also wie gesagt ich hab das mit dem ".HorizontalAlignment = xlRight" Code-Fragment ausprobiert funktioniert leider nicht
    Ich hab das Code-Fragment folgender maßen eingebaut
    MyTxt = Tabelle1.Range("G42").Value 'Formatierung Budget-Angabe
    Set Zelle = Tabelle4.Range("E7") 'dann mach blau
    FirstPos = InStr(1, Zelle, MyTxt)
    Zelle.Characters(FirstPos, Len(MyTxt)).Font.ColorIndex = 41
    Zelle.Characters(FirstPos, Len(MyTxt)).HorizontalAlignment = xlRight
    Ich Denke mal in der ganze Sache wird einfach nur ein Denkfeher vorliegen
    Ich lass mir da noch die ein oder ander Frage an euch einfallen
    Beste Grüße
    Jürgen

    AW: Mea Culpa
    20.09.2013 16:55:49
    hary
    Moin
    Etwas verbessert. Probier mal.
    Sub schrift()
    Dim hoch As Long
    Dim Zelle As Range
    Dim FirstPos&
    Dim MyTxt$
    hoch = 98 'Anzahl der Zeichen bei dieser Schriftgroesse
    MyTxt = Tabelle2.Range("G42").Value
    Set Zelle = Tabelle3.Range("E7")
    FirstPos = InStr(1, Zelle, MyTxt)
    Zelle = Left(Zelle, FirstPos - 1) & String(hoch - Len(Zelle), " ") & Mid(Zelle, FirstPos, 9 ^ _
    9)
    Zelle.Characters(FirstPos, 9 ^ 9).Font.ColorIndex = 41
    Zelle.Characters(FirstPos, 9 ^ 9).Font.FontStyle = "Kursiv"
    MyTxt = Tabelle2.Range("G13").Value
    FirstPos = InStr(1, Zelle, MyTxt)
    Zelle.Characters(FirstPos, Len(MyTxt)).Font.Size = 6.5
    Set Zelle = Nothing
    End Sub
    

    gruss hary

    Warum nicht einfach 'horizontal verteilt' wählen?!
    20.09.2013 19:42:23
    Luc:-?
    Gruß Luc :-?

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige