Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1916to1920
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

Schriftform fett

Schriftform fett
04.02.2023 18:04:48
Thomas
Hallo Excelfreunde,
ich habe hier:
https://www.makro-excel.de/2011/06/05/lesehilfe-fur-grose-tabellen-aktuelle-zeile-fett-anzeigen/#google_vignette
ein Makro gefunden das die Schriftart der jeweilige Aktive Zeile fett formatiert.
Nun versuche ich schon den ganzen Nachmitte dies so zu ergänzen das auch die aktuelle Spalte mit Fett Formatiert wird.
Es will einfach nicht gelingen.
Kann mir dabei jemand helfen?
Dies ist noch die unberührte Version:
https://www.herber.de/bbs/user/157641.xlsm

Private MeineZeile As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim markierteZeilen As Long
markierteZeilen = Selection.Rows.Count
If markierteZeilen > 1 Then
    Exit Sub
Else
    Sicherung_Zwischenablage
    If Not MeineZeile Is Nothing Then MeineZeile.Font.Bold = False
    Target.EntireRow.Font.Bold = True
End If
Set MeineZeile = Target.EntireRow
If Tabelle2.Range("A1").Value > "" Then
    Zwischenablage_Fuellen Tabelle2.Range("A1").Value
    Tabelle2.Range("A1").Value = ""
End If
End Sub
Option Explicit
Private Const CF_TEXT As Long = 1
Function Sicherung_Zwischenablage()
Dim strZwischenablage As DataObject
Set strZwischenablage = New DataObject
strZwischenablage.GetFromClipboard
If strZwischenablage.GetFormat(CF_TEXT) Then Tabelle2.Range("A1") = strZwischenablage.GetText
End Function Function Zwischenablage_Fuellen(ByVal Text As Variant) As Boolean
Zwischenablage_Fuellen = CreateObject("htmlfile").ParentWindow.ClipboardData.SetData("Text", Text)
End Function habt schon mal im Voraus rechtvielen dank für euer Interesse.
mfg thomas

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schriftform fett
04.02.2023 20:45:25
ralf_b
versuchs mal damit.
rw erstellst du als public Variable in einem allgemeinen Modul.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    
    If Target.CountLarge > 1 Then
        Exit Sub
        rw = Target.Row
    Else
        Sicherung_Zwischenablage
        If rw > 0 Then Rows(rw).Font.Bold = False
        rw = Target.Row
        Target.EntireRow.Font.Bold = True
    End If
    
    If Tabelle2.Range("A1").Value > "" Then
        Zwischenablage_Fuellen Tabelle2.Range("A1").Value
        Tabelle2.Range("A1").Value = ""
    End If
End Sub

Anzeige
AW: Schriftform fett
04.02.2023 22:06:50
Thomas
Hallo ralf_b ,
besten dank das du dir dies angeschaut hast.
Ich habe da noch selber Fehler Fehler drinn gehabt.
Kannst du nochmal schauen? Es wird nur die jeweilige Zeile formatiert. Die aktive Spalte leider noch nicht.
mfg thomas
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    
 If Target.CountLarge > 1 Then
        Exit Sub
        rw = Target.Row
    Else
        'Sicherung_Zwischenablage
        If rw > 0 Then Rows(rw).Font.Bold = False
        rw = Target.Row
        Target.EntireRow.Font.Bold = True
    End If
    
    If Tabelle2.Range("A1").Value > "" Then
        ' Tabelle2.Range("A1").Value
        Tabelle2.Range("A1").Value = ""
    End If
End Sub

Anzeige
AW: Schriftform fett
05.02.2023 00:46:36
ralf_b
das mit der Spalte habe ich übersehen. dazu wird für de Spalte noch eine Variable benötigt.
hier "cl"

If Target.CountLarge > 1 Then
        Exit Sub
        rw = Target.Row
        cl = Target.Column
    Else
        'Sicherung_Zwischenablage
        If rw > 0 Then Rows(rw).Font.Bold = False
        rw = Target.Row
        If cl > 0 Then Columns(cl).Font.Bold = False
        cl = Target.Column
        Target.EntireRow.Font.Bold = True
        Target.EntireColumn.Font.Bold = True
    End If

perfekt besten dank. Es funktioniert super
05.02.2023 11:07:17
Thomas
Hallo ralf_b und Oraculix,
Oraculix: Besten dank das du dir dies angeschaut hast. Und auch für deinen Versuch.
ralf_b: Jetzt funktioniert es perfekt. Hab recht vielen dank für deine Hilfe und deine Lösung. Das hätte ich nie allein hinbekommen.
Die Lösung mit der Zwischenablage finde ich einfach nur genial für Große und unübersichtliche Tabellen.
Besten Dank nochmal und ein schönen Restsonntag.
mfg thomas
Anzeige
ups doch noch eine Sache
05.02.2023 11:16:00
Thomas
Hallo ralf_b ,
kannst du doch nochmal schauen.
Das Makro nimmt nur die originale Formatierung der markierten Zeile in die Zwischenablage.
Leider nicht die originale Formatierung der Spalte. Diese wird beim zurücksetzen überschrieben.
mfg thomas
AW: ups doch noch eine Sache
05.02.2023 11:41:21
ralf_b
von "perfekt" zu "ähm da ist noch was".. soso!
mit Zwischenablage habe ich nichts zu tun. Ich nutze Variablen, um sich die vorherige ZeilenNr und SpaltenNr zu merken. Hast du die Variable cl erstellt, wie ich es vorgegeben hatte?
AW: ups doch noch eine Sache
05.02.2023 14:07:32
Thomas
Hallo ralf_b ,
ja ich weiß, sorry.
Die Variablen habe ich als Public erstellt.
Aber irgendwie verhält es sich merkwürdig. Mal wird die Originalformat in einige Zellen wieder hergestellt und mal nicht.
Ich habe es in die beiliegende Mappe eingebaut.
https://www.herber.de/bbs/user/157654.xlsm
Ich kriegs einfach nicht hin.
Könnt ihr noch mal schauen warum es nicht richtig funktioniert?
mfg thomas
Anzeige
AW: ups doch noch eine Sache
05.02.2023 18:57:49
ralf_b
bezugnehmend auf Blatt mein Versuch . Da fehlt noch Set Meinespalte = Target.EntireColumn
Wobei ich anmerken möchte, das die Vorhaltung von ganzen Zeilen und Spalten als Variablen vielleicht etwas zu viel des Guten ist was die Speichernutzung angeht. Eine ganze Spalte sind 1 Million Zellen, und eine Zeile schon mal 16 000 Zellen.
Ausreichend sind da die reinen Zeilen- oder Spaltennummern oder nur die Zelladresse vom Target. Daraus kann man sehr einfach den benutzten Bereich markieren. Es muß ja nicht auch die ganze Zeile oder Spalte markiert werden, sondern nur der benutzte Bereich. siehe Usedrange und Intersect().

Anzeige
AW: Schriftform fett
04.02.2023 23:34:29
Oraculix
Wenn ich Dich richtig verstanden habe möchtest du die ganze Spalte Fett formatieren.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim markierteZeilen As Long
Dim MeineSpalte As Range
markierteZeilen = Selection.Rows.Count
 If markierteZeilen > 1 Then
Exit Sub
Else
Sicherung_Zwischenablage
If Not MeineSpalte Is Nothing Then MeineSpalte.Font.Bold = False
Target.EntireColumn.Font.Bold = True
 End If
Set MeineSpalte = Target.EntireColumn
If Tabelle2.Range("A1").Value > "" Then
Zwischenablage_Fuellen Tabelle2.Range("A1").Value
Tabelle2.Range("A1").Value = ""
 End If
End Sub
Gruß
Oraculix
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige