Kezdőlap › Fórumok › Excel programozás › [Resolved] Út-idő diagram
- This topic has 6 hozzászólás, 3 résztvevő, and was last updated 3 years, 10 months telt el by Gabor733.
-
SzerzőBejegyzés
-
2020-12-01-12:48 #7957
Sziasztok!
Szeretnék csinálni egy út-idő diagramot, melyhez szerkesztettem egy táblázatot, amit mellékeltem.
Az idő lenne a vízszintes tengely, egy cella egy percet jelent, az út a függőleges, azt nem szerkesztettem meg, mivel az a konkrét útvonaltól függ. Az ábrázolandó járatokat (több lenne, mindkét irányban) úgy szeretném, hogy az alakzatok menüből vonal húzásával, melynek a konkrét időadatok függvényében a rácsvonalak metszéspontjából kéne indulnia, ill. oda érkeznie. A konkrét adatok bázisául egy másik munkalapon lévő táblázat szolgálna, attól függően, hogy lehetne ezt célszerűen megoldani.
A kérdésem ez lenne, megoldható -e ez makróval? Illetve szívesen fogadnék más tippeket is.Válaszotokat előre is köszönöm!
Üdv: Gábor
- A témakör módosításra került: 3 years, 10 months telt el-Gabor733.
- A témakör módosításra került: 3 years, 10 months telt el-horvimi.
Attachments:
You must be logged in to view attached files.2020-12-01-22:15 #7963Szia!
Makróval valószínűleg megoldható, makró nélkül pedig valószínű, hogy nem.
Hogy mit is szeretnél, azt nem igazán értem.Általánosan így kell vonalat rajzolni Excel lapra, ahol a koordinátákat a munkalap bal felső sarokához képesti pozícióként, pontban lehet megadni:
Activesheet.Shapes.Addline BeginX:=10, BeginY:=10,EndX:=200,EndY=200
A következő a B8-as cella bal felső sarkától a B5-ös cella bal felső sarkáig húz vonalat.
activesheet.shapes.addline BeginX:=range("B8").left, BeginY:=range("B8").top, EndX:=range("B5").left, _ EndY:=range("B5").top
Imre
2020-12-02-19:41 #7976Köszönöm a segítséget Imi, kísérletezem vele.
2020-12-03-07:24 #7980Szia Gabor733!
Milyen jó lenne, ha nem csak egy üres sablont mellékelnél, hanem egy-két példán bemutatnád, hogy milyen végeredményre számítasz! Milyen adatok alapján, mi jelenjen meg?
„… Az ábrázolandó járatokat (több lenne, mindkét irányban) úgy szeretném, hogy az alakzatok menüből vonal húzásával (???), melynek a konkrét időadatok függvényében a rácsvonalak metszéspontjából kéne indulnia, ill. oda érkeznie. …” (???)
A járatokat vonal alakzattal szeretném ábrázolni, mégpedig úgy, hogy a vonal két vége az indulás és az érkezés időpontját tartalmazó oszlopban található celláknál legyen.
Egy példa:
1. járat indul 4 óra 10 perckor, érkezik 8 óra 45 perckor,…
tehát a vonal az IR4:TG4 cellatartományba legyen belerajzolva.Ha jól értem.
Nem értem, miért vonalban gondolkodsz?
Miért nem jó neked, ha a cellákat színezed makróval? Feltételes formázással is lehetne, de arról lebeszélnélek, mert rengeteg számítást fog igényelni. Soronként 1440 cella!!
…üdvözlettel
verax2020-12-05-15:02 #8009Sziasztok!
Verax, gondolkoztam színezett cellákban, viszont az a baj, hogy egy adott pontban egyszerre kettő, vagy akár több járat is lehet.
Imre, kipróbáltam az általad javasoltakat, meg is próbáltam hozzá megírni a makrót, amivel sikerült is megrajzolnom egy „járatot”, egyszerűsítve, de a végén hibát jelez.
`Sub vonal()
Dim all, ido, mi, i As Variant
i = 2
Do Until Sheets(„Menetrend páros”).Cells(i, 2) = „”
all = Sheets(„Menetrend páros”).Cells(i, 4).Value
ido = Sheets(„Menetrend páros”).Cells(i, 5).Value
mi = Sheets(„Menetrend páros”).Cells(i + 1, 5) – Sheets(„Menetrend”).Cells(i, 5)Sheets(„Ábra”).Shapes.AddLine BeginX:=Cells(all, ido).Left, BeginY:=Cells(all, ido).Top, EndX:=Cells(all + 1, ido + mi).Left, _
EndY:=Cells(all + 1, ido + mi).Topi = i + 1
Loop
Do Until Sheets(„Menetrend páratlan”).Cells(i, 2) = „”
all = Sheets(„Menetrend páratlan”).Cells(i, 4).Value
ido = Sheets(„Menetrend páratlan”).Cells(i, 5).Value
mi = Sheets(„Menetrend páratlan”).Cells(i + 1, 5) – Sheets(„Menetrend”).Cells(i, 5)Sheets(„Ábra”).Shapes.AddLine BeginX:=Cells(all, ido).Left, BeginY:=Cells(all, ido).Top, EndX:=Cells(all + 1, ido + mi).Left, _
EndY:=Cells(all + 1, ido + mi).Topi = i + 1
Loop
End Sub
Azt szeretném kérdezni, hogy hol a hiba a kódban?
A rajzolt vonalak 4-5 óra között vannak, a kéket rajzoltam a makróval, a pirosat szabadon.
A cél az lenne, hogy úgy, mint a pirosnál, makróval tudjak olyan vonalat rajzolni a járatoknak, amik egyrészt tudják az egyes megállókban az állásidőt értelmezni, másrészt, ha van rá lehetőség, folyamatos vonalak, melyeket ha kell, egy az egyben lehet mozgatni. Van lehetőség esetleg a vonalaknak konkrét töréspontokat koordinátával definiálni?
Hogyan tudok egy ilyen vonalat megformázni, színre, vastagságra?
Tudom -e indítani a vonalat a cella jobb alsó sarkától? (Top helyett a bottom alkalmazása nem sikerült…)
A végcél az lenne, hogy (sokkal) több járatot is tudjak ábrázolni egy ilyen grafikonon, és az útvonal(függőleges tengely) is viszonylag egyszerűen variálható legyen.Válaszotokat előre is köszönöm!
Üdv: Gábor
Attachments:
You must be logged in to view attached files.2020-12-05-22:57 #8011Szia!
Nem néztem még a kódot, ahhoz több idő kellene.
Mégis melyik soron, milyen hibával áll meg? Olyan nincs, hogy a „végén” 🙂Többire válaszok:
– Elsőként leszögezem, hogy nem szoktam rajzolni az Excellel így, szóval lexikonként nem tudok funkcionálni.
– Amit nem tudsz, vedd fel rögzítővel, vagy keress rá. A vastagság bizonyára valami Weight érték lesz, a szín meg valami RGB kód
– Jobb alsó saroktól nem lehet vonalat indítani csak úgy, kimatekozod, hogy az melyik cella bal felső sarka
– A vonalakat így egesével lehet megrajzolni, a megrajzolás után esetleg be lehet őket csoportosítani.
A csoportosítást szintén fel tudod venni rögzítővel. Ez valószínűleg a vonalak neveivel és valami Array szintaktikával dolgozik, ami elég nagy kihívás lesz. Ha minden megrajzolt vonalat valami logika szerint elnevezel, és a név alapján ki lehet választani az egy útvonalhoz tartozó vonalakat valami ciklusban, akkor sikerülhet.Ha útvonalat akarsz variálni, akkor még izgalmasabb a helyzet, mert akkor már egy szép adatbázis/adatszerkezeti kérdéssel állsz szemben. Gondolom az útvonalat a táblázatok adataiban akarod módosítani. A módosítás után meg kell találni, hogy mely vonal(ak) tartoznak az adott útvonalhoz, azokat törölni és újra rajzolni kell tudni.
Ez úgy lehetséges, ha ezt valahogy letárolod valami névkonvencióval pl. a vonalak neveiben és a menetrend táblákban is.Hát, szép feladat kerekedhet belőle.
2020-12-07-09:43 #8012Köszönöm!
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.