Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
540to544
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
540to544
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nochmal an die Allgemeinheit

Nochmal an die Allgemeinheit
07.01.2005 12:21:15
Teddy
Hallo Alle,
hatte gestern wegen einer Sache gepostet und auch schon einen guten Tip erhalten. Allerdings entstand dabei ein Kompilierungsfehler. Vielleicht hat ja ein anderer von euch noch `ne gute Idee?
Das Problem ist folgendes.....
Mittels diesem Makro:
...Dim Blatt As Worksheet
For Each Blatt In ThisWorkbook.Worksheets
If Blatt.Name "Statistik" Then
'"Statistik" ist die Tabelle, die nicht aus/eingeblendet werden soll !
Blatt.Visible = Not Blatt.Visible
End If
Next...
ist es möglich, alle verborgenen Blätter einer Arbeitsmappe in einem Rutsch ein- bzw. auszublenden.
Mit der Zeit werden sehr viele Blätter in diese Mappe kopiert werden. Das bedeutet, irgendwann muß dieses Makro eine ganze Menge Blätter sichtbar- / unsichtbar machen. Möglicherweise geht dabei der betreffende Rechner in die Knie (Ist nicht mehr der neueste und schnellste seiner Zunft!).
Gibt es, um das zu vermeiden, eventuell die Möglichkeit, per Makro Excel explizit zu sagen, welche Blätter ein- oder ausgeblendet werden sollen?
Ich stelle mir das so vor:
Die Liste unter FORMAT BLATT EINBLENDEN wird angezeigt, der User trifft seine Auswahl (ein oder mehrere Blätter gleichzeitig) und die Blätter werden dann sichtbar gemacht. Das Problem ist nämlich, das der User nicht genau weiß, wie die einzelnen Blätter benannt sind und somit sollte er die oben erwähnte Liste als Auswahlkriterium nutzen können.
Diesbezüglich wurde mir schon ein Test-Makro zur Verfügung gestellt, welches aber, wie schon gesagt, einen Fehler beim Kompilieren macht.
Dieses Makro sieht so aus:
...Dim arrSplit, i As Integer, strTmp As String
strTmp = InputBox("Welche Blätter?" & vbLf & "(Nummern oder Namen durch , trennen.)")
arrSplit = Split(strTmp, ",")
For i = 0 To UBound(arrSplit)
If IsNumeric(arrSplit(i)) Then
Sheets(CInt(arrSplit(i))).Visible = Not Sheets(CInt(arrSplit(i))).Visible
Else
Sheets(arrSplit(i)).Visible = Not Sheets(arrSplit(i)).Visible
End If
Next i...
Der Fehler tritt hier auf:
arrSplit = Split(strTmp, ",") -- Beim Befehl "Split"!
Meldung: Sub / Function nicht definiert.
So - Das war`s. Sorry für die Menge an Text. Aber besser genau erklärt, als unnötig viel und oft nachgefragt.
Schon mal Danke im Voraus falls einer von euch helfen kann.
Teddy

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hat den keiner einer Idee? Megaschade...
07.01.2005 13:35:16
Teddy
Tabellenblätter ein/ausblenden per Makro
Reinhard
Hi Teddy,
m.W. kennt Excel 8.0 nicht den Befehl Split, bei Version 9.0 ist er vorhanden.
Gruß
Reinhard
AW: Tabellenblätter ein/ausblenden per Makro
07.01.2005 13:47:25
Teddy
Wie blöde doch Excel ist, nicht wahr?!
Kommt ja auch von "Winzig Weich" (Micro Soft)
He he he ...
AW: Nochmal an die Allgemeinheit
07.01.2005 13:39:53
DieterB
Hallo Teddy(Bär) :-))))
Dim Split As....
gruß
DieterB
AW: Nochmal an die Allgemeinheit
07.01.2005 13:45:35
Teddy
Der Hinweis ist ja bestimmt lieb und ohne den erhobenen Zeigefinger gemeint.
Aber ohne Heu kann`s beste Pferd nit f.....
Will sagen; Was war damit wohl gemeint?!
Klär` mich auf!
@_@
Scheint nix zu werden.....
07.01.2005 13:58:51
Teddy
Tja..., so wie`s aussieht, werden Sie hier nicht geholfen.
Schade eigentlich...
Ô_Ô
Dennoch mal Danke.
Vielleicht kommt ja die Erleuchtung im Schlaf über mich.
Oder irgendwer hat doch noch den zündenden Einfall?!
Bis dann, Friends.
Teddy
Anzeige
AW: Nochmal an die Allgemeinheit
07.01.2005 14:55:52
DieterB
Hallo Teddy,
wenn dein Problem noch besteht,
hatte gerade jemanden eine Mappe auf den server gelegt,
mit einem ähnlichen Problem.
In deisem Thread hat Jinx einen Beitrag erstellt.
Schau dir aml den Code an.
Suchfeld Jinx.
Lösung mit Kontrollkästchen
Reinhard
Hi Teddy,
schau mal ob das bei Excel 8.0 läuft, warum da KC rechts neben den Kontrollkästchen steht ist mir schleierhaft, ich stelle das als neue Frage hier ins Forum, musste da mal schauen ob jmd das wegbekommt.
Ansonsten, beim Dateiöffnen, werden alle Blätter bis auf Tabelle1 ausgeblendet, mit den Kästchen kannst du dann die anderen Blätter ein/ausblenden.
Datei: https://www.herber.de/bbs/user/15768.xls
Der verwendete Code in Modul1 steht nachfolgend, Beim Dateiöffnene wird die Sub ListeErstellen ausgeführt.
Gruß
Reinhard

Sub ListeErstellen()
Dim Zeile As Long
Zeile = 1
With Worksheets("Tabelle1")
.Columns("A").ClearContents
.Range("A1") = "Blattname"
.Range("B1") = "Eingeblendet"
For Each Kästchen In .Shapes
Kästchen.Delete
Next Kästchen
For Each Blatt In ThisWorkbook.Worksheets
If Blatt.Name <> "Tabelle1" Then
Worksheets(Blatt.Name).Visible = False
Zeile = Zeile + 1
.Cells(Zeile, 1) = Blatt.Name
.CheckBoxes.Add(.Cells(Zeile, 2).Left, .Cells(Zeile, 1).Top, 11.75, 11.75).Select
Selection.Name = "Box" & Blatt.Name
Selection.OnAction = "Auswerten"
End If
Next Blatt
.Range("A1").Select
End With
End Sub
Sub Auswerten()
Worksheets(Mid(Application.Caller, 4)).Visible = Not (Worksheets(Mid(Application.Caller, 4)).Visible)
End Sub

Anzeige
AW: Nochmal an die Allgemeinheit
07.01.2005 16:03:05
Teddy
Vielen lieben & heißen Dank euch beiden!
Bin schon am daddeln.
Muß die Sache noch ein bißchen umgestalten, damit es zu meiner vorhandenen Tabelle paßt.
Danke!
Teddy
AW: Nochmal an die Allgemeinheit
Reinhard
Hi Teddy,
das KC war der Anfang von Kontrollkästchen, DieterB wies mich daraufhin.
Ändere den Code von:

Selection.OnAction = "Auswerten"
End If
in:
Selection.OnAction = "Auswerten"
Selection.Characters.Text = ""
End If
Gruß
Reinhard

AW: Nochmal an die Allgemeinheit
07.01.2005 16:21:21
Teddy
Momentaner Stand:

Sub ListeErstellen()
Dim Zeile As Long
Zeile = 1
With Worksheets("Tabelle1")
.Columns("H").ClearContents
.Range("H1") = "Blattname"
.Range("I1") = "Eingeblendet"
For Each Kästchen In .Shapes
Kästchen.Delete
Next Kästchen
For Each Blatt In ThisWorkbook.Worksheets
If Blatt.Name <> "Tabelle1" Then
Worksheets(Blatt.Name).Visible = False
Zeile = Zeile + 1
.Cells(Zeile, 8) = Blatt.Name
.CheckBoxes.Add(.Cells(Zeile, 9).Left, .Cells(Zeile, 1).Top, 11.75, 11.75).Select
With Selection
.Placement = xlMove
.PrintObject = False
End With
With Selection
.Value = xlOff
.LinkedCell = ""
.Display3DShading = True
End With
Selection.ShapeRange.IncrementLeft 18#
Selection.ShapeRange.IncrementTop -1.5
Selection.ShapeRange.IncrementTop -0.75
Selection.ShapeRange.IncrementLeft 3#
Selection.Name = "Box" & Blatt.Name
Selection.OnAction = "Auswerten"
Selection.Characters.Text = ""
End If
Next Blatt
.Range("A1").Select
End With
End Sub


Sub Auswerten()
Worksheets(Mid(Application.Caller, 4)).Visible = Not (Worksheets(Mid(Application.Caller, 4)).Visible)
End Sub

Sieht schon sehr gut aus!!!
Danke nochmal.
Ô_Ô
Anzeige
Noch was wichtiges!
07.01.2005 19:01:04
Teddy
Hai nochmal...
Geht das hier "For Each Kästchen In .Shapes" auch in Spalten? ".Columns" zum Beispiel?
Oder heißt das dann anders?
Ich habe nämlich noch zwei andere Schaltflächen im Blatt - Die werden dann auch gelöscht!
Nicht gut.
Thx & Ciao
Teddy
AW: Noch was wichtiges!
Reinhard
Hi Teddy,
ungetestet, probiers mal in der Art:
For Each Kästchen In .Shapes
iF left(Kästchen.Name,3)="Box" Then
...
end if
Gruß
reinhard
AW: Noch was wichtiges!
08.01.2005 01:28:30
Teddy
Ey Reinhard - Bomben-Tip!
Jetzt geht es.
Vielen Dank!
Ô_Ô
Teddy

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige