Daten in eine andere Tabelle eintragen (datumsbasiert)

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

housefreund
******
Beiträge: 607
Registriert: Do, 03.01.2008 23:23

Daten in eine andere Tabelle eintragen (datumsbasiert)

Beitrag von housefreund »

Aufgaben-ooinfo-Nummeierung.ods
(19.88 KiB) 104-mal heruntergeladen
Hallo,

könnte mir jemand ein Makro basteln, mit dem ich automatisch die Nummer und Beschreibung aus dem Blatt Aufgaben in das Blatt Kalender eingetragen bekomme, natürlich in die Zelle des entsprechenden Tags? In der Zelle sollte dann stehen:
Nummer: Beschreibung
Falls eine weitere Aufgabe die gleiche Deadline hat, wäre ein Trennung via Semikolon und Sortierung via Nummer gut.

Ich weiß nicht, vielleicht ist das hier eine völlig unverschämte Anfrage, es ist nur so ich lerne nicht viel die pure Theorie durchzulesen und dann loslegen.
Bin eher jemand der sich an Beispielen ein gewisses Verständnis ableitet nur weiß ich nicht nach was für Beispielen ich hier suchen könnte. :/ Also: Hat jemand ein paar heiße Tipps welche Beispiele ich mir angucken könnte? :)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Daten in eine andere Tabelle eintragen (datumsbasiert)

Beitrag von clag »

Hallo housefreund,

deine Beispieldatei ist nicht wirklich nützlich
du solltest dein Anliegen nochmal überdenken und genauer beschreiben.

eigentlich sollte dein Vorhaben mit SVERWEIS() oä lösbar sein.
Nur wie willst in dem Kalender etwas erkennen wenn die Zellen gerade mal ein Wort fassen und du möchtest da mehrere Anmerkungen reinschreiben???
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
housefreund
******
Beiträge: 607
Registriert: Do, 03.01.2008 23:23

Re: Daten in eine andere Tabelle eintragen (datumsbasiert)

Beitrag von housefreund »

clag hat geschrieben:Hallo housefreund,

deine Beispieldatei ist nicht wirklich nützlich
du solltest dein Anliegen nochmal überdenken und genauer beschreiben.

eigentlich sollte dein Vorhaben mit SVERWEIS() oä lösbar sein.
Hi clag!
Ich habe mal die Datei überarbeitet und für 2 existierende Daten (hier jetzt Plural von Datum) das gewünschte Ergebnis aufgezeigt.
Nur wie willst in dem Kalender etwas erkennen wenn die Zellen gerade mal ein Wort fassen und du möchtest da mehrere Anmerkungen reinschreiben???
Die Formatierung der Ansicht im Blatt 'Kalender' ist doch kein Ding. Stelle ich später selber ein bisschen die Spaltenbreite und Zeilenhöhe um. :) Mir geht es um den Transfer von Daten.
Aufgaben-ooinfo-Nummeierung-Wunsch.ods
(14.95 KiB) 96-mal heruntergeladen
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Daten in eine andere Tabelle eintragen (datumsbasiert)

Beitrag von F3K Total »

Hallo,
clag hat geschrieben:sollte dein Vorhaben mit SVERWEIS() oä lösbar sein.
Das wäre sicherlich einfach, wenn es pro Tag nur einen Eintrag gäbe, bei mehreren Einträgen wird es schwieriger.
Darum habe ich eine function geschrieben.
Housefreund, in Deinem Kalender verwendest Du in den Tageszeilen Zahlen (1, 2, 3 ...) und Texte (Sa, So, Mo ...).
Diese Daten lassen sich nur schwer zu Suche heranziehen.
Darum anbei ein Beispiel, mit einem vereinfachten Kalender in dem ich das tatsächliche Datum, nur etwas formatiert verwende.
Die Function show_Jobs

Code: Alles auswählen

function show_Jobs(day,adata) as String
    dim currentjobs(0) as string
    ncounter = 0
    for i = 1 to ubound (adata)
        if adata(i,2) = day then 'Datum in Spalte B gefunden, B entspricht Spalte 2
                 redim preserve currentjobs(ncounter)
                 currentjobs(ncounter) = "" & adata(i,1) & ": " & adata(i,3) 'Spalte A verbunden mit Doppelpunkt und Spalte C, A entspricht 1, C entspricht 3
                 ncounter = ncounter + 1
        endif
    next i
    show_Jobs = Join(currentjobs,"; ") 'alle gefundenen mit Semikolon verbinden
End function
sucht im übergebenen Zellbereich nach dem Datum, fügt alle gefundenen Einträge zu einem String zusammen und trägt den gesamten String in die Zelle ein.

HTH
Gruß R
Dateianhänge
zeige_Aufgaben.ods
(19.96 KiB) 90-mal heruntergeladen
housefreund
******
Beiträge: 607
Registriert: Do, 03.01.2008 23:23

Re: Daten in eine andere Tabelle eintragen (datumsbasiert)

Beitrag von housefreund »

F3K Total hat geschrieben:Hallo,
clag hat geschrieben:sollte dein Vorhaben mit SVERWEIS() oä lösbar sein.
Das wäre sicherlich einfach, wenn es pro Tag nur einen Eintrag gäbe, bei mehreren Einträgen wird es schwieriger.
Darum habe ich eine function geschrieben.
Housefreund, in Deinem Kalender verwendest Du in den Tageszeilen Zahlen (1, 2, 3 ...) und Texte (Sa, So, Mo ...).
Wenn ich im Kalender auf das internationale Datumsformat (yyy-mm-dd) umsetze, wäre es dann einfacher?

Vielen Dank für das Beispiel, es hat geklappt, Felder sind schön grün geworden. :) Es gab aber einen Fehler vorher:
2014-03-30-showJobs-Laufzeitfehler.png
2014-03-30-showJobs-Laufzeitfehler.png (13.46 KiB) 1841 mal betrachtet
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Daten in eine andere Tabelle eintragen (datumsbasiert)

Beitrag von F3K Total »

housefreund hat geschrieben:Es gab aber einen Fehler vorher:
Den kann ich nicht entdecken, nicht unter Windows 7 und nicht unter Linux Mint, welches Betriebssystem hast Du.
housefreund hat geschrieben:Wenn ich im Kalender auf das internationale Datumsformat (yyyy-mm-dd) umsetze, wäre es dann einfacher?
Es geht darum, dass in den Zellen die z.B. den Tag angeben, ein Datumswert steht, der durch entsprechende Formatierung wieder so aussieht wie bei DIr.
Beispiel:
Gib in eine noch nicht formatierte Zelle die Zahl 41728 ein, in eine Zelle daneben die Zahl 0.
Wenn du diese beiden Zellen nun mit z.B. yyyy-mm-dd formatierst, bekommst Du in Zelle 1

Code: Alles auswählen

2014-03-30
angezeigt und in Zelle 2

Code: Alles auswählen

1899-12-30
oder anders, der heutige Tag ist in der Zeitrechnung von Calc der 41728igste Tag seit dem 30. Dezember 1899
Morgen wäre 41729
So, und mit solchen Werten kannst Du nun die function arbeiten lassen.
Wenn Du dir die Formatierungsmöglichkeiten des Datumsformates genauer ansiehst, wirst du feststellen, dass du mit z.B. diesem Formatcode

Code: Alles auswählen

NN TT 

Code: Alles auswählen

So 30
angezeigt bekommst, wenn in der Zelle 41728 steht.
HTH R
Antworten