Zellensprung
#1
Hallo, und zwar wollte ich ein Makro schreiben das automatisch in verschiedene Zellen springt, wenn ich per Dropdown einen Monat auswähle. 

das Makro schaut so aus. 
Code:
    If Sheets(6).Range("D2").Value = Januar Then
    Application.Goto reference:=Worksheets(4).Range("F1"), Scroll:=True
    End If

    If Sheets(6).Range("D2").Value = Februar Then
    Application.Goto reference:=Worksheets(4).Range("AL1"), Scroll:=True
    End If


    If Sheets(6).Range("D2").Value = März Then
    Application.Goto reference:=Worksheets(4).Range("BO1"), Scroll:=True
    End If
   
   
    If Sheets(6).Range("D2").Value = April Then
    Application.Goto reference:=Worksheets(4).Range("CU1"), Scroll:=True
    End If
   
   
    If Sheets(6).Range("D2").Value = Mai Then
    Application.Goto reference:=Worksheets(4).Range("DZ1"), Scroll:=True
    End If

   

End Sub

Jetzt springt das Makro aber immer in die letzte Zelle DZ1 egal was ich beim Dropdown auswähle. 

Wo liegt denn da mein Fehler?  Huh

Beste Grüße 

Chief
Antworten Top
#2
Hallo,

versuche es mal damit. Das Makro gehört in das Modul vom Tabellenblatt.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Range("D2")
        Case "Januar"
            Range("F1").Select
        Case "Februar"
            Range("AL1").Select
        Case "März"
            Range("BO1").Select
        Case "April"
            Range("CU1").Select
        Case "Mai"
            Range("DZ1").Select
    End Select
End Sub
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo,

du vergleichst die Zelle D2 von Arbeitsblatt Nr.6 mit den Konstanten/Variablen "Januar", "Februar", "März", ...
Sind die Werte dieser Konstanten/Variablen irgendwo festgelegt worden, bevor du sie hier an der Makrostelle verwendest?
Denn wenn du sie vorher nicht irgendwo festgelegt hast, haben diese Konstanten/Variablen alle den Wert 0 bzw. den Variant-Wert Empty.

Da du wahrscheinlich am Anfang des Moduls auch kein "Option Explicit" stehen haben wirst, zeigt dir der VBA-Compiler auch keine Fehlermeldung an.
Mit lieben Grüßen
Anton.

Windows 10 64bit
Office365 32bit
Antworten Top
#4
Also im Namensmanager, sind die Monate eigentlich per Liste mit =Monate definiert. 
Falls du das meintest. 

Und ja das "Option Explicit" habe ich nicht im Makro stehen.

(22.11.2021, 10:22)Klaus-Dieter schrieb: Hallo,

versuche es mal damit. Das Makro gehört in das Modul vom Tabellenblatt.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Range("D2")
        Case "Januar"
            Range("F1").Select
        Case "Februar"
            Range("AL1").Select
        Case "März"
            Range("BO1").Select
        Case "April"
            Range("CU1").Select
        Case "Mai"
            Range("DZ1").Select
    End Select
End Sub

Ah perfekt, funktioniert fast wie gewollt, wenn ich jetzt noch will, das er an den Anfang der Tabelle scrollt reicht da ein "Scroll:= True" hinter dem select?
Antworten Top
#5
Hallo,

nein, es gehört in das Modul des Tabellenblattes, auf dem sich die Auswahl befindet.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#6
Ah perfekt, funktioniert fast wie gewollt, wenn ich jetzt noch will, das er an den Anfang der Tabelle scrollt reicht da ein "Scroll:= True" hinter dem select?
Antworten Top
#7
Hallo,

das habe ich nicht verstanden.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#8
(22.11.2021, 10:45)Klaus-Dieter schrieb: Hallo,

das habe ich nicht verstanden.

Naja. wenn ich jetzt den Monat Februar auswähle, springt er zwar auf die gewünschte Zelle "AL1", diese befindet sich aber in der Mitte des Tabellenblatts. 

Und meine Frage war, ob es möglich ist, dass er mir die gewünschte Zelle am Anfang der Tabelle anzeigt. 

Zur Verdeutlichung, ich wähle Februar aus & sehe die Spalten "V - BA" - ich will aber die Spalten "AL - BM", da AL der 1. Februar ist.
Antworten Top
#9
Hallo,

wozu soll das gut sein? Die selektierte Zelle wird in die Mitte gerückt, wie weit nach rechts gerollt werden soll, ist abhängig von der jeweiligen Bildschirmgröße und Auflösung.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#10
Hallo, 19 

schreibe statt...

Code:
Range("F1").Select

... sowas:

Code:
Application.Goto Range("F1"), True
Antworten Top


Gehe zu:


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