Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert in anderem TAB.Blatt per Vba ändern

Forumthread: Wert in anderem TAB.Blatt per Vba ändern

Wert in anderem TAB.Blatt per Vba ändern
udo
Hallo Forumsformateure und Formateurinnen ;-)
bräuchte bitte kurz eure Hilfe bei folgendem Problemchen.
Habe folgende Anweisung in einem Tabellenblatt Namens " Kalender " auf
zwei Buttons verankert / gesetzt :
Sub Jahr_Plus()
'Application.ScreenUpdating = False
With Sheets("Kalender")
[AG4] = [AG4].Value + 1
[AG1].Select
End With
'Application.ScreenUpdating = true
End Sub
( 2. Anweisung genau gleich ... eben nur mit Value - 1 )
In ( Kalender AG4 ) steht die Jahreszahl XXXX
Ich würde gerne in meinen 12 anderen Tabellenblättern je auch 2 Buttons haben, belegt mit dem gleichen Makro und quasi von dort aus ( JAN - DEZ heissen diese TabB. ) dann den Wert im Tabellenblatt ( Kalender ) , dort AG4 dann entsprechend auf oder abwerten - ohne das Excel zum Tabellenblatt Kalender hin wechselt / springt ... sondern beispielsweise in FEB bleibt beim Auslösen des Makros.
Wie müsste den dann die Anweisung lauten ? bzw. was müsste ich an meiner dazu verändern ?
Wer toll wenn ihr mir hierbei helfen könntet
Besten dank und lieben Gruß an alle Helfer
udo
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wert in anderem TAB.Blatt per Vba ändern
10.11.2011 11:40:32
Beverly
Hi Udo,
Sub Jahr_Plus()
With Sheets("Kalender")
.[A4] = .[A4].Value + 1
End With
End Sub



hmm hmm - quasi 's I Tüpfelchen von allem ...
10.11.2011 11:44:17
allem
;-)
Dank dir Karin , bischn Schatz ... fühl dich geknuddelt
lieben Gruß
udo
Anzeige
AW: Wert in anderem TAB.Blatt per Vba ändern
10.11.2011 11:43:50
ing.grohn
Hallo Udo
versuch mal folgendes:

Sub Jahr_Plus()
'Application.ScreenUpdating = False
With Sheets("Kalender")
Sheets("Feb").Range("A1") = .Range("AG1").Value + 1
End With
'Application.ScreenUpdating = true
End Sub

oder

Sub Jahr_Plus()
Dim ws as Sheets
set ws=Sheets("Feb")
'Application.ScreenUpdating = False
With Sheets("Kalender")
ws.Range("A1") = .Range("AG1").Value + 1
End With
'Application.ScreenUpdating = true
End Sub

Auf "Select" kann meistens verzichten
Mit freundlichen Grüßen
Albrecht
Anzeige
lieben Dank auch an Dich ...
10.11.2011 13:20:55
udo
... Albrecht, hatte vorhin jedoch gleich Karin's Ansatz verwendet, mit den Pünktchen vor der Zellangabe ...
Danke Dir aber auch, vor allem weil deine Lösung wieder einen weiteren Ansatz aufweist.
LG udo
;
Anzeige
Anzeige

Infobox / Tutorial

Wert in anderem TAB.Blatt per VBA ändern


Schritt-für-Schritt-Anleitung

Um den Wert in einem anderen Tabellenblatt per VBA zu ändern, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  3. Kopiere den folgenden Code in das Modul:

    Sub Jahr_Plus()
        With Sheets("Kalender")
            .Range("AG4") = .Range("AG4").Value + 1
        End With
    End Sub
  4. Füge den Code in die anderen Tabellenblätter ein, indem du den Namen des Tabellenblatts anpasst (z.B. "Feb", "März", etc.):

    Sub Jahr_Plus()
        With Sheets("Kalender")
            Sheets("Feb").Range("A1") = .Range("AG4").Value + 1
        End With
    End Sub
  5. Erstelle Buttons in den jeweiligen Tabellenblättern, die diesen Makro ausführen.


Häufige Fehler und Lösungen

  1. Fehler: "Objektvariable nicht gesetzt"

    • Lösung: Überprüfe, ob der Name des Tabellenblatts korrekt ist. Achte auf Schreibfehler.
  2. Fehler: "Anwendungs- oder Objektfehler"

    • Lösung: Stelle sicher, dass das Arbeitsblatt "Kalender" existiert und korrekt benannt ist.

Alternative Methoden

Eine alternative Methode besteht darin, die Application.ScreenUpdating-Eigenschaft zu verwenden, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit verbessern:

Sub Jahr_Plus()
    Application.ScreenUpdating = False
    With Sheets("Kalender")
        Sheets("Feb").Range("A1") = .Range("AG4").Value + 1
    End With
    Application.ScreenUpdating = True
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung des Makros:

  1. Jahr erhöhen:

    • Wenn der Wert in AG4 auf 2023 gesetzt ist, wird nach der Ausführung des Makros der Wert auf 2024 erhöht.
  2. Jahr verringern:

    • Um das Jahr zu verringern, kannst du den Code einfach anpassen:
    Sub Jahr_Minus()
        With Sheets("Kalender")
            Sheets("Feb").Range("A1") = .Range("AG4").Value - 1
        End With
    End Sub

Tipps für Profis

  • Nutze Dim zur Deklaration von Variablen für mehr Übersichtlichkeit.
  • Vermeide die Verwendung von .Select und .Activate, um die Ausführung des Codes zu beschleunigen.
  • Erwäge die Verwendung von Fehlerbehandlungsroutinen, um unerwartete Probleme während der Ausführung zu handhaben.

FAQ: Häufige Fragen

1. Wie kann ich den Wert in mehreren Tabellenblättern gleichzeitig ändern?
Du kannst eine Schleife verwenden, um durch alle gewünschten Tabellenblätter zu iterieren und den Wert entsprechend zu ändern.

2. Was passiert, wenn das Tabellenblatt "Kalender" nicht existiert?
Das Makro wird einen Laufzeitfehler auslösen. Stelle sicher, dass das Tabellenblatt vorhanden ist oder implementiere eine Fehlerbehandlung.

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