Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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

Makro
07.12.2021 20:25:18
ReSt
Hallo zusammen
Ich suche ein Makro welches mir ermöglicht dass das Tabellenblatt nach Zelle H1 heisst.
Jedoch möchte ich eben auch, dass jedes weitere Blatt diese Funktion hat, welches ich einfüge.
Also nicht bei jedem Blatt ein Makro aktivieren oder so.
Bin mal schon im voraus dankbar wenns sowas gibt.
Gruss Reto

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro
07.12.2021 20:35:15
Oraculix
meinst so?
Option Explicit

Sub TabellenBlattUmbenennen()
On Error GoTo FEHLER
ActiveWorkbook.ActiveSheet.Name = Range("H1").Text
Exit Sub
FEHLER:
MsgBox "Ungültiger Name für Tabellenblatt!", vbCritical, "Tabelle umbenennen"
End Sub

Nachtrag
07.12.2021 20:40:32
Oraculix
Oder in jede Tabelle diesen Code Einfügen

Private Sub Worksheet_Activate()
On Error GoTo FEHLER
ActiveWorkbook.ActiveSheet.Name = Range("H1").Text
Exit Sub
FEHLER:
MsgBox "Ungültiger Name für Tabellenblatt!", vbCritical, "Tabelle umbenennen"
End Sub
Gruß
Oraculix
Anzeige
AW: Nachtrag
07.12.2021 21:14:34
Piet
Hallo
so klappt es bei mir, du musst den makro Namen ändern!! Nicht das Workbook Ereignis, sondern das Sheet Ereignis muss aktiv sein!!
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
mfg Piet
AW: Nachtrag
07.12.2021 21:21:21
Reto
Besten Dank
Wenn ich den Namen neu eingebe funktioniert es. Bei Blattwechsel nicht.
Aber es genügt für mich super, Danke.
Der Rest ist Weihnachtsgeschenk, hihihi
Anzeige
AW: Jetzt aber!
07.12.2021 21:33:52
Reto
WOW. Besten Dank.
Funktioniert ALLES Bestens.
Genau das was ich wollte.
Abgeschlossen.
Gruss Reto
Fertig!
07.12.2021 21:38:14
Oraculix
Du musst nur das Macro immer in eine neue Tabelle kopieren!
Gruß
Oraculix
AW: Jetzt aber!
07.12.2021 21:40:50
Reto
NICHT die Lösung, Sorry
Sobald ich ein neues Blatt einfüge geht es nicht.
Da ich es automatisch haben möchte bei Jedem neuen Blatt
AW: Jetzt aber!
07.12.2021 22:04:57
Oraculix
Klick mal auf den Button unter H1 Neue Tabelle!
https://www.herber.de/bbs/user/149659.xlsm
Gruß
Oraculix
Anzeige
AW: Jetzt aber! Endspurt ...
08.12.2021 12:52:32
Piet
Hallo
ich konnte es mir nicht verkneifen noch mal eine Endlösung anzubieten. Ich denke die Idee kann man nicht mehr toppen.
Dazu bitte alle Makros in den Tabellen löschen, und nur in "Diese Arbeitsmappe" zwei Makros übernehmen. Eins ist vom Kollegen ralf_B
Neu ist das Makro "Bei Double Klick" im aktiven Sheet. Damit wird eine Unsichtbare Vorlage kopiert und hinter dem aktiven Sheet eingefügt!
Ich denke das ist sinnvoller als ständig leere Tabellen neu ausfüllen zu müssen. Die Vorlage kannst du zum bearbeiten im VBA Editor auf "Visible" setzen.
Zur Demo wie es später in der Praxis funktioniert habe ich sie ausgeblendet.
Das Makro von ralf_B habe ich etwas modifiziert. Es ändert u.a. die Schriftfarbe von rot auf Schwarz und löscht die Zelle G1.
Wir können auch Lila oder ander Farbe nehmen. Wenn du rot behalten möchtest must du nur die Zeile mit "Font.Colorindex" löschen.
Ich denke jetzt hast du richtig Weihnachten, wenn alles problemlos funktioniert. Würde mich freuen. Grüsse in die Schweiz aus Ankara ...
https://www.herber.de/bbs/user/149675.xlsm
mfg Piet
Anzeige
AW: Jetzt aber! Endspurt ...
08.12.2021 13:00:38
Piet
Nachtrag
mir fiel auf das beim Löschen der Spalte D in der Vorlage in Spalte C+E die Prozentzahlen stehen bleiben. Ist das korrekt?
Fehlen da vielleicht die Formeln zum Berechnen? Das musst du bitte selbst prüfen. Wollte es dir aber mitteilen
mfg Piet
AW: Jetzt aber! Endspurt ...
08.12.2021 17:37:01
Reto
Wow, Super, noch cooler, da der Inhalt auch kopiert wird und ich nur noch ausfüllen muss. Merci nach Ankara.
Ja, das ist Weihnachten :-)
AW: Jetzt aber!
08.12.2021 17:06:54
Reto
WOW, super megagut.
Besten Dank für deine Hilfe.
Das macht mal Spass.
Reto
AW: Jetzt aber!
08.12.2021 17:49:12
Piet
Hallo
freut mich das es so gut klappt, danke für die Rückmeldung
mfg Piet
AW: Makro
07.12.2021 20:51:55
Reto
Habe dies in Diese Arbeitsmappe eingefügt, aber funktioniert bei mir irgendwie noch nicht noch nicht.
Anzeige
AW: Makro
07.12.2021 21:05:23
Piet
Hallo
in "DieseArbeitsmappe" gehören Makros die durch ein bestimmtes Ereignisi ausgelöst werden. Was willst du denn genau machen? Das ist mir noch unklar!!
Willst du nach dem Blatt aktivieren das Blatt jedesmal mit einem neuen Namen versehen der in Zelle H1 steht? Was ist mit neuem Blatt einfügen?
Das sind völlig verschieden Schuhe. Wir sollten uns zuerst bitte mal über das gewünschte "Schuhmodell" einiigen .. Was willst du genau erreichen? .
mfg Piet
AW: Makro
07.12.2021 21:10:24
Reto
Hallo
Ich möchte einfach wenn ich ein Tabellenblatt aktiviere oder ein neues tätige, dass es nach der Zelle H1 heisst.
Anzeige
AW: Makro
07.12.2021 20:51:04
Piet
Hallo
dieses kleine Makro erstellt automatisch ein neues Blatt und benennt es um. Wenn du einen normalen Command-Button nimmst (KEIN AktiveX Steuerelement!!) kannst du ihm das Makro dirket zuweisen und es per Button starten. Du musst im Makro aber noch den Namen der Tabelle angeben wo der neue Name in Zelle H1 steht. Sonst klappt es nicht!! Das neue Blatt kannst du mit After ans Ende stellen, ist so programmiert!
Oder mit bevor:=Worksheets(1) ganz am Anfang einfügen. Das kannst du selbst optimieren.
Bedenke bitte das du NICHT zwei Tabellen gleich benennen kannst!! Den Namen in Zelle H1 kannst du nur einmal verwenden!
mfg Piet
  • 
    Sub Blatt_einfügen_umbenennen()
    Dim NewName As String
    '**  Bitte deinen Tabellen Namen noch einsetzen
    NewName = Worksheets("xxx").Range("H1").Value
    Worksheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Name = NewName
    End Sub
    

  • Anzeige
    AW: Makro
    07.12.2021 20:56:40
    Oraculix
    so ist es noch einfacher
    
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, Range("H1")) Is Nothing Then
    Range("a2").Select
    End If
    If Target = Range("H1") Then ActiveSheet.Name = Target
    End Sub
    

    AW: Makro
    08.12.2021 07:12:45
    ralf_b
    Ich würde das so zu lösen versuchen.
    der code kommt ins Codemodul von " DieseArbeitsmappe"
    aber auch hier gilt , wenn der Name schon existiert gibts nen Fehler
    
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Not Intersect(Target, Sh.Range("H1")) Is Nothing Then
    If Target.Count = 1 Then
    If Target  "" Then Sh.Name = Target.Value
    End If
    End If
    End Sub
    

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige