VBA - Datum aus Range mit Offset suchen

Diskutiere und helfe bei VBA - Datum aus Range mit Offset suchen im Bereich Microsoft Office im Windows Info bei einer Lösung; Liebe Community, da mir hier schon einige Male schnell geholfen wurde, wäre ich begeistert, wenn dies noch einmal klappt. Ich arbeite an einem Skript... Dieses Thema im Forum "Microsoft Office" wurde erstellt von equipment-studios, 28. Oktober 2019.

  1. VBA - Datum aus Range mit Offset suchen


    Liebe Community,


    da mir hier schon einige Male schnell geholfen wurde, wäre ich begeistert, wenn dies noch einmal klappt.
    Ich arbeite an einem Skript zur Aufarbeitung von Daten (Umformatierung eines festen Layouts mit variabler Länge).


    Dafür ist u.a. eine Spalte "EventDay" nötig (diese läuft von -5 bis +5). Diese lasse ich aktuell durch eine Schleifenkonstruktion laufen (keine Schleifendiskussion an dieser Stelle - es ist nicht elegant, aber muss erstmal laufen, da Zeitdruck herrscht).


    Nun hatte ich bis vor kurzem eine Spalte "EventDate", die das echte Datum anzeigt. Diese Spalte wurde gefüllt, indem das Basisdatum (bspw. 01.10.2017) aus einer dritten Zelle genommen wird.

    Die Daten oberhalb und unterhalb habe ich per Schleife -5 + i (i++) eingetragen, indem ich vom EventDate einfach den EventDay abziehe/hinzurechne.

    Nun habe ich aber festgestellt, dass ich Feiertage und Wochenenden auf diese Weise nicht berücksichtigen kann.

    Deshalb habe ich eine zweite Datei aus welcher ich die Daten bereinigt entnehmen kann. Sozusagen rngDateImport


    Per UsedRange habe ich diese Spalte in einer Range gespeichert und möchte jetzt wie folgt vorgehen:


    Ich möchte aus rngDateImport die Zelle EventDate=0 (hier also 01.10.2017) suchen und dann die Zellen EventDate (-5 bis +5) mit den Werte aus rngDateImport (-5 bis +5 um EventDate 0).


    Wie stelle ich dies am geschicktesten an? Ich kann den Code unten posten.


    Dim wbkDates As Workbook

    Dim wksDates As Worksheet

    Dim varFile As Variant

    Dim rngDates As Range

    Dim rngDate As Range

    varFile = Application.GetOpenFilename("Excel Files (*.xls; *.xlsx; *.xlsm; *.csv; *.xlt; *.xlst; *.xlm),*.xls; *.xlsx; *.xlsm; *.csv; *.xlt; *.xlst; *.xlm", , , , False)

    If varFile = False Then

    Exit Sub

    Else

    Set wbkDates = Workbooks.Open(varFile)

    End If

    Set rngDates = wbkDates.ActiveSheet.UsedRange

    wbkDates.Close (False)


    intCounterDateV = p_intCounterDateV

    intCounterH = wksIn.UsedRange.Columns.Count


    Debug.Print intCounterDateV

    Debug.Print intCounterH


    intTempI = 1

    intTempII = 1

    intTempIII = 0

    lngTempIV = 1


    Do Until intTempI = intCounterH


    m_varSplitHeaderCell = Split(wksIn.Cells(1, intTempI + 1), " ")

    m_strISIN = UCase(m_varSplitHeaderCell(1))

    varEventDay = Split(m_varSplitHeaderCell(2), "/")

    m_datEventDay = varEventDay(1) & "." & varEventDay(0) & "." & varEventDay(2)


    Do Until intTempII = intCounterDateV

    wksOut.Cells(intTempII + lngTempIV, 1) = m_strISIN

    wksOut.Cells(intTempII + lngTempIV, 4) = wksIn.Cells(intTempII + 1, intTempI + 1)

    wksOut.Cells(intTempII + lngTempIV, 3) = p_intRDLB + intTempIII

    wksOut.Cells(intTempII + lngTempIV, 2) = HIER WÄRE DAS DATUM EventDate ANZUZUZEIGEN

    intTempII = intTempII + 1

    intTempIII = intTempIII + 1

    Loop


    lngTempIV = lngTempIV + intTempII - 1

    intTempII = 1

    intTempIII = 0

    intTempI = intTempI + 1


    Loop



    Ich bedanke mich vorab für eure Unterstützung!

    Ich hatte bereits mit der Methode .Find versucht zu arbeiten. Oder aber auch mit Cells(find,1).Offset, aber komme einfach nicht weiter.


    VG

    Florian
     
  2. Claus Busch Win User

    VBA - Datum aus Range mit Offset suchen

    Hallo Florian,

    sorry, habe eine Zelle vergessen zu kopieren:

    If varFile = False Then
    Exit Sub
    Else
    Set wbkDates = Workbooks.Open(varFile)
    End If
    Set rngDatesI = wbkDates.ActiveSheet.UsedRange
    Set rngDateI = rngDatesI.Range("A:A").Find(m_datEventDay)
    varDates = rngDatesI.Range("A" & rngDateI.Row).Offset(-5).Resize(11)
    wbkDates.Close (False)
    Claus
  3. Claus Busch Win User

    VBA - Datum aus Range mit Offset suchen

    Hallo Florian,

    wenn du das Workbook schließt, ist der Range nicht mehr definiert.

    Ändere die Reihenfolge:

    If varFile = False Then
     Exit SubElse
     Set wbkDates = Workbooks.Open(varFile)
    End IfSet rngDatesI = wbkDates.ActiveSheet.UsedRange
    Set rngDateI = rngDatesI.Range("A:A").Find(m_datEventDay)
    varDates = rngDatesI.Range("A" & rngDateI.Row).Offset(-5).Resize(11)
    wbkDates.Close (False)
    Claus
  4. equipment-studios Win User

    VBA - Datum aus Range mit Offset suchen

    Hi Claus,

    ich habe das Skript, einen Ausschnitt der Rohdaten und eine Datumsdatei, wie sie zum Einsatz kommt, auf meinem OneDrive.

    Der Link ist bis 02.11. gültig.

    Wenn du das Makro einmal durchlaufen lässt, bekommst du eine Datei, die wie obiger Screenshot aussieht.

    Mit Sicherheit gibt es elegantere Lösungen - wollte gerne mit For-Each arbeiten, aber das habe ich erstmal nicht lauffähig bekommen in der Kürze der gegebenen Zeit.

    Da das Skript jetzt erstmal läuft, geht es nun um Optimierung und optische Aufwertung :-D

    Besten Dank vorab.

    VG

    Florian

    https://1drv.ms/u/s!AqzXcRSWYj-PleR-e3dXDM1OuB7CMg?e=P99CwO
  5. Claus Busch Win User

    VBA - Datum aus Range mit Offset suchen

    Hallo Florian,

    in deinem Code sind Variablen drin, von denen ich nicht weiß wo sie herkommen und welchen Wert sie haben.

    Kannst du eine Demo-Mappe zur Verfügung stellen (bei einem Filehoster oder in eine Cloud hochladen und den Link zur Datei hier posten)?

    Erstelle auf wksOut auch Daten, dass wir sehen können wie das Ergebnis aussehen soll.

    Claus
  6. equipment-studios Win User

    VBA - Datum aus Range mit Offset suchen

    Hi Claus,

    danke für deine Mühe. Ich bekomme leider einen Fehler in der Sub "RenameInput" mit dem Vermerk. Es könne nicht der ganze Bereich geändert werden. Den Fehler habe ich bei mir schon ein paar Mal sporadisch gesehen, die Ursache konnte ich noch nicht feststellen.

    Deine Änderungen habe ich mir schon angeschaut, aber verstehe noch nicht alles. Bin ja noch sehr frisch drin.

    Ich werde in den nächsten Wochen wohl erst wieder die Zeit finden, mich konkret mit dem Code auseinanderzusetzen. Ich sage dir dann auf jeden Fall Bescheid, ob es a) schneller ist und b) ich alles verstanden habe :-D

    Vielen Dank für deine Ideen! Bis demnächst

    Florian
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

VBA - Datum aus Range mit Offset suchen - Microsoft Office

Die Seite wird geladen...

VBA - Datum aus Range mit Offset suchen - Similar Threads - VBA Datum Range

Forum Datum

Datum in Dateinamen suchen

Datum in Dateinamen suchen: Hallo. Ich habe mir heute den Kopf zermartert. Ich habe einen Link ([Verzeichnispfad] + [Dateiname]). Manche Dateinamen enthalten ein Datum. Ich möchte nun das Datum isolieren. SUCHEN in...
Microsoft Office 5. November 2019

Suche Werte und davon das älteste Datum

Suche Werte und davon das älteste Datum: Hallo mein nNme ist Johnny und ich schreibe zum ersten mal in einem Forum:) Mein Problem: Ich habe eine Exceltabelle mit 2 übergeordneten spalten. 1. Spalte Name 2. Spalte Datum In Spalte...
Microsoft Office 17. September 2019

Excel VBA, Datum in Spalte suchen und Zellinhalt von anderem Tabellenblatt kopieren

Excel VBA, Datum in Spalte suchen und Zellinhalt von anderem Tabellenblatt kopieren: Hallo, ich habe in Tabelle "Test" eine Spalte B mit fortlaufendem Datum. Ich möchte ein Makro erstellen, welches das heutige Datum findet und in die entsprechende Zeile in Spalte F den...
Microsoft Office 19. Januar 2018

Excel Datum eintragen bei Änderung in Range

Excel Datum eintragen bei Änderung in Range: Guten Morgen, ich hätte gern, das automatisch das aktuelle Datum eingetragen wird in der Spalte x wenn ein Wert der jeweiligen Zeile geändert wird, ich habe schon diverse Foren durchsucht und...
Microsoft Office 16. Januar 2018

Verwendung von Range Objekten in VBA

Verwendung von Range Objekten in VBA: Hallo Da ich nicht beliebig aus VBA auf Excel Tabellen zugreifen kann (schmerzliche Erfahrung und Hilfeleistung eines anderen Microsoft Anwenders), bin ich nun genötigt, alle relevanten Zellen...
Microsoft Office 13. November 2017

Wie kann ich per vba den offset bei Hintergrundbildern verändern?

Wie kann ich per vba den offset bei Hintergrundbildern verändern?: Wie kann ich per vba den offset bei Hintergrundbildern verändern? Viele Grüße W.
Microsoft Office 16. Mai 2017

Excel 2010: Datum in VBA immer ein Tag daneben (bei Datum im jahr 1900)...

Excel 2010: Datum in VBA immer ein Tag daneben (bei Datum im jahr 1900)...: In meinen Daten im VBA Marko sind Datumsangaben immer um ein Tag daneben... In meinem Excel steht definitiv das korrekte Datum z.B. 19.1.1900 rufe ich es aber ab, so steht aber in VBA dort...
Microsoft Office 13. Januar 2017
VBA - Datum aus Range mit Offset suchen solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.