Microsoft Excel

Herbers Excel/VBA-Archiv

Umformeln eines Beitrags


Betrifft: Umformeln eines Beitrags
von: Stefanie
Geschrieben am: 28.11.2018 13:23:20

Hallo alle zusammen,

berverly scheint nicht mehr online zu sein und ich müsste dringend weitermachen an meiner Tabelle. Danke erstmal bis dahin noch für deine Bemühungen

Mit folgendem Code wird Reihe 2 nach dem Monatsanfang durchsucht, wenn in a1 januar februar usw. reingeschrieben wird.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngZelle As Range
    If Target.Cells(1).Address(False, False) = "A1" Then
        If Not IsDate(Target.Value) Then
            Set rngZelle = Rows(2).Find(DateValue("01." & Target.Value & ". " & Year(Date)),  _
LookIn:=xlValues)
            If Not rngZelle Is Nothing Then
                Application.Goto reference:=rngZelle.Offset(8, 0), scroll:=True
            End If
        Else
            Set rngZelle = Rows(2).Find(Target.Value, LookIn:=xlValues)
            If Not rngZelle Is Nothing Then
                Application.Goto reference:=rngZelle.Offset(8, 0), scroll:=True
            End If
        End If
    End If
End Sub


Bei mir kommt leider ein Fehler, weil meine Zellen in diesem Format TT.MM formatiert sind (12.10). Das Ergebnis kommt aus einer Formel 01.01.2018 + 1 fortlaufend für alle 365 Tage.

Kann mir jemand sagen, wie die Formel umgeschrieben werden muss, damit er bei mir richtig sucht und aufgrund der Formatierung nichts findet.

Set rngZelle = Rows(2).Find(DateValue("01." & Target.Value & ". " & Year(Date)), LookIn:=xlValues)

Denke dass man das hier ändern müsste, weiß nur leider nicht wie.

Danke für die Hilfe.

  

Betrifft: AW: Umformeln eines Beitrags
von: PeterK
Geschrieben am: 28.11.2018 13:40:11

Hallo

Das Problem ist nicht das Format, Du suchst nach "01.Januar.2018" (Text und kein Datum)


  

Betrifft: AW: Umformeln eines Beitrags
von: Stefanie
Geschrieben am: 28.11.2018 13:43:21

Aber wenn ich das Datum 01.01.2018 in der Reihe als Format einstelle, dann funktioniert es. Also muss es ja am Format liegen.


  

Betrifft: AW: Umformeln eines Beitrags
von: Stefanie
Geschrieben am: 28.11.2018 14:24:16

Ich glaube ich weiß, warum das nicht funktioniert. Ich habe immer drei Zellen miteinander verbunden, in welcher dann das datum steht. hintergrund ist, dass ich drei spalten unter jedem datum brauche. kann das vl auch daran liegen ?


  

Betrifft: AW: Umformeln eines Beitrags
von: PeterK
Geschrieben am: 28.11.2018 14:48:01

Hallo

Es liegt wirklich an der Formatierung der Zellen. Da ich die Find Methode nicht dazu bringen konnte, ein Ergebnis zu liefern, folgt eine Alternative


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dayOfYear As Long

    If Target.Cells(1).Address(False, False) = "A1" Then
        If Not IsDate(Target.Value) Then
            dayOfYear = Format(DateValue("01." & Target.Value & ". " & Year(Date)), "y")
            Application.Goto reference:=Target.Offset(1, 3 + dayOfYear), scroll:=True
        Else
            dayOfYear = Format(Target.Value, "y")
            Application.Goto reference:=Target.Offset(1, 3 + dayOfYear), scroll:=True
        End If
    End If
End Sub




  

Betrifft: AW: Umformeln eines Beitrags
von: Stefanie
Geschrieben am: 28.11.2018 14:58:17

Hey du bist spitze,

das hat funktioniert. Freu :) Vielen Dank.

Allerdings funktioniert jetzt die zweite Funktion nicht mehr, dass ich anstatt des Monats auch direkt ein datum in mein Feld eingeben kann. Vorher war es so, dass ich zum einen über DropdownListe Januar Februar usw. eingeben konnte. Alternativ konnte ich in das Feld ein Datum reinschreiben, um direkt dort hinzusprngen. Meinst du, das bekommst du auch noch hin ?

Vielen lieben Dank


  

Betrifft: AW: Umformeln eines Beitrags
von: PeterK
Geschrieben am: 28.11.2018 15:30:06

Hallo

Bei mir funktioniert auch die Datumseingabe (A1 sollte als Datum formatiert sein)


  

Betrifft: AW: Umformeln eines Beitrags
von: Stefanie
Geschrieben am: 28.11.2018 15:37:12

Also ein PRoblem ist noch. Die Monate springen nicht auf den 1. ten.

Die Spalten bewegen sich, beim Juni wird allerdings dann der 21.2 angezeigt. Juli, 3.3, Oktober 3.4


also doch nicht so ganz funktionsfähig. Ich würde dir ja gerne die Datei schicken, aber die ist so voll mit vielen Daten und Dingen, die ich nicht einstellen kann.


Wenn ich mir deinen code anschaue.. Sucht der auch in Reihe 2 ?


  

Betrifft: AW: Umformeln eines Beitrags
von: PeterK
Geschrieben am: 28.11.2018 15:43:34

Hallo

Der Code errechnet den Tag des Jahres und springt dann die Entsprechende Anzahl an Zellen nach Rechts ausgehend von A1 (das macht Offset : 1 eine Zeile nach unten , 3 + dayOfYear Spalten nach rechts)
Wenn Du aber 3 Spalten fur ein Datum verwendest dann musst die DayOfYear mit 3 multiplizieren


Application.Goto reference:=Target.Offset(1, 3 + dayOfYear*3), scroll:=True



  

Betrifft: AW: Umformeln eines Beitrags
von: Stefanie
Geschrieben am: 28.11.2018 15:53:01

Super jetzt klappt beides. Bin zwar auf dem 2. des Monats gelandet, aber nach dem *3 -3 und alles war in Butter. Läuft .... Peter.. Vielen Vielen Dank!


  

Betrifft: AW: Umformeln eines Beitrags
von: PeterK
Geschrieben am: 28.11.2018 16:48:12

Hallo

Beverly hat in deinem "alten" Beitrag eine funktionierende Suchfunktion gepostet.