Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1572to1576
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 nur im aktivem Sheet ausführen

Makro nur im aktivem Sheet ausführen
04.08.2017 13:13:09
torro100
Hallo Zusammen,
ich erstelle eine Toolbar mit 4 Einträgen, die für alle Tabellenblätter gelten sollen. Wenn ich eines der Makros auswähle, soll dies aber nur auf das gerade aktive Sheet angewendet werden.
Auf ein namentlich genanntes Sheet (x86_..) funktioniert es ohne Probleme.
Hier der Code:
Sub create_offer()
Dim wks As Worksheet
Dim blatt As String
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
Application.DisplayAlerts = False
blatt = "offer"
For Each wks In ActiveWorkbook.Worksheets
If wks.Name = blatt Then
Sheets(blatt).Delete
End If
Next
Worksheets.Add.Move After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = blatt
Application.DisplayAlerts = True
With Worksheets("x86_Power_middleware")
ZeileMax = .UsedRange.Rows.Count
n = 1
For Zeile = 1 To ZeileMax
If .Cells(Zeile, 2).Value = "1" Then
.Rows(Zeile).Copy
Worksheets("offer").Rows(n).PasteSpecial Paste:=xlPasteValues
Worksheets("offer").Rows(n).PasteSpecial Paste:=xlPasteFormats
n = n + 1
End If
Next Zeile
End With
Worksheets("offer").Activate
'ActiveWorkbook.Worksheets("offer").Columns("B").Delete
ActiveWorkbook.Worksheets("offer").Columns("A:M").EntireColumn.AutoFit
ActiveWorkbook.Worksheets("offer").Cells.ClearOutline
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro nur im aktivem Sheet ausführen
04.08.2017 13:24:33
ChrisL
Hi
Ich weiss nicht ob ich dich richtig verstehe, aber
With Worksheets("x86_Power_middleware")
ersetzen durch...
With ActiveSheet
cu
Chris
AW: Makro nur im aktivem Sheet ausführen
04.08.2017 13:43:16
torro100
Hi Chris,
das hatte ich auch schon versucht. Er erstellt mir dann zwar das neue Blatt "Offer",
kopiert dort aber die Werte nicht hinein.
Das macht es jedoch, wenn ich den Namen angebe.
vg
Mike
AW: Makro nur im aktivem Sheet ausführen
04.08.2017 13:50:29
ChrisL
Hi Mike
Ja jetzt sehe ich das Problem. Im entscheidenden Moment ist das Blatt "offer" aktiv.
Am Anfang vom Code:
Dim WS As Worksheet
Set WS = ActiveSheet
und dann unten...
With WS
cu
Chris
Anzeige
AW: Makro nur im aktivem Sheet ausführen
04.08.2017 14:30:53
Mike
top, das wars....DANKE.
AW: Makro nur im aktivem Sheet ausführen
04.08.2017 14:58:30
Mike
Hi Chris, noch eine bescheidene Frage:
Hiermit wird meine Toolbar erstellt.
In anderern Dateien klappt das, hier bekomme ich immer eine Debugg Meldung
und ".Name = ToolBarName" ist markiert.
Ich finde aber keine Fehler.
danke und vg
Mike
Sub CreateMenubar()
Dim iCtr As Long
Dim MacNames As Variant
Dim CapNamess As Variant
Dim TipText As Variant
MacNames = Array("create_offer", _
"add_to_offer", _
"save")
CapNamess = Array("create offer", _
"add to offer", _
"save")
With Application.CommandBars.Add
.Name = ToolBarName
.Left = 1000
.Top = 50
.Protection = msoBarNoProtection
.Visible = True
.Position = msoBarTop
For iCtr = LBound(MacNames) To UBound(MacNames)
With .Controls.Add(Type:=msoControlButton)
.BeginGroup = True
.OnAction = "'" & ThisWorkbook.Name & "'!" & MacNames(iCtr)
.Caption = CapNamess(iCtr)
.Style = msoButtonCaption
.FaceId = 71 + iCtr
'.TooltipText = TipText(iCtr)
End With
Next iCtr
End With
End Sub

Anzeige
AW: Makro nur im aktivem Sheet ausführen
04.08.2017 15:48:30
ChrisL
Hi Mike
.Name = "Text-String"
oder mit Variable
Sub CreateMenubar()
Dim iCtr As Long
Dim MacNames As Variant
Dim CapNamess As Variant
Dim TipText As Variant
Dim ToolBarName As String
MacNames = Array("create_offer", _
"add_to_offer", _
"save")
CapNamess = Array("create offer", _
"add to offer", _
"save")
ToolBarName = "MeineBlablaToolBar"
With Application.CommandBars.Add
.Name = ToolBarName
.Left = 1000
.Top = 50
.Protection = msoBarNoProtection
.Visible = True
.Position = msoBarTop
For iCtr = LBound(MacNames) To UBound(MacNames)
With .Controls.Add(Type:=msoControlButton)
.BeginGroup = True
.OnAction = "'" & ThisWorkbook.Name & "'!" & MacNames(iCtr)
.Caption = CapNamess(iCtr)
.Style = msoButtonCaption
.FaceId = 71 + iCtr
'.TooltipText = TipText(iCtr)
End With
Next iCtr
End With
End Sub

cu
Chris
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige