Office: Mit VBA auf Systemnamen der Tabellen zugreifen

Helfe beim Thema Mit VBA auf Systemnamen der Tabellen zugreifen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe einen Tipp hier im Forum bekommen, dass ich mich im VBA auf die Systemnamen der Tabellenblätter beziehen kann, damit ich die Blätter... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Rena1, 2. Oktober 2017.

  1. Mit VBA auf Systemnamen der Tabellen zugreifen


    Hallo,

    ich habe einen Tipp hier im Forum bekommen, dass ich mich im VBA auf die Systemnamen der Tabellenblätter beziehen kann, damit ich die Blätter umbenennen kann ohne das ich den Code ändern muss.

    http://www.ms-office-forum.net/forum...d.php?t=346251

    Leider ist das Thema etwas untergegangen, deshalb hier das Thema separat mit dem Verweis auf meinen alten Beitrag.

    Weiß jemand von euch wie das funktioniert und kann es mir erklären? Einfach den Systemnamen eingeben hat bei mir nicht geklappt. Was mache ich falsch ?

    Gruß Rena

    :)
     
  2. Beverly
    Beverly Erfahrener User
    Hi Rena,

    und was genau willst du machen - den Codenamen ändern oder den Tabellennamen?


    Mit VBA auf Systemnamen der Tabellen zugreifen grusz.gif
     
    Beverly, 4. Oktober 2017
    #2
  3. Das ist mein Code. Mir wurde empfohlen das Select weg zu lassen aber das habe ich nicht hinbekommen. So funktioniert es aber auch super!

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    With Target
    If .Value = "-" Then
    ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Select
    Sheets(Array("Firma 1", "Preisvergleich")).Select
    Selection.Delete
    ActiveCell.Select
    Sheets("Firma 1").Select
    Cancel = True
    End If

    End With
    End Sub

    Ich führe das ja in dem Tabellenblättern Firma 1 und Preisvergleich aus. Dies soll eine Vorlage werden. Geplant sind dann Firma 1, Firma 2, Firma 3, Firma 4 und Preisvergleich. Wenn man die Tabelle jetzt benutzt dann steht da aber nicht mehr Firma 1.... sondern die Namen der Firmen. Wenn ich die Namen da jetzt eintrage dann muss ich in den Code gehen und die Namen dort auch ändern. Dies möchte ich gerne umgehen.

    Gruß Rena
     
  4. Beverly
    Beverly Erfahrener User

    Mit VBA auf Systemnamen der Tabellen zugreifen

    Hi Rena,

    ich würde es so lösen:

    Code:
    Du musst die Tabellen also nicht erst selektieren sondern kannst jede Tabelle einzeln löschen - zuerst die Zeile in "Presivergleich", weil sonst Target.Row nicht mehr belegt ist und der Code zu einem Fehler führt. Mit Target beziehst du dich ja auf die aktive Tabelle, deshalb musst du den Tabellennamen gar nicht kennen.

    Aber generell kannst du mit ActiveSheet.Name auf den Namen der aktiven Tabelle zugreifen, ohne ihren Namen zu kennen - in deinem Code wäre das dann so:

    Code:
    Oder, da du ja das Doppelklick-Ereignis der Tabelle verwendest, kannst du auch Target.Parent.Name benutzen, also das dem Objekt Target übergordnete Objekt respektive die Tabelle in der sich das Target befindet.


    Mit VBA auf Systemnamen der Tabellen zugreifen grusz.gif
     
    Beverly, 4. Oktober 2017
    #4
  5. Hallo,
    es ist aber von mir schon gewollte dass die Zeilen in allen Tabellen gleichzeitig gelöscht werden und dafür muss ich doch auch alle Tabellen in VBA aufführen oder ?

    Also mein Code oben bewirkt ja das ich in Tabelle 1 auf ein - klicke und dann die gleiche Zeile auf allen Tabellenblättern gelöscht wird. Dies soll auch weiterhin so funktionieren nur das ich die Tabellenblätter umbenennen möchte ohne es im VBA ständig mit aktualisieren zu müssen.

    LG Rena
     
  6. Beverly
    Beverly Erfahrener User
    Hi Rena,

    es spielt doch absolut keine Rolle, ob du die Tabellen zuerst selektierst und die Zeilen in beiden zusammen löschst oder ob du sie nacheinander in jedem der beiden Tabellenblätter einzeln löschst: das Resultat ist letztendlich dasselbe - die betreffende Zeile ist in BEIDEN Tabellenblättern weg...

    Aber wenn du (unsinniger Weise) unbedingt selektieren willst - ich habe dir die Lösung doch gepostet, wie man auf das gerade aktive Tabellenblatt zugreifen kann ohne dessen Namen zu kennen und diesen im Code immer ändern zu müssen.

    Übrigens klickst du nicht auf die Zelle mit dem "-" sondern machst einen Doppelklick darauf - das ist nicht dasselbe *wink.gif*


    Mit VBA auf Systemnamen der Tabellen zugreifen grusz.gif
     
    Beverly, 4. Oktober 2017
    #6
  7. Mit VBA auf Systemnamen der Tabellen zugreifen

    Tut mir leid Beverly dann haben wir uns Missverstanden. Ich weiß das ich in jedes Blatt einzeln gehen kann um da die Zeilen zu löschen aber gerade das möchte ich verhindern. Ich erstelle eine Datei die auch von anderen genutzt werden soll. Die ersten Tabellenblätter, bis auf den Preisvergleich, müssen zu jeder Zeit exakt identisch sein bis auf die eingetragenen Preise. Um Fehler zu vermeiden möchte ich, dass man nur das erste bearbeiten kann und die andern automatisch mit geändert werden.

    Mit dem Code den du gepostet hat löscht sich, zumindest als ich es getestet habe, immer nur die Zeile in dem aktuellen Arbeitsblatt.

    Ich weiß leider nicht wie ich besser erklären kann was ich meine. Tut mir leid.

    Gruß Rena
     
  8. Hallo Storax,

    der zweite Link ist genau das was ich gesucht habe. Vielen dank.

    Jetzt stehe ich noch vor einer Hürde. In dem Beispiel auf der Seite wird immer mit einem Tabellenblatt gearbeitet. Ich spreche ja immer gleich mehrere an.

    Mein Code würde als jetzt in der Theorie so aussehen:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    With Target
    If .Value = "-" Then
    ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Select
    Array(Tabelle1,Tabelle2).Select
    Selection.Delete
    ActiveCell.Select
    Tabelle1.Select
    Cancel = True
    End If

    End With
    End Sub

    Leider hat er jetzt ein Problem mit dem Array, also brauche ich einen anderen Befehl um mehrere Tabellenblätter anzusprechen.

    Jemand eine Idee ?
    Ich werde selber auch nochmal forschen.

    Gruß Rena
     
  9. Beverly
    Beverly Erfahrener User
    Hi Rena,

    Das stimmt nicht, denn die Zeile

    Code:
    löscht die betreffende Zeile im Tabellenblatt "Preisvergleich" und die Zeile

    Code:
    löscht die Zeile in dem Tabellenblatt in dem du den Doppelklick ausgeführt hast.

    Schau dir die angehängte Mappe an: Zeile 4 ist in "Tabelle1" und in "Preisvergleich" gelb formatiert und wenn du in Tabelle1 einen Doppelklick auf die Zelle C4 machst, sind die gelben Zeilen in BEIDEN Tabellenblättern weg.



    Mit VBA auf Systemnamen der Tabellen zugreifen grusz.gif
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Beverly, 4. Oktober 2017
    #10
  10. Tut mir Leid du hast Recht Beverly, dann hab ich beim ersten mal wohl was falsch gemacht.

    Mit den Beiden Tabellen klappt das jetzt super. Jetzt muss ich es nur noch hinbekommen dass ich im ersten Tabellenblatt klicke und er es auf Blatt 1 2 und 3 löscht. Mein Code sieht jetzt so aus:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    With Target
    If .Value = "-" Then
    Tabelle2.Rows(.Row).Delete
    .EntireRow.Delete
    Cancel = True
    End If
    End With

    End Sub

    Beverly hast du auch eine andere Lösung für das hinzufügen von Zeilen ? Bisher habe ich:

    With Target
    If .Value = "Ì" Then
    ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Select
    Sheets(Array("Firma 1", "Preisvergleich")).Select
    Selection.Copy
    Selection.Insert Shift:=xlDown
    Application.CutCopyMode = False
    ActiveCell.Select
    Sheets("Firma 1").Select

    End If

    End With

    Gruß Rena
     
  11. Beverly
    Beverly Erfahrener User
    Hi Rena,

    also sollen nicht nur 2 Tabellen sonderen mehrere bearbeitet werden (Löschen und Einfügen)? Liegen diese immer zwischen dem 1. Tabellenblatt (auf dem gearbeitet werden soll) und Tabelle "Preisvergleich"? Ist es immer dieselbe Anzahl an Tabellenblättern oder kann sich die Anzahl ändern?


    Mit VBA auf Systemnamen der Tabellen zugreifen grusz.gif
     
    Beverly, 4. Oktober 2017
    #12
  12. Mit VBA auf Systemnamen der Tabellen zugreifen

    Ja genau ich habe insgesamt dann 5 Blätter. Firma 1-4 und am Ende immer Preisvergleich, also als Codename Tabelle1 bis Tabelle5

    Das löschen habe ich schon hin bekommen:

    With Target
    If .Value = "-" Then
    Tabelle2.Rows(.Row).Delete
    Tabelle3.Rows(.Row).Delete
    Tabelle4.Rows(.Row).Delete
    Tabelle5.Rows(.Row).Delete
    .EntireRow.Delete
    Cancel = True
    End If
    End With


    Das mit dem Hinzufügen habe ich noch nicht geschafft. Gewollt ist, dass ich auf dem ersten Blatt auf ein + einen Doppelklick macht und er dann darunter eine Zeile einfügt, die den Inhalt der drüber liegenden Zeile hat, also die in der ich den Doppelklick gemacht habe. Dieser Vorgang soll auf allen 5 Tabellenblättern passieren, da alle identisch aufgebaut sind.

    Die Anzahl der Tabellen bleibt gleich nur der Namen der Blätter ändert sich, deswegen das mit den Codenamen!
     
  13. bis jetzt bin ich so weit

    With Target
    If .Value = "+" Then
    Tabelle2.Rows(.Row).Insert Shift:=xlDown
    Tabelle3.Rows(.Row).Insert Shift:=xlDown
    .EntireRow.Insert
    Cancel = True
    End If
    End With


    im Moment fügt er aber nur eine Zeile überall ein ohne die zu kopieren
     
  14. Jetzt fügt er auf alles Blättern neue Zeilen ein. Kopieren tut er aber aber nur die Zeilen auf Tabelle 2 und 3. Das er die Zeile auf dem ersten Blatt auch kopiert bekomme ich nicht hin.


    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    With Target
    If .Value = "+" Then
    Tabelle2.Rows(.Row).Copy
    Tabelle2.Rows(.Row).Insert Shift:=xlDown
    Tabelle3.Rows(.Row).Copy
    Tabelle3.Rows(.Row).Insert Shift:=xlDown
    .EntireRow.Insert

    Cancel = True
    End If
    End With
     
Thema:

Mit VBA auf Systemnamen der Tabellen zugreifen

Die Seite wird geladen...
  1. Mit VBA auf Systemnamen der Tabellen zugreifen - Similar Threads - VBA Systemnamen Tabellen

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden