Anzeige
Archiv - Navigation
1308to1312
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

tabellenblatt automatisch erstellen

tabellenblatt automatisch erstellen
04.05.2013 13:58:09
Lippmann
Hallo liebe Gemeinde,
ich stehe erneut vor einer mir aufgetragenen Aufgabe.... und hoffe ich finde hier Hilfe.
Ausgangspunkt: 1 Tabelle mit lfd. Aufgaben, in der bisher in Spalte A der Vorgang und in Spalte B die lfd. Aktivität hierzu eingetragen wird.
Ziel: wenn in Blatt "Vorgänge" Spalte A Zeile "x" ein neuer Vorgang "Vx" eingetragen wird, wird ein neues Tabellenblatt "Vx" angelegt, die Zelle "Vorgänge" "Ax" erhält einen Link zu Blatt "Ax"
Ich hoffe ich hab mich verständlich genug ausgedrückt....
Bsp.: ich möchte in Blatt "Vorgänge" in Zelle A3 den Vorgang -Hilfe- eintragen, Resultat soll sein, dass 1) ein Tabellenblatt -Hilfe- angelegt wird 2) in Blatt Vorgänge, Zelle A3 eine verlinkung zum neuen Blatt -Hilfe- erstellt wird.

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

Betreff
Datum
Anwender
Anzeige
AW: tabellenblatt automatisch erstellen
04.05.2013 15:59:05
Oberschlumpf
Hi
Schön wäre es, wenn du uns eine Bsp-Datei zeigst, die alle wichtigen Infos enthält, damit deine Frage verstanden werden kann.
Ciao
Thorsten

AW: tabellenblatt automatisch erstellen
06.05.2013 08:37:14
Klaus
Hallo Lippmann,
rechtsclick auf den Reiter deiner Tabelle "Aufgaben" und dann auf "Code anzeigen". In das große weiße Fenster kopierst du unten stehenden Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'On Error GoTo hell
Dim iCol As Integer
Dim lRow As Long
Dim wksOld As Worksheet
Dim sZiel As String
'Vorgänge IN Spalte 1 (=A), und AB Zeile 2
iCol = 1
lRow = 2
'Hyperlinkziel in neuen Tabellen: A1
sZiel = "A1"
Set wksOld = ActiveSheet 'aktives Blatt merken
'Abbruch bei Mehrfachauswahl
If Target.Rows.Count > 1 Then GoTo heaven
If Target.Columns.Count > 1 Then GoTo heaven
If Target.Column = iCol And Target.Row >= lRow And Not Target.Value = "" Then
If WksSheetExists(Target.Value) Then
If MsgBox("Ein Blatt Namens " & Target.Value & " gibt es schon!" & Chr(10) & "neue  _
Aktivität löschen?", vbYesNo) = 6 Then
Target.ClearContents
End If
Else
Sheets.Add After:=Worksheets(Worksheets.Count) 'neues Sheet
ActiveSheet.Name = Target.Value                'sheet umbenennen
'bei ungültigem Namen greift "onError"
End If
End If
GoTo heaven:
hell: 'unnötiges Blatt (falscher Name) löschen und Fehlermeldung ausgeben
If Not wksOld.Name = ActiveSheet.Name Then
'IF-Block nicht notwendig, aber Sicherheit geht vor!
If MsgBox("Fehler - warscheinlich ein ungültiger Name!" & Chr(10) & "unnötiges Sheet lö _
schen?", vbYesNo) = 6 Then
Application.DisplayAlerts = False
ActiveSheet.Delete
End If
End If
heaven:
Application.DisplayAlerts = True
wksOld.Activate
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Statt Hyperlinks: Sheetwechsel per VBA
'Abbruch bei Mehrfachauswahl
If Target.Rows.Count > 1 Then GoTo heaven
If Target.Columns.Count > 1 Then GoTo heaven
'Sheet wechseln, falls möglich
If WksSheetExists(Target.Value) Then Sheets(Target.Value).Activate
heaven:
End Sub
Function WksSheetExists(sSheet As String) As Boolean
'Function prüft, ob ein Sheet bereits vorhanden ist
Dim wks As Object
On Error Resume Next
Set wks = Sheets(sSheet)
If Not wks Is Nothing Then
WksSheetExists = True
End If
On Error GoTo 0
End Function
Statt Hyperlinks habe ich den Blattwechsel per VBA gelöst. Kannst die Spalte ja blau+unterstrichen formatieren, dann sehen die Vorgangsnamen auch aus wie Hyperlinks.
Grüße,
Klaus M.vdT.

Anzeige
AW: tabellenblatt automatisch erstellen
08.05.2013 11:43:01
Lippmann
Hallo Klaus,
danke für die schnelle antwort.
ich habs jetzt tasächlich geschafft deinen Lösungsvorschlag zu probieren.
aber entweder ich bin zu blöd zum kopieren, oder irgenwas anderes stimmt nicht.
ich habe eine neue datei erstellt und deinen Code kopiert.
Ergebnis: Fehler beim kompilieren. Syntaxfehler.
die Datei mal anbei.

Die Datei https://www.herber.de/bbs/user/85244.xlsm wurde aus Datenschutzgründen gelöscht


AW: tabellenblatt automatisch erstellen
09.05.2013 09:53:00
Klaus
Hallo Lippmann,
das war eine Kleinigkeit. Die Zeilen wurden im VBA-Editor sogar ROT markiert!
Erklärung:
die sehr lange Zeile
If MsgBox("Fehler - warscheinlich ein ungültiger Name!" & Chr(10) & "unnötiges Sheet lö _
schen?", vbYesNo) = 6 Then

hat einen Zeilenumbruch (vom Forum) bekommen. Dadurch versucht VBA, die entstandene Zeile
schen?", vbYesNo) = 6 Then
als Code zu interpretieren. Und das geht natürlich nicht.
Lösung: Bereinige die im Editor rot gezeigten Zeilen vom Zeilenumbruch. Das habe ich mal für dich erledigt und die neue Datei hochgeladen:
https://www.herber.de/bbs/user/85255.xlsm
Grüße,
Klaus M.vdt.

Anzeige
AW: tabellenblatt automatisch erstellen
10.05.2013 07:41:04
Lippmann
Vielen Dank!
Das zeigt mal wieder, wer lesen kann ist klar im Vorteil.

Danke für die Rückmeldung! owT.
10.05.2013 08:07:34
Klaus
.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige