Daten per VBA exportieren

  • Excel

Es gibt 42 Antworten in diesem Thema. Der letzte Beitrag () ist von Sam85.

    Nachdem ein Worksheet/Monat komplett exportiert wurde, müssen alle relevanten Variablen wie aktcolTaginDoLoop natürlich wieder auf ihren Startwert gesetzt werden, sonst wird ab der 2. Tabelle ja an der falschen Stelle nach Daten gesucht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von VaporiZed, mal wieder aus Grammatikgründen.

    ― Eine häufig von mir verwendete Abkürzung: CEs = control elements (Labels, Buttons, DGVs, ...)
    ― If Not GrammarIsOk() Then AssumeThatCodeIsOk = False
    ― »Oh, großes Spaghetticodemonster. Bitte schicke mir Durchblick! Oder zumindest eine Gabel. Oder – wenn es kein Besteck mehr gibt – zumindest Glasnudeln.«
    Hallo,

    ich hab dazu nach etwas längerer Zeit nochmal eine Frage: Ich wollte das ursprüngliche Schema etwas abändern. Vorher war beim auslesen der Faktor für die Anzahl der Therapeuten pro Tag fix und das wollte ich variabel anpassen. Ich dachte da an einen Loop. Bedeutet:
    • ich beginne in Zeile 2, Spalte 3 mit der Abfrage ob sie leer ist und Zeile 5, Spalte 3 ob sie nicht leer ist.
    • Dabei zählt der Zähler hoch und sobald der Loop zu Ende ist kommt das Ergebnis 4 +1 da bisher 4 Leerzellen + die erste Zelle mit dem Datum.
    • Danach kommt der alte Code zum auslesen (bleibt identisch)
    • Dann wird der Zähler für die Therapeuten wieder auf 0 gesetzt und die Spalte + 1, damit sie wieder bei der nächsten Leerzelle nach dem Datum beginnt zu zählen.
    Ich denke mal das ich den Loop falsch konstruiert habe, wie muss ihn aufstellen, damit mein Plan aufgeht? ?(

    (Modul mdlKalenderExport, Zeile 65)

    Spoiler anzeigen

    VB.NET-Quellcode

    1. expRow = 2
    2. RowID = 0 - 1
    3. aktcolTaginDoLoop = 2
    4. z = 0 'Leerzeilen Counter
    5. i = 3 'erste Leerzeilen Spalte nach dem ersten Datum
    6. rowZeit = wks.Range(wks.Cells(6, 1), wks.Cells(6, 1).End(xlDown)).rows.Count - 1 'Arbeitszeit Counter
    7. Do While wks.Cells(2, i).Value = "" And wks.Cells(5, i).Value <> "" 'Leerzeilen zwischen den Datum ablaufen
    8. z = z + 1 'Leerzeilen Counter + 1
    9. i = i + 1 'Leerzeilen Spalte + 1
    10. If wks.Cells(2, i).Value <> "" Then 'Keine Leerzeile dann weiter
    11. z = z
    12. Do Until wks.Cells(2, aktcolTaginDoLoop).Value = "" 'Tages Schleife
    13. For x = 0 To z
    14. For y = 0 To rowZeit 'Arbeitszeit Bereich
    15. If Not IsEmpty(wks.Cells(6 + y, x + aktcolTaginDoLoop).Value) Then 'Leerzeile von nicht Leerzeile trennen
    16. ''CODE''
    17. expRow = expRow + 1
    18. End If
    19. Next y
    20. Next x
    21. aktcolTaginDoLoop = aktcolTaginDoLoop + z + 1
    22. Loop
    23. i = i + 1
    24. z = 0
    25. End If
    26. Loop


    Bilder
    • Bild.PNG

      28,03 kB, 1.252×404, 15 mal angesehen
    Dateien
    • 2017 - upload.zip

      (399,08 kB, 10 mal heruntergeladen, zuletzt: )