Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
488to492
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
488to492
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Neues Sheet erstellen

Neues Sheet erstellen
23.09.2004 18:57:36
Barbara
Hallo,
bitte mir kurz auf die Sprünge zu helfen.
Keine schwere Sache.
Wie kann man ein neues Blatt mit der Bezeichnung "Profil" erstellen, falls es noch nicht existiert?
Gibt es da eine einfache Lösung?
Dann muss ich im Verlauf des Programms vom ersten Blatt, das eine beliebige Bezeichnung hat, und dessen Nummer auch beliebig sein kann, immer wieder was zu "Profil" kopieren. Daher setze ich dann a = Worksheets("Profil"), und verwende dann immer a.Cells(3,5) = Cells(1,2) , wenn ich von B1 zu C5 in "Profil" kopieen will.
Is das OK so?
Danke, Barbara

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

Betreff
Datum
Anwender
Anzeige
Neues Sheet erstellen
23.09.2004 19:02:34
GraFri
Hallo


Sub Tabellenblatt_neu()
Dim tName As String
tName = "Profil"
For n = 1 To Worksheets.Count
    If Sheets(n).Name = tName Then Exit Sub
Next n
Worksheets.Add.Move before:=Worksheets(1)
ActiveSheet.Name = tName
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Mit freundlichen Grüßen, GraFri
Anzeige
Neues Sheet erstellen - verbessert
23.09.2004 19:10:02
GraFri
Hallo


Sub Tabellenblatt_neu()
Dim tName As String
Dim a     As Worksheet
tName = "Profil"
For n = 1 To Worksheets.Count
  If Sheets(n).Name = tName Then GoTo SprungMarke
Next n
Worksheets.Add.Move after:=Worksheets(1)
ActiveSheet.Name = tName
SprungMarke:
Set a = Worksheets("Profil")
With Sheets(1)
   a.Cells(3, 5) = .Cells(1, 2)
  'usw usw
End With
End Sub

Code eingefügt mit Syntaxhighlighter 2.5




Mit freundlichen Grüßen, GraFri
Anzeige
AW: Neues Sheet erstellen - verbessert
23.09.2004 19:46:47
Barbara
Danke, das geht gut.
Auch die anderen Beiträge.
Aber geht das nicht besser mit Worksheets(N).Find("Profil") oder so ähnlich?
Denn da wird in einer einzigen Zeile nach allen Blättern gesucht.
Ich glaube, mal irgend wo was in dieser Art gelesen zu haben.
Aber ich krieg das nicht so hin.
Und noch was?
Ich will eien Objektvariable festlegen.
Folgenden Zeile geht nicht:
Set S = Worksheets("Profil")
Und wie sieht das mit dem aktuellen Worksheet aus?
Danke,
LG, Barbara.
AW: Neues Sheet erstellen - verbessert
23.09.2004 20:19:24
Barbara
Also, ich hab es gefunden, allerdings wird das nicht auf Worksheets angewendet, sondern auf Range:
Wert1 = Range("B1:D5").Find("Summe:").Value
MsgBox Wert1
Da wird jedes Element des ranges durchsucht. Und so dachte ich, dass man auch so jedes tabellenblatt durchsuchen kann.
Aber es gelingt mir nicht.
Immerhin, Eure Schleifenlösungen habe ich gleich verarbeitet.
Und zu meinem Zweiten Punkt:
Set S = Worksheets("Profil") geht nicht?
Geht doch! man muss nur richig dimensionieren (Dim S As Worksheet)
Selber schuld.
LG,
Barbara
Anzeige
AW: Neues Sheet erstellen
23.09.2004 19:16:32
Reinhard
Hi Barbara,

Sub barbara()
Dim vorh As Boolean
Dim ws As Worksheet
dieses = ActiveSheet.Name
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Profil" Then vorh = True
Next ws
If vorh = False Then
Worksheets.Add after:=ThisWorkbook.Worksheets(Worksheets.Count)
ActiveSheet.Name = "Profil"
End If
Worksheets(dieses).Activate
End Sub


Sub kopieren()
Set wsQuelle = Worksheets("Tabelle1")
Set wsZiel = Worksheets("Profil")
With wsZiel
wsQuelle.Range("A1:A5").Copy Destination:=.Range("A1")
End With
Set wsQuelle = Nothing
Set wsZiel = Nothing
End Sub

Gruß
Reinhard
Anzeige
AW: Neues Sheet erstellen
23.09.2004 19:22:18
FP
Hi Barbara,
ich würde das so machen:
Sub NeuesBlatt(strName As String)
Dim ws As Worksheet
If Not BlattDa(strName) Then
Set ws = ActiveWorkbook.Sheets.Add
ws.Name = strName
End If
End Sub

Private Function BlattDa(strName As String) As Boolean
On Error Resume Next
Sheets(strName).Activate
If ActiveSheet.Name = strName Then BlattDa = True
End Function

Servus aus dem Salzkammergut
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige