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

Code Worksheet_Change autom. in neues WS einfügen

Code Worksheet_Change autom. in neues WS einfügen
23.01.2007 13:51:12
Peter
Guten Tag
Von http://www.kmbuss.de/Excel-CD/vba-codes.htm#5 habe ich folgenden Code übernommen:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("a1")) Is Nothing Then
Range("a2").Select
End If
If Target = Range("A1") Then ActiveSheet.Name = Target
End Sub

Diesen Code habe ich in jedes Arbeitsblatt eines Workbooks kopiert, so dass nun automatisch der Blattname immer aus der Zelle A1 übernommen wird (falls ein Eintrag vorhanden).
Nun möchte ich sicherstellen, dass die auch passiert, wenn eine neue Tabelle eingefügt wird.
Ist dies machbar und wenn ja, wie?
Danke für ein gelegentliches Feedback.
Gruss, Peter

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

Betreff
Datum
Anwender
Anzeige
AW: Code Worksheet_Change autom. in neues WS einfügen
23.01.2007 14:15:56
Rudi
Hallo,
das brauchst du nicht für jedes Sheet zu schreiben. Dafür gibt es das Ereignis Workbook_sheetchange.
In DieseArbeitsmappe:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
If Target <> "" Then Sh.Name = Target.Value
End If
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Code Worksheet_Change autom. in neues WS einfügen
23.01.2007 14:19:30
Nepumuk
Hallo Peter,
1. Ändere den Code. Die ersten drei Zeilen sind Unsinn. (Wenn eine Änderung in A1 erfolgt, dann springe nach A2) ? Wozu ?
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target = Cells(1, 1) Then ActiveSheet.Name = Target.Text
End Sub

2. Schreibe diesen Code in ein Standardmodul (Menüleiste - Einfügen - Modul)
3. In das Modul "DieseArbeitsmappe" kommt folgender Code:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
    If TypeOf Sh Is Worksheet Then
        With ThisWorkbook.VBProject.VBComponents(Sh.CodeName).CodeModule
            .DeleteLines 1, .CountOfLines
            .InsertLines 1, ThisWorkbook.VBProject.VBComponents("Modul1").CodeModule.Lines( _
                1, ThisWorkbook.VBProject.VBComponents("Modul1").CodeModule.CountOfLines)
        End With
    End If
End Sub

In dem Beispiel hat das Modul, in welchem sich der Code zum kopieren in die neuen Tabellen steht, den Namen "Modul1". Den musst du gegebenenfalls noch anpassen. In dem Modul mit dem Tabellencode darf nur der Code der Tabelle stehen, kein anderer.
Gruß
Nepumuk
Anzeige
AW: Code Worksheet_Change autom. in neues WS einfügen
23.01.2007 14:35:03
Peter
Hallo Nepumuk
Das klappt prima - vielen Dank!
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige