Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
848to852
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
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Makro auf anderes Blatt
27.02.2007 13:26:40
Florian
Hallo Zusammen,
ich habe folgendes Problem:
Dieses Makro habe ich einem Button in dem zu bearbeitenden Blatt zugeordnet. Nun möchte ich diesen Button (Befehl) auf einem anderen Tabellenblatt einfügen, doch leider funktioniert das Makro dann nicht mehr!
Wie kann ich das Makro über das ursprüngliche Blatt im Hintergrund laufen lassen?
Was muß ich dem Makro einfügen?

Private Sub Grafik_Click()
ActiveSheet.Unprotect
Dim ix As Single
If GRAFIK.Caption = "Grafik bearbeiten" Then
GRAFIK.Caption = "RESET"
For ix = 8 To 494
If Application.WorksheetFunction.Sum(Range(Cells(ix, 4), Cells(ix, 55))) = 0 _
Then                ActiveSheet.Rows(ix).EntireRow.Hidden = True
End If
Next ix
For ix = 4 To 55
If Application.WorksheetFunction.Sum(Range(Cells(8, ix), Cells(494, ix))) = 0 _
_	_	Then                            ActiveSheet.Columns(ix).EntireColumn.Hidden = True
End If
Next ix
Else
GRAFIK.Caption = "Grafik bearbeiten"
ActiveSheet.Range(Cells(1, 1), Cells(494, 55)).EntireRow.Hidden = False
ActiveSheet.Range(Cells(1, 1), Cells(494, 55)).EntireColumn.Hidden = False
End If
If GRAFIK.Caption = "RESET" Then
Sheets("Diagramm_II").Select
End If
ActiveSheet.Protect
End Sub

Herzlichen Dank,
Florian

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro auf anderes Blatt
27.02.2007 13:35:37
Hans
Hallo Florian,
du musst die korrekten Bezüge auf die Blätter vornehmen.
Beispiel a):
Aus:
ActiveSheet.Rows(ix).EntireRow.Hidden = True
ergibt sich:
Worksheets("xyz").Rows(ix).EntireRow.Hidden = True
Beispiel b):
Aus:
Application.WorksheetFunction.Sum(Range(Cells(ix, 4), Cells(ix, 55)))
ergibt sich:
Application.WorksheetFunction.Sum(Worksheets("xyz").Range(Worksheets("xyz").Cells(ix, 4), Worksheets("xyz").Cells(ix, 55)))
Gruss hans
AW: Makro auf anderes Blatt
27.02.2007 15:23:00
Florian
Hallo,
erstmal Danke! Doch leider spinnts noch! Ich habe den Vorschlag nun ausprobiert, doch in Zeile 8 kommt folgender Fehler: "die Hidden Eigenschaft des Range.Objektes kann nicht festgelegt werden"
?
Herzlichen Dank,
Florian

Private Sub GRAFIK_Click()
ActiveSheet.Unprotect
Dim ix As Single
If GRAFIK.Caption = "Grafik bearbeiten" Then
GRAFIK.Caption = "RESET"
For ix = 8 To 494
If _
Application.WorksheetFunction.Sum(Worksheets("MATRIX").Range(Worksheets("MATRIX").Cells(ix, _
4), Worksheets("MATRIX").Cells(ix, 55))) = 0 Then
Worksheets("MATRIX").Rows(ix).EntireRow.Hidden = True
End If
Next ix
For ix = 4 To 55
If Application.WorksheetFunction.Sum(Range(Cells(8, ix), Cells(494, ix))) = 0 _
Then            Worksheets("MATRIX").Columns(ix).EntireColumn.Hidden = True
End If
Next ix
Else
GRAFIK.Caption = "Grafik bearbeiten"
Worksheets("MATRIX").Range(Cells(1, 1), Cells(494, 55)).EntireRow.Hidden = False
Worksheets("MATRIX").Range(Cells(1, 1), Cells(494, 55)).EntireColumn.Hidden = _
False    End If
If GRAFIK.Caption = "RESET" Then
Sheets("Diagramm_II").Select
End If
ActiveSheet.Protect
End Sub

Anzeige
AW: Makro auf anderes Blatt
27.02.2007 15:48:27
Hans
Hallo Florian,
da sind noch ein paar kritische Stellen drin. Es reicht z.B. nicht, nur das Range-Objekt der Arbeitsmappe zuzuweisen, das muss auch bei den folgenden Cell-Sequenzen passieren (wie in meinem Beispiel). Um die Sache übersichtlich und schnell zu halten, bietet sich die Übergabe an Objektvariablen oder - wie folgt - die Einbindung in einen With-Rahmen an:

With Worksheets("MATRIX")
.Range(.Cells(1, 1), .Cells(494, 55)).EntireRow.Hidden = False
.Range(.Cells(1, 1), .Cells(494, 55)).EntireColumn.Hidden = False
End With

Gruss hans
Anzeige
AW: Makro auf anderes Blatt
27.02.2007 16:17:00
Florian
Doch leider hat er ein Problem in Zeile 8!
'Worksheets("MATRIX").Rows(ix).EntireRow.Hidden = True'
Ist dies mit deinem Vorschlag zu lösen?
Bzw. wo müßte ich deinen Vorschlag 'With...' bei Application einfügen?
Die Application.Worksheets("MATRIX") stimmen?
Am Verzweifeln! ;)
Gruß,
Florian
AW: Makro auf anderes Blatt
28.02.2007 09:56:00
Hans
Hallo Florian,
die Zeile:
Worksheets("MATRIX").Rows(ix).EntireRow.Hidden = True
macht keinen Sinn, denn eie Zeile ist ja schon die ganze Zeile, also:
Worksheets("MATRIX").Rows(ix).Hidden = True
Gruss hans
AW: Makro auf anderes Blatt
28.02.2007 15:10:45
Florian
Hallo Hans,
darf ich nochmals stören!
Es funktioniert einfach nicht! hier nochmals mein Makro. Zeile 08 ist immer noch das Problem!
Haste nochmals einen Tipp!
Gruß,
Florian

Private Sub GRAFIK_Click()
ActiveSheet.Unprotect
Dim ix As Single
If GRAFIK.Caption = "Grafik bearbeiten" Then
GRAFIK.Caption = "RESET"
For ix = 8 To 494
If _
Application.WorksheetFunction.Sum(Worksheets("MATRIX").Range(Worksheets("MATRIX").Cells(ix, _
4), Worksheets("MATRIX").Cells(ix, 55))) = 0 Then
Worksheets("MATRIX").Rows(ix).Hidden = True
End If
Next ix
For ix = 4 To 55
If _
Application.WorksheetFunction.Sum(Worksheets("MATRIX").Range(Worksheets("MATRIX").Cells(8, _
ix), Worksheets("MATRIX").Cells(494, ix))) = 0 Then
Worksheets("MATRIX").Columns(ix).Hidden = True
End If
Next ix
Else
GRAFIK.Caption = "Grafik bearbeiten"
Worksheets("MATRIX").Range(Worksheets("MATRIX").Cells(1, 1), _
Worksheets("MATRIX").Cells(494, 55)).EntireRow.Hidden = False
Worksheets("MATRIX").Range(Worksheets("MATRIX").Cells(1, 1), _
Worksheets("MATRIX").Cells(494, 55)).EntireColumn.Hidden = False
End If
If GRAFIK.Caption = "RESET" Then
Sheets("Diagramm_II").Select
End If
ActiveSheet.Protect
End Sub

Anzeige
AW: Makro auf anderes Blatt
28.02.2007 17:16:53
Florian
juhu!
Es hat geklappt! Aber noch umständlich!
Florian
AW: Makro auf anderes Blatt
01.03.2007 04:32:00
Hans
Hallo Florian,
mit dem Einbau eines With-Rahmens wird die Sache erheblich übersichtlicher und möglicherweise auch schneller:

Private Sub GRAFIK_Click()
ActiveSheet.Unprotect
Dim ix As Single
With Worksheets("MATRIX")
If GRAFIK.Caption = "Grafik bearbeiten" Then
GRAFIK.Caption = "RESET"
For ix = 8 To 494
If WorksheetFunction.Sum( _
.Range(.Cells(ix, 4), .Cells(ix, 55))) = 0 Then
.Rows(ix).Hidden = True
End If
Next ix
For ix = 4 To 55
If WorksheetFunction.Sum(.Range(.Cells(8, ix), _
.Cells(494, ix))) = 0 Then
.Columns(ix).Hidden = True
End If
Next ix
Else
GRAFIK.Caption = "Grafik bearbeiten"
.Range(.Cells(1, 1), .Cells(494, 55)).EntireRow.Hidden = False
.Range(.Cells(1, 1), .Cells(494, 55)).EntireColumn.Hidden = False
End If
End With
If GRAFIK.Caption = "RESET" Then
Sheets("Diagramm_II").Select
End If
ActiveSheet.Protect
End Sub

Gruss hans
Anzeige

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige