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
1932to1936
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

Makro auf ein Blatt beschränken

Makro auf ein Blatt beschränken
30.05.2023 20:38:03
Christian

Hallo,

ich muss leider doch mal eine blöde Frage stellen.

Habe dieses kleine Makro hier.

Private Sub Worksheet_Change(ByVal Target As Range)

                  With Selection
                   .Font.Bold = False
                     .Font.Name = "Calibri"
                     .Font.Size = 11
                     .Font.ColorIndex = xlAutomatic
                     .Hyperlinks.Delete
                     .HorizontalAlignment = xlCenter
                     .Font.Italic = True
                  End With

                  Application.EnableEvents = True
               End Sub
               


Was kann ich tun, damit das ganze nur passiert, wenn sich die Auswahl im Blatt namens Ergebnis befindet?

Habe es mit

Private Sub Worksheet_Change(ByVal Target As Range)

With Worksheets("Ergebnis")
                  With Selection
                   .Font.Bold = False
                     .Font.Name = "Calibri"
                     .Font.Size = 11
                     .Font.ColorIndex = xlAutomatic
                     .Hyperlinks.Delete
                     .HorizontalAlignment = xlCenter
                     .Font.Italic = True
                  End With
End With

                  Application.EnableEvents = True
               End Sub


versucht aber das brachte keinen Erfolg. Das Makro befindet sich bereits im Code des Blatts Ergebnis.

Danke
Christian


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro auf ein Blatt beschränken
30.05.2023 20:52:52
GerdL
Hallo Christian,

wirf die Change-Prozedur raus. Du benötigst hier das andere Event. Ungetestet:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)


If Not Intersect(Target, Range("B:C")) Is Nothing Then Exit Sub 'Einschränken zum Testen


Application.EnableEvents = False

With Target
       .Font.Bold = False
         .Font.Name = "Calibri"
         .Font.Size = 11
         .Font.ColorIndex = xlAutomatic
         .Hyperlinks.Delete
         .HorizontalAlignment = xlCenter
         .Font.Italic = True
End With

Application.EnableEvents = True
              


End Sub
Gruß Gerd


Anzeige
AW: Makro auf ein Blatt beschränken
31.05.2023 20:17:25
Christian
Hallo ihr beiden.

Ich verzweifele immer noch an Gerds Makro, wenn ich das nehme kommt zwar keine Fehlermeldung, das Problem tritt auch nicht mehr auf, aber wenn ich Text aus dem Internet in das Blatt ergebnis kopiere, finden auch keine Anpassungen mehr statt. Das hatte vorher funktioniert.

Mit was ich etwas weiter bin, ist rauszufinden, an welchem Punkt genau mein Problem auftritt.

Und zwar ich habe ein Makro, dass von einem anderen Makro aufgerufen wird und Formeln innerhalb der Tabelle Ergebnis berechnet.
Wenn ich dieses Makro starte, befinde ich mich ja nicht zwangsläufig in der Tabelle Ergebnis, sondern kann es von überall aus starten.
Sobald dann aber in Tabelle Ergebnis durch das Makro eine Formel berechnet wird gibt es ja eine Änderung an dieser Tabelle und die aktive Zelle, die ja auch in einem anderen Blatt sein kann, wird dann neu formatiert.

Das heißt soweit ich es verstehe wäre die Lösung zu prüfen ob die aktive Zelle im Blatt Ergebnis liegt.

Aber wie, da bin ich überfragt.

Zu deinem Vorschlag, Piet... meintest du damit, with target anstatt with selection?


Anzeige
AW: Makro auf ein Blatt beschränken
31.05.2023 18:25:25
Piet
Hallo Christain

einfach so: - With Target - Bei Target Operationen musst du dich auch auf Target als Zelle beziehen!

mfg Piet


nochmal zu Piets vorschlag
31.05.2023 20:20:55
Christian
ich kann es zwar wahrscheinlich mangels Fachkenntnissen nicht nachvollziehen, aber es scheint mit der Änderung von With Selection zu With target zu funktionieren.
Danke


AW: nochmal zu Piets vorschlag
04.06.2023 22:59:18
Piet
Hallo Christian

damit du es nachvollziehen kannst: - Selection verwendet man im normalen Modul, weil es den Bereich festlegt!
Target Makros finden aber ausschliesslich als Ereignismakros in der Tabelle statt, wo das Makro drin steht!

Musst du von Aktiven Blatt Daten in ein anderes Blatt kopieren, gehört immer die Tabellenangabe der Zieltabelle dazu!
Unten siehtst du einige Beispiele, damit kannst du den Unterschied bei Range Angaben besser verstehen.
Am besten einfach mal in einer Test Datei damit herumspielen, so lernst du VBA am schnellsten.
Bei With immer aufpassen vor welcher Range Angabe du den Punkt setzt. Excel ist da sehr penibel!!

mfg Piet

  • Sub spielen()
    'kopiert die Zelle des aktiven Sheet in die Ergebnis Tabelle
    '** die Zellformate, Farben und Rahmen werden mitkopiert!
    Range(xxx).Copy Worksheets("Ergebnis").Range("yyy")  'kurze Schreibweise
    
    'überträgt nur Werte, ohne Zellformate und Schriftfarben
    Worksheets("Ergebnis").Range("yyy").Value = Range(xxx).Value
    
    Range(xxx).Copy  'mehrere Optionen möglich! Alles, nur Werte, Formeln usw.
    Worksheets("Ergebnis").Range("yyy").PasteSpecial xlPasteValues
    
    With Worksheets("Ergebnis")
         'mit Punkt bezieht sich Range immer auf die With Klammer!!
         Range(xxx).Copy  'ohne Punkt = aktives Sheet
         .Range("yyy").PasteSpecial xlpastvalues  'Ergebns Sheet
    End With
    End Sub


  • Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige