Tabellenblätter anlegen



Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Tabellenblätter anlegen
von: Basti
Geschrieben am: 19.05.2002 - 17:17:31

Hallo Forum,

erstmal schöne Pfingsten für alle.

Leider habe ich trotzdem ein Problem:

In "Tabelle1" der Mappe "Personen" sind in B3 bis B... die Namen und in C3 bis C... die Vornamen und in den Spalten D bis L weitere Daten eingetragen eingetragen. Nun möchte ich folgende Aufgaben realisieren bin aber in VBA noch nicht so fit.

1. Bei Doppelklick auf einen Namen in Tabelle1 soll,
a) wenn in der Mappe noch nicht vorhanden ein Tabellenblatt nach dem Muster der Tabelle2 angelegt werden, wobei der entsprechende Name und Vorname jeweils in Zelle C6 und C7 kopiert werden soll und
b) falls das Tabellenblatt schon in der Mappe vorhanden ist soll zu diesem Tabellenblatt gesprungen werden.

2. Der jeweilige Tabellenblattname sollte vielleicht aus Namen und Vornamen bestehen z.B.Müller_Klaus oder Müller_ und erster Buchstabe vom Vornamen, da ja Namen doppelt vorkommen können .

Es ist viel verlangt, hoffe aber dennoch auf Hilfe von Euch.

Gruß Basti

nach oben   nach unten

Re: Tabellenblätter anlegen
von: WernerB.
Geschrieben am: 19.05.2002 - 19:18:12

Hallo Basti,

schreibe/kopiere das nachstehende Makro in das Klassenmodul des Tabellenblattes "Tabelle1".
- Mache dazu einen Rechtsklick auf den Tabellennamen "Tabelle1".
- Klicke dann auf "Code anzeigen".
- Automatisch öffnen sich nun der VB-Editor und das Klassenmodul des Tabellenblattes "Tabelle1".
- Schreibe/kopiere das nachstehende Makro in die große weiße Fläche auf der rechten Seite.
- Zurück zum "normalen" Excel geht's mit Alt + Q.
- Fertig.


Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim BlaNa As String, Nn As String, Vn As String
Dim As Integer
Dim vorh As Boolean
    If Target.Row < 3 Or Target.Column <> 2 Then Exit Sub
    If IsEmpty(Target) Then Exit Sub
    Nn = Target.Value
    Vn = Target.Offset(0, 1).Value
    BlaNa = Nn & "_" & Vn
    vorh = False
    For i = 1 To Worksheets.Count
      If Worksheets(i).Name = BlaNa Then
        Sheets(BlaNa).Select
        vorh = True
        Exit For
      End If
    Next i
    If vorh = False Then
      Sheets("Tabelle2").Copy After:=Sheets(Sheets.Count)
      ActiveSheet.Name = BlaNa
      ActiveSheet.Range("C6").Value = Nn
      ActiveSheet.Range("C7").Value = Vn
    End If
End Sub

Viel Erfolg wünscht
WernerB.
nach oben   nach unten

Re: Tabellenblätter anlegen
von: Basti
Geschrieben am: 19.05.2002 - 20:23:50

Hallo Werner,

vielen Dank für die schnelle Antwort. Klappt alles so, wie gewollt. Einfach super !!!

Eine Zusatz-Frage, ohne undankbar sein zu wollen, gibt es auch eine Möglichkeit die Tabellenblätter alphabetisch zu ordnen?
Es muß zwar nicht sein, aber interessieren würde es mich schon.

Dir und Deiner Familie noch ein schönes Pfingsfest.

Gruß Basti


nach oben   nach unten

Re: Tabellenblätter anlegen
von: WernerB.
Geschrieben am: 19.05.2002 - 20:35:43

Hallo Basti,

die Möglichkeit gibt es wohl, z.B. so:


Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim BlaNa As String, Nn As String, Vn As String
Dim As Integer, j As Integer
Dim vorh As Boolean
    If Target.Row < 3 Or Target.Column <> 2 Then Exit Sub
    If IsEmpty(Target) Then Exit Sub
    Nn = Target.Value
    Vn = Target.Offset(0, 1).Value
    BlaNa = Nn & "_" & Vn
    vorh = False
    For i = 1 To Worksheets.Count
      If Worksheets(i).Name = BlaNa Then
        Sheets(BlaNa).Select
        vorh = True
        Exit For
      End If
    Next i
    If vorh = False Then
      Sheets("Tabelle2").Copy After:=Sheets(Sheets.Count)
      ActiveSheet.Name = BlaNa
      ActiveSheet.Range("C6").Value = Nn
      ActiveSheet.Range("C7").Value = Vn
    End If
    For i = 1 To Sheets.Count
        For j = i To Sheets.Count
            If Worksheets(j).Name < Worksheets(i).Name Then
                Worksheets(j).Move Before:=Worksheets(i)
            End If
        Next j
    Next i
End Sub

Viel Erfolg wünscht
WernerB.
nach oben   nach unten

Re: Tabellenblätter anlegen
von: Basti
Geschrieben am: 19.05.2002 - 21:31:41

Hallo Werner,

klappt ebenfalls prima. Nochmals besten Dank. Da Tabelle1(Personen) und Tabelle2 (Formular)als erste stehen sollen habe ich die Zeile in "For i = 3 To Sheets.Count" angepasst.

Es ist toll, daß Du hilfst ... und das am Feiertag!!!

Beste Grüße und Wünsche

Basti


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Tabellenblätter anlegen"