Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellen mit unbekanntem Namen ansprechen

Forumthread: Tabellen mit unbekanntem Namen ansprechen

Tabellen mit unbekanntem Namen ansprechen
08.07.2003 10:32:35
Jörg
Hi NG!
Ich such 'ne Möglichkeit in einer Mappe Tabellen durch die Ausschlussmethode anzusprechen.
Ich muss in einer veröffentlichten Mappe mittels eines Patches verschiedene Formeln ändern.
so etwa
If IsNot Sheet.Name("A","B","C").activate
Danke
J
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellen mit unbekanntem Namen ansprechen
10.07.2003 00:36:41
Melanie
Hallo Jörg,
wenn die Blätter alle aus der selben Vorlage stammen,
kannst du doch über den Codenamen des Blattes an die Kopien kommen.
Jedes Blatt hat einen sichtbaren Registernamen und einen VBA-Codenamen.
Standardmäßig sind diese Identisch.
Man kann sie aber auch im Eigenschaftsfenster des Blattes ändern.
Wenn eine Kopie eines Blattes erzeugt wird, erhöht sie die nachstehende
Zahl des Codenamens jeweils um eine Zahl.
Du musst also nur nach dem Namen der Vorlage suchen.
In folgender Prozedur gehe ich davon aus, dass der Codename
deiner Vorlage "Vorlage" lautet.
Ersetzte diesen durch den tatsächlichen, z.B."Tabelle1"

Sub VorlagenKopienFinden()
Dim strVorlage As String
Dim intWs      As Integer
strVorlage = "Vorlage"
For intWs = 1 To Worksheets.Count
With Worksheets(intWs)
If .Name <> strVorlage Then
If Left(.CodeName, Len(strVorlage)) = strVorlage Then
MsgBox "Blatt '" & .Name & "' wurde aus Vorlag erstellt"
End If
End If
End With
Next intWs
End Sub

--
Mit freundlichen Grüßen
Melanie Breden
_____________________
[Microsoft MVP für Excel]

Anzeige
AW: Tabellen mit unbekanntem Namen ansprechen
08.07.2003 10:58:05
RAnton
Hallo Jörg,
verstehe zwar dein Problem nicht aber du kannst doch alle Namen durch die Anweisung
thisworkbook.worksheets(1).name
dir holen.
Mach dir ne loop drumrum und fertig
Gruß
RAnton

AW: Tabellen mit unbekanntem Namen ansprechen
08.07.2003 11:14:50
jörg
Hi RAnton!
In meiner Tabelle werden über Code mittels einer Vorlage vom Benutzer neue Tabellen angelegt und mit Namen versehen(über userform) Da ich aber nicht weiß, wie die user die Tabellennamen vergeben haben, der Fehler in den Formeln aber in der Vorlage liegt, breitet er sich über die Vorlage aus.
Ich möchte in einem Patch daher alle Tabellen, außer denen die nicht durch die Vorlage erstellt wuren, die Formeln in den entsprechenden Zellbeeichen ändern.
Vielleicht hilft die die beigelegte datei:
Über Schaltfl. "Lehrer erstellen" werden aus der ausgeblendeten Vorlage "Lehrer allgemein" die Tabelle erstellt. In dieser Vorlage "Lehrer allgemein" befindet sich der Fehler.
LG
Jörg

Anzeige
AW: Tabellen mit unbekanntem Namen ansprechen
08.07.2003 11:25:11
RAnton
Hallo Jörg,
leider ist keine Datei angehängt.
Aber versuch doch mal den Code

Sub test()
Dim ws As Worksheet
Dim s As Variant
Dim strWSListe(2) As String
strWSListe(0) = "Tabelle1"
strWSListe(1) = "Tabelle2"
strWSListe(2) = "Tabelle3"
For Each ws In ThisWorkbook.Worksheets
For Each s In strWSListe
If s = ws.Name Then
MsgBox ws.Name
End If
Next
Next
End Sub

Der müsste dich doch weiterbringen.
Gruß
RAnton

Anzeige
AW: Tabellen mit unbekanntem Namen ansprechen
08.07.2003 11:18:22
Jörg
Die datei heißt "lehrfächerverteilung leer".
LG jörg

AW: Tabellen mit unbekanntem Namen ansprechen
08.07.2003 11:33:02
RAnton
Hallo Jörg,
das nützt nichts, du must mir den Link geben.
Gruß
RAnton

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Tabellen mit unbekanntem Namen ansprechen


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf das Projektfenster und wähle Einfügen > Modul.
  3. Schreibe den VBA-Code:

    • Nutze den folgenden Code, um Tabellen mit unbekanntem Namen anzusprechen. Dieser sucht nach Arbeitsblättern, die von einer Vorlage erstellt wurden.
    Sub VorlagenKopienFinden()
       Dim strVorlage As String
       Dim intWs As Integer
       strVorlage = "Vorlage" ' Ersetze dies durch den tatsächlichen Codenamen
    
       For intWs = 1 To Worksheets.Count
           With Worksheets(intWs)
               If .Name <> strVorlage Then
                   If Left(.CodeName, Len(strVorlage)) = strVorlage Then
                       MsgBox "Blatt '" & .Name & "' wurde aus Vorlage erstellt"
                   End If
               End If
           End With
       Next intWs
    End Sub
  4. Führe den Code aus:

    • Drücke F5, um den Code auszuführen und die entsprechenden Blätter zu identifizieren.

Häufige Fehler und Lösungen

  • Fehler: "Blatt nicht gefunden"

    • Stelle sicher, dass der Codename der Vorlage korrekt ist. Überprüfe dies im Eigenschaftenfenster des Blattes.
  • Fehler: Der Code wird nicht ausgeführt

    • Vergewissere dich, dass du den Code im richtigen Modul eingefügt hast und dass du die richtigen Berechtigungen hast, um Makros auszuführen.

Alternative Methoden

  • Verwendung von Codenamen:

    • Anstatt die Namen der Blätter zu verwenden, kannst du direkt die Codenamen ansprechen. Beispiel:
    Sub CodenamenAnsprechen()
      Dim ws As Worksheet
      Set ws = ThisWorkbook.Vorlage ' Vorlage ist der Codename
      MsgBox ws.Name
    End Sub
  • Ansprechen von Tabellenblättern durch Indizes:

    • Du kannst auch Tabellenblätter über ihren Index ansprechen:
    MsgBox ThisWorkbook.Worksheets(1).Name

Praktische Beispiele

  • Ändern von Formeln in allen Tabellen:

    • Wenn du in allen Arbeitsblättern Formeln ändern möchtest, kannst du so vorgehen:
    Sub FormelnAendern()
      Dim ws As Worksheet
      For Each ws In ThisWorkbook.Worksheets
          If ws.Name <> "Vorlage" Then
              ws.Range("A1").Formula = "=SUM(B1:B10)" ' Beispiel-Formel
          End If
      Next ws
    End Sub

Tipps für Profis

  • Nutzung von Fehlerbehandlung:

    • Implementiere Fehlerbehandlungsroutinen, um das Skript robuster zu machen:
    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0
  • Namen in Variablen speichern:

    • Speichere häufig genutzte Namen in Variablen, um den Code lesbarer zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich ein Arbeitsblatt ansprechen, wenn ich den Namen nicht kenne? Du kannst den Codename des Arbeitsblattes verwenden oder eine Schleife durch alle Arbeitsblätter machen, um gezielt nach bestimmten Eigenschaften zu suchen.

2. Was ist der Unterschied zwischen Codename und Name eines Blattes? Der Codename ist der Name, den VBA intern verwendet, während der Name der sichtbare Name im Excel-Interface ist. Der Codename bleibt konstant, während der Name geändert werden kann.

3. Kann ich ein Tabellenblatt ansprechen, das versteckt ist? Ja, du kannst auch auf versteckte Blätter zugreifen, indem du deren Codename oder Index verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige