Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Sheet aktivieren
#1
Hallo, 
ich habe eine Frage zu einem VBA-Code. Dieser soll jedes mal wenn man das Sheet "Blatt 1" verlässt aus einem anderen Sheet "Blatt 2" bestimmte Daten abgreifen.

Ursprünglich hab ich diese Funktion beim schließen der Datei ausführen lassen, da hat es auch funktioniert nur beim wechseln der Sheets scheint es Probleme zu geben.

Code steht in Blatt 1.

Code:
Private Sub Worksheet_Deactivate()
'1) Retrive log data:

           Application.ScreenUpdating = False
           Worksheets("Blatt 2").Activate

           
           Set n = Sheets("Blatt 2").Range("A" & Sheets("Blatt 2").Cells(Rows.Count, 1).End(xlUp).Row)
           If Range("A3").Value <> n.Value Or Range("B3").Value <> n.Value Or Range("C3").Value <> n.Value Or Range("D3").Value <> n.Value Or Range("E3").Value <> n.Value Or Range("F3").Value <> n.Value Then

               n.Offset(1) = Range("A3").Value
               n.Offset(1, 1) = Range("B3").Value
               n.Offset(1, 2) = Range("C3").Value
               n.Offset(1, 3) = Range("D3").Value
               n.Offset(1, 4) = Range("E3").Value
               n.Offset(1, 5) = Range("F3").Value

            End If
            Application.ScreenUpdating = True
End Sub

Was momentan funktioniert: Der Code greift zwar Daten aus den richtigen Zellen ab, aber nur aus dem Sheet "Blatt 1", er scheint nicht auf das benötigte "Blatt 2" zu wechseln.

Hat jemand eine Idee woran das liegen könnte?
Danke und Gruß.
Antworten Top
#2
Hallo,

Code:
            n.Offset(1) = Range("A3").Value

das Range bezieht sich auf das Blatt in dem der Code steht und das scheint bei dir das Blatt1 zu sein. Entweder

Code:
            n.Offset(1) = n.Range("A3").Value

oder

Code:
            n.Offset(1) = ActiveSheetRange("A3").Value

könnte das Problem lösen.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • diving_excel
Antworten Top
#3
Hallo,

warum willst du überhaupt Blatt2 aktivieren? Ich als Anwender wäre ein bisschen verärgert, wenn ich Blatt 3 öffnen will und auf Blatt 2 lande...
Viele Grüße,
Matthias

-------------------------------------------------------------------------------------------

Man muß nicht alles wissen, man muß nur wissen, wie man die Lösung findet.
Antworten Top
#4
Danke werde ich gleich mal versuchen.

In Blatt 1 wird ein Bericht eingeladen in dem Zahlen stehen. Dieser ist sehr umfangreich und muss noch verdichtet werden. Wenn sich die Zahlen im Bericht ändern soll "Blatt 2" aufgerufen werden und die "Datenbank" aktualisiert werden, da diese Datenbank ein paar Grafiken mit Zahlen füttert. 

Um sicher zu gehen dass die Grafiken immer die neusten Werte erhalten habe ich gedacht dass es Sinn macht die Werte immer dann zu aktualisieren wenn ein neuer Bericht eingeladen wird, was ja passiert wenn Blatt 1 ("Bericht") geöffnet und dann verlassen wird.

Werd am Ende vom Code noch sowas wie aktivieren des Start sheets oder so anfügen, dass man nicht in dieser Datenbank landet.

Ich weiß etwas umständlich, aber gut - arbeite erst seit kurzem mit VBA - man tut was man (nicht)kann :D
Antworten Top
#5
Hat funktioniert, danke für die Hilfe!

Gruß
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste