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

Blätter als Excel-Objekte ansprechen

Blätter als Excel-Objekte ansprechen
05.02.2007 12:42:16
Stefan
Hallo Ex(cel)perten,
ich habe nun doch endlich mitbekommen, dass ich Arbeitsblätter nicht nur über
Worksheet("Blattname").Select ansprechen kann, sondern auch direkt über den Codenamen Codename.Select Das hat den Vorteil, dass eine Umbenennung des Reiters durch den Anwender nicht stört.
Allerdings weiss ich nicht, das Problem eines gelöschten Blattes umgehen kann, weil schon beim Starten des Scriptes sagt: "Variable nicht definiert."
Hat jemand eine Lösung?

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

Betreff
Datum
Anwender
Anzeige
AW: Blätter als Excel-Objekte ansprechen
05.02.2007 12:47:20
Rudi
Hallo,
schau mal nach On Error
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Blätter als Excel-Objekte ansprechen
05.02.2007 13:23:11
Stefan
Hallo Rudi,
on Error steuert die Fehlerbehandlung bei laufender Prozedur.
Mein Fehler tritt schon bei der Kompilierung auf( gelber Balken bleibt auf "Sub Test" - zeile stehen. Nicht einmal der erste Befehl wird ausgeführt.)
Gruß Stefan.
AW: Blätter als Excel-Objekte ansprechen
05.02.2007 14:02:17
Rudi
Hallo,
eine Möglichkeit:

Sub tt()
Dim wks As Worksheet, mySheet As Worksheet, strCODENAME As String
strCODENAME = "tb2"
For Each wks In Worksheets
If wks.CodeName = strCODENAME Then Set mySheet = wks
Next
If mySheet Is Nothing Then
MsgBox strCODENAME & " gibbet nich."
Else
'Code
End If
End Sub

Oder als sehr schlechte Lösung: Option Explicit weglassen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Anzeige
AW: Blätter als Excel-Objekte ansprechen
05.02.2007 14:05:35
Stefan
Danke! Das klingt gut.
Stefan.
AW: Blätter als Excel-Objekte ansprechen
05.02.2007 18:50:14
firmus
Hi Stefan,
spricht etwas gegen eine Verarbeitung per Index?
Extrakt aus laufendem Makro:
For i = 2 To ActiveWorkbook.Sheets.Count 'name + maxzeil + maxspalt setzen
Sheets(i).Activate
Range("a1:ax1").Select
Selection.Copy
maxzeil = ActiveSheet.UsedRange.Rows.Count
maxspalt = ActiveSheet.UsedRange.Columns.Count
Sheets("counter").Select
ActiveCell.Value = i - 1
ActiveCell.Offset(0, 1).Value = Sheets(i).Name
ActiveCell.Offset(0, 2).Value = maxzeil
ActiveCell.Offset(0, 3).Value = maxspalt
ActiveCell.Offset(1, 0).Select
Next i
Gruß Firmus
Anzeige
AW: Blätter als Excel-Objekte ansprechen
06.02.2007 08:13:48
Stefan
Hallo Firmus,
erst einmal vielen Dank!
Ich habe in jeder Datei ein Blatt "Startseite", Codename "Allg01".
Dieses Blatt soll beim Öffnen der Arbeitsmappe aktiviert werden und in die Zelle A1 etwas hineingeschrieben werden.
Meine alte Variante:
For I=1 to Thisworkbook.Worksheets.Count
if Worksheets(I).Name="Startseite") then
Worksheets(I).Select
Cells(1)="Text"
End if
Next I
Nachteil: Beim Umbenennen der Startseite passiert nichts, Langer Code
Mit dem Objekt dachte ich so
With Allg01
.select
.cells(1)="Text"
End With
Vorteil: Auch eine umbenannte Startseite wird erkannt, kurzer Code.
Nachteil: Wenn die Startseite gelöscht wurde, startet das Makro gar nicht erst. "Variable unbekannt".
Gruß Stefan.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige