Keresés

Részletes keresés

LordFinesse Creative Commons License 2001.07.13 0 0 340
Lenne egy kérdésem:

>>>rányomok egy vonalas diagramot

Hogyan? Rengeteget szerencsétlenkedtem már ilyen chartokkal, de csak XY Scattered típussal jött össze, hogy az X tengelyen aktuális értékek legyenek, ne csak Cimke. lehet ezt valahogy vonalassal is?

Előzmény: perfag (339)
perfag Creative Commons License 2001.07.13 0 0 339
Szervusztok,

lenne egy kérdesem a trendvonalrol, tud-e Valaki segiteni?

A gond:
x: 0,1 0,14 0,2 0,3 0,4 0,7 1 1,4 2 3
y: 0,14 0,2 0,29 0,42 0,52 0,67 0,78 0,88 0,96 1

erre az adatsorra rányomok egy vonalas diagramot, lekérem a 3. foku polinomikus trendvonalat, a dög Excel gyönyöruen ráfekteti, lekérem az egyenletet:
y=-0,0016*x^3+0,0247*x^2-0,0003*x+0,116
es ennek köze nincs az adataimhoz!

Mit csináltam rosszul?
Az egyenlet nem igazan érdekel, mert elökerestem egy ostoba kis dos-os programot meg '90-bol, azzal
meglett, de én Excelben szeretném!

Előre is köszi,

üdv.:
perfag

kisreb Creative Commons License 2001.07.13 0 0 338
Korlátok között vagyunk hardverileg.
Legyen pl: 19 cm, amit te be akarsz rácsozni század pontossággal.
Ez 19*100 = 1900 pixelt igényelne, a monitor felbontás 1024*768 esetén sem oldható meg - 1024 helyre nem tudunk 1900 pontot leültetni.
Mit tehet az excel, vagy mi: valahogyan kerekítünk.
Lehet semmi hasznát nem veszed, de írtam eljárást az automatikus és betűméretből kapott sormagasság összehasonlítására. Ha ábrázolod diagramon az eltérést, látszik, hogy nem göngyöli a hibát, valahogy korrigál.

Sub sormagasság()
'A: szöveg; B: betűméret; C: automatikus sormagasság
'D: 27,5 % a betűméretre E: eltérés
Dim r, c, x As Long
Sheets("Munka1").Select
For r = 1 To 50
Cells(r, 1).Select
x = 8 + 2 * r
Selection.Font.Size = x
ActiveCell.FormulaR1C1 = "gg"
x = Selection.Font.Size
Cells(r, 2).Select
Selection.Font.Size = x
ActiveCell.FormulaR1C1 = x
Cells(r, 3).Select
ActiveCell.FormulaR1C1 = ActiveCell.RowHeight
If r > 1 Then
Cells(r, 4).Select
ActiveCell.FormulaR1C1 = "=RC[-2]*1.275"
Cells(r, 5).Select
ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-2]"
End If
Next
End Sub
Előzmény: Tiba (337)
Tiba Creative Commons License 2001.07.11 0 0 337
Én is sokaat próbálkoztam már ezzel, de az a baj, hogy ez sem tökéletes. Két hibaforrás van:

A VBA nem mindig pontosan azt adja át az Excelnek, amit az utóbbi fogad (tényleg! bár az eltérés minimális, de ha jól emlékszem, akkor néhány szám esetén néhány századdal más megy át. Debung-gal ellenőriztem)
Miután az Excelbe beállítod az oszlop szélességét (pl. 8.36-tól 8.49-ig bármit), akkor azt magától átállítja egy kicsit nagyobbra vagy kisebbre (a fenti példánál 8.43-ra).

Ez a két hiba azért kellemetlen, mert ha fél centiméteres rácsot szeretnél csinálni, akkor az 5. oszlop és sor környékén már miliméteres hiba lesz, míg a 15. oszlop és sor környékén már egy-egy rács el is van csúszva.

Én megoldásként a következőt találtam ki:

Miután az első sorba és az első oszlopba beírom a kívánt cella méretet cm-ben, elkezdem beállítani:

B oszlop szélessége: B1-es cellába írt szám átváltva a M$-által megkövetelt pontra (mint ahogy a LordFinesse linkjén csinálták).
C oszlop szélessége: B1+C1 átváltva pontokra, mínusz a B oszlop Excel által beállított pontok
D oszlop szélessége: B1+C1+D1 átváltva pontokra, mínusz a B és C oszlop Excel által beállított pontok
A sorokkal ugyanígy.

Tiba

Előzmény: kisreb (335)
LordFinesse Creative Commons License 2001.07.09 0 0 336
Előzmény: elrond (333)
kisreb Creative Commons License 2001.07.08 0 0 335
Szerintem ezt teljesen jogosan teszi az excel, mármint a sormagasság pontban történő megadását.
Pl: a word is pontban adja a betűméretet(gondolom a nyomdaipar tekintélyes múltja miatt). Alapból az excel 10 pontos betűméretet kínál fel, és ehhez a 12,75 pont magasságú cellát tartja kényelmesnek, így is van. Ha a betűméret nem irritál, rá kell tenni 2,75% -ot és meg van a sormagasság.
Előzmény: elrond (333)
LordFinesse Creative Commons License 2001.07.08 0 0 334
>>>Excel migyen mértékegységben
számolja az oszlopok szélességét és a somagasságot?

Ez tényleg elég abszurd. A sormagasságot 'point'-ban adják meg. Ez egy tipográfiai mértékegység, ugyanaz, mint amit a betünagyságnál használnak.
1 inch (hüvelyk)= 6 pica = 72 point = kb. 2.54 cm.
1 point = kb. 0.035cm.

Az oszlopszélességet karakterszámban adják meg. Viszont! A betükészleteket megkülönböztetik aszerint, hogy egyforma szélesek a betüik (pl. az l ugynannyi helyett foglal, mint a W, ilyen pl. a courier) vagy nem. A proportional fontoknál, ahol a betük szélessége változik (szinte az összes ilyen), a 0 karakter szélességét veszi figyelembe. A 12-es oszlopszélesség tehát azt jelenti, hogy 12 db 0 karakter fér el benne.

A VBA-ban van pl. CentimetersToPoints metódus, amit használni lehet. Ezenkívül a Width tulajdonság megadja a szélességet point-ban, a ColumnWidth tulajdonság pedig a karakterszámban mért szélességet. Ezekböl aztan lehet kombinálgatni.

Visszatérve az eredeti kérdésre:
>>Hogy lehetne beállítani hogy ezt metrikusan tegye vagy mi az átváltási érték?

Irjál egy makrót erre, tudomásom szerint máshogy nem lehet.

Az egész amúgy tenyleg hülyeség, nem tudom, hogy mi a logika emögött, de ha hozzáveszed, hogy a világon Burma és Libéria, 2 kurva fejlett :-)) országon kívül csak az USA nem használja az SI mertékegységrendszert, ezen nem csodálkozhatsz!

Előzmény: elrond (333)
elrond Creative Commons License 2001.07.08 0 0 333
Helló mindenkinek!!!

Volna egy kis gondom. Valaki meg tudná mondani hogy az Excel migyen mértékegységben
számolja az oszlopok szélességét és a somagasságot? Hogy lehetne beállítani hogy ezt
metrikusan tegye vagy mi az átváltási érték?

kisreb Creative Commons License 2001.07.07 0 0 332
(folytatás)
ugrás nem megy.
Előzmény: kisreb (331)
kisreb Creative Commons License 2001.07.07 0 0 331
Más megoldás, kevésbé igényes ,de egyszerű. (Kovalcsik Géza könyve alapján)
Be kell szúrni egy új munkalapot "Tartalom" lapnévvel és futtatni a modult.

Sub tarjegy()
Const Fo = "Tartalom"
Const Vissza = "<-"
Dim o, s As Integer
Dim Akt As Object
s = 3
o = 2
For Each Akt In Worksheets
If Akt.Name <> Fo Then
With Worksheets(Fo)
.Cells(s, o) = Akt.Name
.Hyperlinks.Add Anchor:=Cells(s, o), Address:="", SubAddress:=Akt.Name & "!A1"
End With
With Akt
.Cells(1) = Vissza
.Hyperlinks.Add Anchor:=Cells(1), Address:="", SubAddress:="Tartalom!A1"
End With
s = s + 1
If s = 14 Then
s = 3
o = o + 2
End If
End If
Next Akt
End Sub

A probléma: munkalap beszúrása esetén, csak a "Tartalom" munkalapon helyez el működő linket, az új lapról a vissza link nem működik.

Előzmény: LordFinesse (330)
LordFinesse Creative Commons License 2001.07.06 0 0 330
kisreb> elküldtem
Előzmény: kisreb (329)
kisreb Creative Commons License 2001.07.05 0 0 329
97-es formátumban, még mindig.
Előzmény: kisreb (328)
kisreb Creative Commons License 2001.07.05 0 0 328
Jelzek, küldd el nekem is. A problémával kb. 1 évvel ezelőtt találkoztam, megoldottam, de 1 kicsit gagyi (most sem tudom, miért nem hibátlan).
Előzmény: LordFinesse (326)
zozo66 Creative Commons License 2001.07.04 0 0 327
Köszönön ezerrel !
Előzmény: LordFinesse (326)
LordFinesse Creative Commons License 2001.07.04 0 0 326
elküldtem emailben egy megoldást. Nem csak kód van benne hanem egy Userform is ezért nem raktam be ide.
Jelezz vissza, hogy jó-e!!

Ha esetleg kell valaki másnak is jelezzen!!

Előzmény: zozo66 (325)
zozo66 Creative Commons License 2001.07.04 0 0 325
Sziasztok

Nekem is szükségem lenne egy kis segítségre. Olyan makrót akarok írni, ami egy munkafüzet munkalapjainak nevét lekéri és kívánság szerint az egyiket aktivizálja. sajnos nem az akarásommal van a probléma...
Köszi

_pancho_ Creative Commons License 2001.07.03 0 0 324
Nekem az lenne a celom, hogy irjak egy olyan tablat, ami azonnal kidob nekem millio kis eredmenyt, amint frissitem a hivatkozasul szolgalo masik munkalapot

De nagyjabol kezdek sikeres lenni. Azert koszi a segitseget.

Előzmény: LordFinesse (323)
LordFinesse Creative Commons License 2001.07.03 0 0 323
használd az irányított szürést, sokkal egyszerübb
Előzmény: _pancho_ (322)
_pancho_ Creative Commons License 2001.07.03 0 0 322
Sziasztok
Ujabb problema (lassan kezdem ugyerezni, hogy en tartom fenn a topicot)

Szoval van egy reszletes lista, ahol bizonyos beerkezesek datumhoz vannak rendelve. Azt szeretnem elerni, hogy ha megadom a honapot, akkor az ahoz a honaphoz tartozo sorokat kiggyujtse egy masik sheet-re

Valami olyasmire gondoltam, hogy =IF(es itt kene valami olyan, hogy A2 mezo >06-2000 AND <04-2001)

Na most tudom, hogy a fenti igy hulyeseg (voltak mar jobb probalkozasaim is) de gondoltam igy erthetobb, hogy mit akarok.

Elore is koszi

pancho

kisreb Creative Commons License 2001.06.29 0 0 321
Bocsi, Tiba. Picit módosítok a kódodon.
Sub részösszeg()
hanysor = Cells(1, 1).CurrentRegion.Rows.Count
x = hanysor / 3
For i = 4 To hanysor + x Step 4
Rows(i).Insert
Cells(i, 1) = Cells(i - 1, 1) + Cells(i - 2, 1) + Cells(i - 3, 1) 'ha az oszlop alatt van az összeg
Next
End Sub
Előzmény: Tiba (319)
kisreb Creative Commons License 2001.06.29 0 0 320
+1 (x5=x2+1)
tetszik!! (én - mint általában -egy árnyalattal túl komplikáltam a dolgot)

Előzmény: Tiba (319)
Tiba Creative Commons License 2001.06.29 0 0 319
Kisreb megoldásán kívül:

hanysor= cells(1,1).currentregion.rows.count
for i= hanysor+1 to 1 step -3
row(i).insert
cells(i,4)=cells(i-1, 3) + cells(i-2, 3) 'ha a 4. oszlopban van az összegző
next

Kisreb:
// Ha nagyon uncsi, vegyél egy másik üres oszlopot is pl. "Y", töldsd fel (0,1,2,3,4,5...) számtani sorozattal, és az X2-be a képlet: =INT(Y2/3)+1 //

Ez felesleges, mert (maradva a fenti példánál)
X2 képlete: = 1
X3 képlete: = 1
X4 képlete: = 1
X5 képlete: = X2
Az X5 képletét pedig már le is lehet másolni.

Tiba

Előzmény: _pancho_ (317)
kisreb Creative Commons License 2001.06.28 0 0 318
Pl. megoldás az excel kezelő felületén:
használd ki az adatok/részösszegek menüpontot.
Vedd valamelyik üres oszlopot -legyen ez pl. "X" -,töldsd fel (1,1,1,2,2,2,3,3,3,4...). Ez az oszlop adja a csoportosítási alapot a részösszegekhez.
// Ha nagyon uncsi, vegyél egy másik üres oszlopot is pl. "Y", töldsd fel (0,1,2,3,4,5...) számtani sorozattal, és az X2-be a képlet: =INT(Y2/3)+1 //
Ezeket az oszlopokat el is rejtheted (:
sorbarendezés X oszlopszerint majd adatok / részösszegek
Előzmény: _pancho_ (317)
_pancho_ Creative Commons License 2001.06.28 0 0 317
Sziasztok emgint.
A kovetkezo kerdesem lenne:
Meg lehet-e azt csinalni valahogyan, hogy az Excel automatikusan minden harmadik sor utan nyisson egy uj sort (insert row) es bemasolja oda a felette levo harom cella osszeget (SUM)?
kisreb Creative Commons License 2001.06.27 0 0 316
tiba>> aféléket kérdeznék én is, mint te, de kzs664 nem mond többet a probémáról.

/Semmi jelentősége, de eltévesztettem a számolást, a cells(260) helyett a cells(300)-zal példálóztam. Az első sor 256 cellája után jön a második sor, cells(257)=A2, cells(258)=B2, cells(259)=C2 és cells(260)=D2./

Előzmény: kisreb (313)
LordFinesse Creative Commons License 2001.06.27 0 0 315
A Quattro Pro-ban 18,278 oszloplimit van.

Vagy hasznalhatod az Office Web Component Spreadsheet Control-t, ami az Office XP-vel jön, bár azt hiszem lehet hasznalni pl. a 2000-el is. Talan még letölteni is lehet. Ez 18 278 oszlopot és 262 144 sort tud kezelni. De ez csak egy spreadsheet control, nem pedig Excel. Azért sok mindent tud!!!

Bövebben itt.

Tiba Creative Commons License 2001.06.27 0 0 314
Ha jól gondolom, akkor Access nem jöhet szóba. Az Excel 2000 is csak 256 oszlopot ismer.
VB-kel persze meg lehetne oldani (elvileg), de az 400 oszlopnál rengeteg memóriát foglal, gyakorlatilag hasznláhatatlan lenne.

Mindenképpen Excellel szeretnéd megoldani?
Hány sorod van?
Milyen gyakran kerülnek a táblába új sorok?
A különböző oszlopok hogyan függnek egymástól (pl: irányítószám - város vagy olyan oszlop, amely az előző oszlopokból számítódik)?

Tiba

Előzmény: kisreb (313)
kisreb Creative Commons License 2001.06.26 0 0 313
Feladattól függ.>>
1) tényleg el kellene helyezni 400 oszlopot. A logikai meghosszabítást nem igazán értem, mert hogy az excel tömbként kezeli a munkalapok celláit, sorfolytonosan számozva azokat. A cells(300) például, a D2 cella. Innéttől kezdve én már képtelen lennék figyelni.
1.1)Marad a táblázat előremegfontolt felosztása, pl. több munkalapra
1.2)A probléma megoldásához másik alkalmazás választása (Az excel 2000 is csak 256 oszlopot tud?)

2) megoldható-e a probléma ( mert ott van, mint a hegy), lehet inkább a VB listán kellene érdeklődni.

Előzmény: Tiba (312)
Tiba Creative Commons License 2001.06.25 0 0 312
Feladattól függ. Az Excelben hiába van 256 oszlop, nem arra találták ki, hogy tele is legyen. Ha már telerakod, akkor logikailag meg lehet hosszabítani a következő munkalapon. Ha odafigyelsz, akkor működhet. Bár végül is a munkalap is csak egy objektum, amelynek egy tulajdonsága, hogy 256 oszlop van benne, így meg is lehet változtani, de ebbe nem mennék bele.. ;-)

Tiba

Előzmény: kzs644 (310)
LordFinesse Creative Commons License 2001.06.23 0 0 311
>>>excel alapesetben csak 256 oszlopot tud kezelni nekem 400 ra lenne szükségem , hogyan tudom ezt megtenni ?

sehogy. A 256 oszlop az fix, ninc semmilyen megoldás rá.

Előzmény: kzs644 (310)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!