Zu einem Datum in einem Tabellenblatt springen, dass weiter oben in eine Zelle eingegeben wird.
Hallo,
ich bearbeite gerade einen einfachen Kalender, bei dem in der Spalte A die Daten vom 1.1. - 31.12.2008 aufgelistet sind.
Ist es möglich dass z. B. in die Zelle B2 ein Datum eingegeben werden kann und der Curser springt dann zu dem entsprechenden Datum in der A-Spalte?
Antwort schreiben
Antwort 1 von Saarbauer vom 05.03.2020, 16:44 Options
Hallo,
Geht zwar mit diesem Makro, abe4r es entspricht whrscheinlich nicht ganz deinen Vorstellungen
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Datum = Range("b1").Value
Zeile = Datum - Range("A1").Value + 1
Range("a" & Zeile).Select
End Sub
Gruß
Helmut
Antwort 2 von Pede87 vom 05.03.2020, 16:48 Options
Hallo,
Also wie ich es verstehe sind die Tage von oben nach unten in "Spalte A" aufgelistet ???
wenn ja dann markierst du die Spalte "A" und drückst dann auf Strg+F und gibst einfach das Datum ein....
und dann sucht er dir das richtige datum raus
Antwort 3 von xSarahx vom 05.03.2020, 18:22 Options
Hallo Helmut,
danke für die schnelle Antwort.
Leider kommt bei mir eine Fehlermeldung wenn ich den Code eingebe.
Woran könnte das liegen?
Gruß Sarah
Antwort 4 von Saarbauer vom 05.03.2020, 18:50 Options
Hallo,
Kopiere den Code unter Arbeitsmappe in deiner Datei ab und versuch es damit nochmal.
Sondt wären Angaben zur Meldung sinnvoll
Gruß
Helmut
Ich hätte da noch eine alternative Idee. Sie würde allerdings dazu führen, dass nicht das Datum selbst angesprungen wird, sondern das Feld rechts daneben. Ausserdem müsste das Datum im Format "_" plus Datum eingegeben werden:
1. Die Spalten A und B über den gesamten Kalender markieren
2. Einfügen - Namen - Erstellen - Aus linker Spalte - OK
3. Jetzt erhalten alle markierten Zeilen den Namen
"_" plus (Datum in der ersten Spalte wie formatiert)
[Das Datum kann hinterher umformatiert werden]
4. Um eine Zeile (ein Datum) anzuspringen, gibt man in das NAMENSFELD ganz
links oben ein "_" plus (Datum ...), also beispielsweise _10.07.2008
Antwort 6 von finger59 vom 05.03.2020, 18:51 Options
Hi Sarah,
ich habe mal das Makro von dem Helmut nachvollzogen und bei mir funktioniert es auch. Allerdings musste ich ein wenig tricksen. Ich verwende die Version Excel 2003. Evtl. liegt es daran.
Diese Vorgabe gab es bei mir so nicht, als ich das Makro in meine Arbeitsmappe einfügen wollte.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Bei mir stand da nur drin:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Diesen "Satz" habe ich dann ungültig gemacht und den von dem Helmut stehen lassen.
Wichtig... der Code gehört in diese Arbeitsmappe und nicht in das Tabellenblatt!
Ich hoffe das ich Dir auch ein klein wenig helfen konnte...
In diesem Sinne... have a nice Day... Gruß Helmut
Antwort 7 von gast123 vom 05.03.2020, 18:59 Options
hi all
ein beispiel
gruss gast123
einzufuegen
alt+f11/projektexplorer/DeineTabelle
Private Sub Worksheet_Change(ByVal Target As Range)
Dim suche As Range
Set suche = Workbooks(1).Worksheets(1).Range("A2:A" & Rows.Count).Find(Workbooks(1).Worksheets(1).Range("B1").Value)
If Not suche Is Nothing Then
Workbooks(1).Worksheets(1).Cells(suche.Row, 1).Activate
End If
End Sub
Antwort 8 von xSarahx vom 05.03.2020, 19:04 Options
Wenn ich den Code eingebe kommt Laufzeitfehler 13: Typen unverträglich.
Ich kenn mich mit VBA leider so gut wie gar nicht aus und hab keine Ahnung was ich ändern muss.
Danke für eure Antworten!
Antwort 9 von gast123 vom 05.03.2020, 19:09 Options
hi all
getestet mit formatierten zellen als datum unter excel 2000
excel7 vielleicht ausgeschlossen
gruss gast123
Antwort 10 von xSarahx vom 05.03.2020, 19:12 Options
Hi,
ich hab auch Excel 2000.
Formatiert mit TT.MM.JJJJ
Gruß Sarah
Antwort 11 von gast123 vom 05.03.2020, 19:24 Options
hi sarah
wenn du moechtest schick ich dir eine beispieldatei
wenn ja gib deine email an
gruss gast123
Antwort 12 von xSarahx vom 05.03.2020, 19:24 Options
Hi ihr,
ich hab nochmal ein wenig mit dem Code von Helmut herumprobiert.
Nun kam dieser Laufzeitfehler:
1004: Die Methode Range für das Objekt _Global ist fehlgeschlagen.
Wisst ihr was ich da machen kann?
Grüße Sarah
Antwort 13 von xSarahx vom 05.03.2020, 19:29 Options
Hi gast123,
hier meine mail-adresse:
sarah.amelie@yahoo.de
Gruß Sarah
Antwort 14 von gast123 vom 05.03.2020, 19:30 Options
hi all
hinweis fuer helmut
ein datum als zeilenangabe geht wohl eher nicht
warum workbook angaben wenn worksheet gefordert ist
warum sind die variablen nicht deklariert
gruss gast123
Antwort 15 von gast123 vom 05.03.2020, 19:34 Options
hi sarah
ist abgeschickt 19 uhr 33
gruss gast123
Antwort 16 von Saarbauer vom 05.03.2020, 19:50 Options
Hallo @gast,
danke für den Hinweis, aber auf die schnelle fertiggemacht und hier eingestellt und bei mir hat das Makro funktioniert. Da die Angaben von @xSarahx etwas ungenau sind hatte ich bereits mit Änderungen gerechnet.
Zu deiner Anmerkung
Zitat:
ein datum als zeilenangabe geht wohl eher nicht
Geht schon, teste es mal.
Datum = Range("b1").Value
Gruß
Helmut
Antwort 17 von xSarahx vom 05.03.2020, 20:35 Options
Vielen Dank gast123,
jetzt hats endlich geklappt. *freu*
Schönen Abend noch, ciao.