500 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo guten Tag, brauch mal wieder eure Hilfe.

Ich habe in Excel mehrere Tabellenblätter und möchte mit der Tastenkombination strg+ n ein bestimmtes makro ausführen aber immer nur im aktuellem Tabellenblatt, denn ich möchte im nächsten Tabellenblatt ein anderes Makro ausführen mit derselben Tastenkombination strg+ n.

Kann mir jemand helfen, Danke.

6 Antworten

0 Punkte
Beantwortet von

Hallo Janina,

Zeichne ein neues Makro auf, gib diesem z.B. den Namen Makroliste und binde die Tastenkombination an das neue Makro. In diesem neuen Makro steht z.B. folgender Code:

Sub Makroliste()

 If ActiveSheet.Name = "Tabelle1" Then Call Makro1
 If ActiveSheet.Name = "Tabelle2" Then Call Makro2
 If ActiveSheet.Name = "Tabelle3" Then Call Makro3
 
End Sub

Die Makro und Tabellennamen musst du natürlich anpassen.

Je nachdem von welchem Tabellenblatt du die Tastenkombination drückst, wird immer das Makro Makroliste gestartet. Und je nach Tabellenname das entsprechende andere Makro aufgerufen.

Gruß Mr. K.

0 Punkte
Beantwortet von

Hallo Mr. K. leider bin ich nicht in der Lage diese makros zusammenzustellen, ich habe ein

Tabellenblatt Tabelle1 (1 Baustelle), die makros befinden sich alle in einem Modul (siehe zum Schluss).

Option Explicit

Sub Zeile_einfügen_Baustelle()

' Zeile_einfügen Makro

    Application.ScreenUpdating = False 'Bildschirmaktualisierung ausschalten

    Rows("8").Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Selection.RowHeight = 15

    Range("c2:bd2").Select         'Gleiche Formel wie Spalte "?4"

    Selection.Copy

    Range("c8:bd8").Select

    ActiveSheet.Paste

    Application.CutCopyMode = False

    Application.ScreenUpdating = True 'Bildschirmaktualisierung einschalten

    Range("c8").Select

End Sub

und ein Tabellenblatt Tabelle5 (2 Material)

Option Explicit

Sub Zeile_einfügen_Material()

' Zeilen_Kopieren Makro

    Application.ScreenUpdating = False 'Bildschirmaktualisierung ausschalten

    Rows("8:8").Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Selection.RowHeight = 15

    Range("a2:i2").Select         'Gleiche Formel wie Spalte "?2"

    Selection.Copy

    Range("a8:i8").Select

    ActiveSheet.Paste

    Application.CutCopyMode = False

    Application.ScreenUpdating = True 'Bildschirmaktualisierung einschalten

    Range("A8").Select

End Sub

und ein Tabellenblatt Tabelle8 (3 Maschinen LKW)

Option Explicit

Sub Zeile_einfügen_Maschinen()

' Zeilen_Kopieren Makro

    Application.ScreenUpdating = False 'Bildschirmaktualisierung ausschalten

    Rows("8:8").Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Selection.RowHeight = 15

    Range("a2:ah2").Select         'Gleiche Formel wie Spalte "?2"

    Selection.Copy

    Range("a8:ah8").Select

    ActiveSheet.Paste

    Application.CutCopyMode = False

    Application.ScreenUpdating = True 'Bildschirmaktualisierung einschalten

    Range("A8").Select

End Sub                                                 Bitte um Hilfe

0 Punkte
Beantwortet von

Hallo Janina,

Du sollst nicht den bestehenden Code verändern, sondern ein neues, Viertes Makro hinzufügen. Füge dazu über Menü Einfügen ein neues Modul ein (z.B. Modul1) und gibt dort diesen Code ein:

Sub Makroliste()

 If ActiveSheet.Name = "1 Baustelle" Then Call Zeile_einfügen_Baustelle
 If ActiveSheet.Name = "2 Material" Then Call Zeile_einfügen_Material
 If ActiveSheet.Name = "3 Maschinen LKW" Then Call Zeile_einfügen_Maschinen
 
End Sub

Den Code in den anderen Modulen lässt du unverändert. (entferne also unbedingt die selbst hinzugefügte Zeile wieder aus dem Makro Zeile_einfügen_Baustelle)

Gehe zurück nach Excel und drücke dort Alt + F8 Es öffnet sich die Makroübersicht (auch anwählbar über Ansicht -> Makros)

Makroübersicht

Wähle dort da neue Makro (in meinem Fall Makroliste) und drücke auf Optionen

Makrooptionen

In den Makrooptionen kannst du nun diesem Makro eine Tastenkombination zuordnen. Sollte die Fehlermeldung kommen, dass diese Tastenkombination bereits belegt sei, musst du zuvor auf selbe Weise bei den Anderen Makros die Tastenkombination entfernen.

Gruß Mr. K.

0 Punkte
Beantwortet von

Hallo Mr. K. bin laut Beschreibung vorgegangen und erhalte diese Fehlermeldung sobald ich die Tastenkombination strg+n drücke, was habe ich falsch gemacht. Danke

0 Punkte
Beantwortet von

Hallo Janina,

du hast das Modul genau so genannt wie das Makro. Dadurch kommt der Code durcheinander und weiß nun nicht ob er das Modul oder das Makro ansprechen soll. Aber auch für den Fall gib't eine Lösung. Ersetze den Code wie folgt:

Sub Makroliste()

 If ActiveSheet.Name = "1 Baustelle" Then Call Zeile_einfügen_Baustelle.Zeile_einfügen_Baustelle
 If ActiveSheet.Name = "2 Material" Then Call Zeile_einfügen_Material.Zeile_einfügen_Material
 If ActiveSheet.Name = "3 Maschinen LKW" Then Call Zeile_einfügen_Maschinen.Zeile_einfügen_Maschinen
 
End Sub

Gruß Mr. K.

0 Punkte
Beantwortet von

Hallo Mr. K. vielen vielen Dank, das ist meine Rettung.

...