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

Datentabellen aufrufen per VBA

Datentabellen aufrufen per VBA
02.07.2015 11:01:36
Berni
Liebe Excellenzen!
Ich bin gerade dabei, eine Planungstabelle zu basteln, die aufgrund der Detailierung doch ziemlich umfangreich wird. Daher habe ich pro Tabellenblatt einen Planungsauftrag vorgesehen, in welchem dann die Projektanten die diversen Kosten (Stunden) für das kommende Jahr planen können. Um die Tabellen einzeln anspringen zu können habe ich einen Code hinterlegt, welcher mir das Datenblatt aufruft und nach Eintragen der Daten wieder verschwinden lässt.
Sub Daten5071103()
Sheets("5071103").Visible = True
Sheets("5071103").Select
Range("G8").Select
End Sub
Sub Auftragstruktur5071103()
Sheets("5071103").Visible = xlSheetVeryHidden
Sheets("Aufträge").Select
Range("A1").Select
End Sub
Sub Daten5074953()
Sheets("5074953").Visible = True
Sheets("5074953").Select
Range("G8").Select
End Sub
Sub Auftragstruktur5074953()
Sheets("5074953").Visible = xlSheetVeryHidden
Sheets("Aufträge").Select
Range("A1").Select
End Sub
Da es mitunter 100 Aufträge und mehr gibt, ist es etwas mühsam, den Code für die Einzelnen Tabellenblätter einzurichten. Gibt es vielleicht einen Trick, diese Prozedur über eine Schleife abzukürzen?
Danke vorerst
Berni

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datentabellen aufrufen per VBA
02.07.2015 11:19:54
Senna
Hallo Berni,
klar geht das:

Sub anzeigen()
for each arr in array(5071103, 5074953)
Sheets(arr).Visible = True
next arr
end sub
sub verbergen()
for each arr in array(5071103, 5074953)
Sheets(arr).Visible = xlSheetVeryHidden
next arr
Sheets("Aufträge").Select
Range("A1").Select
Wenn die Blätter hintereinander in der Arbeitsmappe liegen und es sehr viele sind kannst du es auch so lösen:

sub anzeigen()
for i = sheets("name_des_ersten_blattes").index to sheets("name_des_letzten_blattes").index
Sheets(i).Visible = True
next i
end sub
sub verbergen()
for i = sheets("name_des_ersten_blattes").index to sheets("name_des_letzten_blattes").index
Sheets(i).Visible = xlSheetVeryHidden
next i
Sheets("Aufträge").Select
Range("A1").Select
end sub

Anzeige
AW: Datentabellen aufrufen per VBA
02.07.2015 12:31:55
Berni
Herzlichen Dank, Senna!
Das Verbergen funktioniert super. Allerdings habe ich beim Einblenden ein kleines Problem. Drücke ich auf den Button, dann gehen die gesamten 70 Tabellen auf, was wieder zur Unübersichtlichkeit führt. Derzeit habe ich es ja so gelöst, dass ich auf der Auftragsübersicht über das Schaltfeld "Daten 5071103" jeweils nur das ausgewählte Blatt sichtbar machen kann und nach getaner Arbeit über das Schaltfeld "Zurück zur Übersicht" zu den Aufträgen springe. Aber vielleicht lässt sich Dein Code mit diesem sinnvoll verknüpfen:
Sub NurAktivesBlattSichtbar()
Dim Blatt As Worksheet
For Each Blatt In ActiveWorkbook.Sheets
If Blatt.Name  ActiveSheet.Name Then
Blatt.Visible = xlSheetVeryHidden
End If
Next Blatt
End Sub

Danke nochmals
Berni

Anzeige
AW: Datentabellen aufrufen per VBA
03.07.2015 13:14:56
Senna
Ok, du möchtest als für jedes Datenblatt einen eigenen Button haben. Wie wäre es mit einem Hyperlink?
Sub Uebersicht()
Dim IntI%
On Error Resume Next
If Sheets(1).Name = "Uebersicht" Then
Sheets(1).Select
Cells.Clear
Else
Sheets.Add Before:=Sheets(1)
Sheets(1).Select
Sheets(1).Name = "Uebersicht"
End If
Cells(1, 1).Value = "Uebersicht"
For IntI = 2 To Sheets.Count
Cells(IntI, 1).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Sheets(IntI).Name & "!A1", TextToDisplay:=Sheets(IntI).Name
Next IntI
Cells(1, 1).Select
End Sub
Dann musst du noch in das erstellte Tabellenblatt folgenden Code kopieren:
(Also tatsächlich unter VBAProject(Mappe)/Microsoft Excel Objekte/TabelleX(Uebersicht) anklicken.)
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
If Sheets(Target.Parent.Value).Visible = xlSheetVeryHidden Or Sheets(Target.Parent.Value). _
Visible = False Then
Sheets(Target.Parent.Value).Visible = True
Sheets(Target.Parent.Value).Select
End If
End Sub

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige