Keresés

Részletes keresés

pimre Creative Commons License 2013.10.30 0 0 22908

Igazad van, Delila tanácsát sikeresen félreértettem:-( Amit írsz, azzal tényleg működik.

Előzmény: tbando (22900)
pimre Creative Commons License 2013.10.30 0 0 22907

???

Előzmény: Sánta Kutya (SK) (22898)
hunterzsolt Creative Commons License 2013.10.30 0 0 22906

Inkább privátban küldeném! Adsz egy címet, vagy megtalálom valahol itt az oldalon?

Előzmény: Delila10 (22897)
hunterzsolt Creative Commons License 2013.10.30 0 0 22905

Rendben! Akkor holnap reggel átküldöm, és leírom, hogy mi is lenne a terv! Nem gondoltam, hogy ennyire bonyolult lesz az elkészítése ne haragudj! És köszönöm!

Előzmény: Delila10 (22897)
tbando Creative Commons License 2013.10.30 0 0 22904

Nagyon fincsi. Köszi.

 

 

Előzmény: Fferi50 (22903)
Fferi50 Creative Commons License 2013.10.30 0 0 22903

Szia!

 

Ha a tömb egy dimenziós és 9 elemű, akkor simán a következő az értékadás:

Range("M11:M19").value=tmb

 

Ez akkor működik, ha a tartomány sorainak és oszlopainak száma megegyezik a tömb dimenziójával.

 

Üdv.

Előzmény: tbando (22901)
Fferi50 Creative Commons License 2013.10.30 0 0 22902

Szia!

 

Neked és mindenkinek aki a tömbképlettel foglalkozott eddig:

 

A 2003-as azért nem tudja kezelni a teljes oszlopra vonatkozóan megadott 2007-es tömbképletet, mert a 2007-esben a sorok száma már nem 64 ezer x, 2010-ben több, mint 1 millió.

Ezt nem veszi be a 2003-as "gyenge gyomra".

 

Üdv.

Előzmény: pimre (22896)
tbando Creative Commons License 2013.10.30 0 0 22901

Megismételném 22867-es kérdésem.  Nem csak Delilának.   Ebben a sorban:   

 

Range("M11:M19")=Application.Transpose(tmb)

 

mire kéne kicserélni a transpose-t, hogy a tmb() tomb adatait ne transzponáltként vigye az m11:m19 cellákba?

tbando Creative Commons License 2013.10.30 0 0 22900

Szia! 

 

A magasabb verzióra bár érdemes áttérni, de a tömképletbeli problémád miatt felesleges. Ha Delila tanácsát nem értetted volna félre, akkor ezt már te is látnád. Delila nem az javasolta, hogy csak az első 7 sorba írd a tömbfüggvényt, hanem hogy a tömbfüggvényben vizsgálandó tartományokat precízen add meg. Tehát a 2003-as excelben  ez a képlet működik az 1-7 sorokra:

 

{=Max(HA(F1:F7=”aktív”;A1:A7))}

 

Éni is megnéztem a feltöltésedet  2007-tel.  Már az is konvertálta a #SZÁM! hibát. Amit a 2003-ban az okozhatott, hogy a 2003-as a tömbképleted az A:A, F:F hivatkozásokat nem tudta kezelni.

 

Előzmény: pimre (22895)
tbando Creative Commons License 2013.10.30 0 0 22899

Szia. Örülök, hogy át tudtad hidalni a stringhosszbeli problémát. Az viszont meglepett, hogy a 2007 füzetben nem tapasztaltad a 255 karakteres határt. Ugyanis 2007-es füzetben mértem ki a 255-t. Ezek szerint rosszul. Megcsinálnád a kedvemért, hogy csinálsz egy garantáltan hosszabb stringet, és megnézed, hogy listázza-e a 2007-es autószűrő? Aztán írd meg légyszí, hogy mit tapasztaltál.

Előzmény: NeomatiK (22884)
Sánta Kutya (SK) Creative Commons License 2013.10.30 0 0 22898

Nálam szépen muzsikál a 2000-es, nem kér támogatást. :-)

Előzmény: pimre (22895)
Delila10 Creative Commons License 2013.10.30 0 0 22897

Olyan sűrűn változtatsz a lap felépítésén, hogy nem tudlak követni.

 

Legjobb lenne, ha kitennéd a füzetet egy elérhető helyre publikus adatokkal, vagy elküldenéd priviben, de előbb goldold jól át, mit hol szeretnél megjeleníteni.

 

Előzmény: hunterzsolt (22893)
pimre Creative Commons License 2013.10.30 0 0 22896

Meg is van a hiba oka. A két verzió közti különbség okozta. Amikor a 2007-es alatt kompatibilis üzemmódban akarom menteni a fájlt, akkor a program figyelmeztető üzenetet küld: "A munkafüzetben lévő tömbképletek némelyike egy teljes oszlopra hivatkozik. Az Excel régebbi verziói ezeket a képleteket várhatóan #SZÁM! hibává fogják alakítani újraszámításkor."

 

Sajnos kénytelen leszek hamarosan áttérni, pedig nagyon nem szeretem a 2003 utáni verziókat:-(

Előzmény: pimre (22895)
pimre Creative Commons License 2013.10.30 0 0 22895

Ebben nagyon konzervatív vagyok. Még mindig a 2003-assal dolgozom. (Csak végső esetben, ha majd jövőre beszűntetik ennek is a támogatását az XP-vel együtt - ha jól tudom - akkor fogok áttérni). De hát a tömbfüggvényt a 2003-as is ismeri.

 

Viszont a kérdésed után kipróbáltam egy masik gépemen 2007-es változat alatt, és ott működik. Akkor most már csak azt kell tisztáznom magammal, hogy a két verzió közti különbség okozza-e a hibát, vagy az asztali gépemen a 2003-as valamelyik beállítása okoz gondot.

Előzmény: Fferi50 (22894)
Fferi50 Creative Commons License 2013.10.30 0 0 22894

Szia!

 

Milyen excel verziód van? Nálam 2010-en a kompatibilis üzemmódban megnyitva a #Szám!-ot azonnal átírja számra, amit dátumformátumosíthatok.

 

Üdv.

Előzmény: pimre (22892)
hunterzsolt Creative Commons License 2013.10.30 0 0 22893

Azt hittem így már egyszerűbb lesz, de ahogy az lenni szokott, tévedtem! A makró amit küldtél tökéletesen működik le a kalappal!
Úgy gondoltam, hogy ha mégegyszer bemásolom a makrót, de módosítom a célokat, úgy frankón működni fog ugyanazon a lapon! Hát nem! Szóval az amire kellett, hogy az adatokat egy másik munkalapról áthozza hivatkozással együtt, az működik, de én ugyanezen a lapon szeretném ezt még egyszer alkalmazni, csak más célterületre! 

Jelenleg: A D oszlopban változtatok, és a hozzá tartozó dokumentum megjelenik a H oszlopban!

Viszont nekem szükségem lenne arra, hogy a C oszlopban amit kiválasztok, az ahhoz tartozó dokumentumot ugyanúgy áthozza a másik "ADAT" munkalapról a G oszlopba! 

Ha a makrót bemásolom, akkor a keres kifejezésre hibát dob ki, de valószínűleg, ha ezt orvosolnám, akkor jönnének a többi hibák is! Van megoldása ennek! Ha igen, akkor milyen infora lenne szükség a segítségben?

Köszi előre is!

Előzmény: Delila10 (22887)
pimre Creative Commons License 2013.10.30 0 0 22892

De valami egyéb hiba kell, hogy legyen nálam. Ha az A és F oszlopokba számokat írok, és ehhez kötöm a tömbfüggvényt pl.: =MAX(HA(F:F=2;A:A)), akkor is #SZÁM! az egyes cellák értéke.

Előzmény: pimre (22891)
pimre Creative Commons License 2013.10.30 0 0 22891

Köszönöm. Ha jól értem, arra gondolsz, hogy - tekintettel arra, hogy az F oszlopnak csak az első 7 sorát töltöttem ki - csak az első 7 sorba írjam a tömbfüggvényt?

 

Kipróbáltam így is, sajnos változatlan eredménnyel. Kipróbáltam úgy is, hogy egy munkalapon csak az első néhány sort töltöttem ki, a tömbfüggvény nekem így sem működik a mintapéldámban megadott szerkezetű adatokkal:-(

 

Előzmény: Delila10 (22888)
hunterzsolt Creative Commons License 2013.10.30 0 0 22890

Oké, meglett a hiba és javítva! Most már minden ok! Köszönöm mindenkinek a sok segítséget! :)

Előzmény: hunterzsolt (22889)
hunterzsolt Creative Commons License 2013.10.30 0 0 22889

Köszi, működik, még pluszba kért egy End If sort,  de végül is összejött! A baj az, hogy így az előző dátumbeíráshoz használt makró csak akkor írja ki a dátumot, ha a cél mezőbe szerkesztek! Eddig úgy zajlott, hogy a soron belül bárhol változtatok, a dátum azonnal beíródik! Ahhoz is használok modul-t és thisworkbook-ot

Ez a munka1 makrója:

Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
Dim sorBeir As Integer, nev 'helyfoglalás a változókhoz
If Target.Column = 4 Then 'ha a bevitel oszlopa a B, akkor
nev = Target.Value 'a nev válztozó vegye fel a kiválasztott értéket
sorBeir = Target.Row 'a sorBeir változó vegye fel a beírás sorának a számát
Keres nev, sorBeir 'Meghívjuk a Keres makrót, átadva a nev és sorBeir változók aktuális értékét
If Target.Count > 1 Then _
MsgBox "Ha több cellát szerkesztesz egyszerre, nem működik.": Exit Sub
If Target.Column > 1 Then
Call AddDate_sh(Target.Row)
With ActiveSheet
If Application.WorksheetFunction.CountA(.Range(.Cells(Target.Row, "B"), _
.Cells(Target.Row, "G"))) = 0 Then Call RemoveDate_sh(Target.Row)
End With

End If

End If

End Sub

 

Ez a ThisWorkbook:

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Call LockCells_sh

End Sub

Private Sub Workbook_Open()

Call LockCells_sh

End Sub

Ez a modul1 (az első makrómhoz):

Option Explicit

'made by RHCPgergo
'nagy.gergely1888@gmail.com

Sub LockCells_sh()

Dim Rng As Range

With Munka1
.Unprotect "jelszavam"
.Cells.Locked = False
For Each Rng In .Range("A1:A30")
If Rng.Value <> "" Then Rng.EntireRow.Locked = True
Next Rng
.EnableSelection = xlUnlockedCells
.Protect "jelszavam", UserInterfaceOnly:=True
End With

End Sub

Sub UnProtect_sh()
ActiveSheet.Unprotect "jelszavam"
End Sub

Sub AddDate_sh(MyRow As Long)
Munka1.Range("A" & MyRow).Value = Now
Columns(1).AutoFit
End Sub

Sub RemoveDate_sh(MyRow As Long)
Munka1.Range("A" & MyRow).Value = ""
End Sub

És ez, amit Te küldtél:

Sub Keres(nev, sorBeir)
Dim sor As Integer
sor = Application.WorksheetFunction.Match(nev, Sheets("Adatok").Columns(5), 0) 'Az Adat lap G oszlopában (6) meghatározza a nev változó sorát (a HOL.VAN függvény VBA-s megfelelője a Match)
Sheets("Adatok").Range("E" & sor).Copy Sheets("Munka1").Range("H" & sorBeir) 'másolás
End Sub

Ezeket használom jelenleg!

Előzmény: Delila10 (22887)
Delila10 Creative Commons License 2013.10.30 0 0 22888

NE teljes oszlopokra írd meg a tömbfüggvényt, hanem csak a kitöltött területekre. Akkor működik.

Előzmény: pimre (22886)
Delila10 Creative Commons License 2013.10.30 0 0 22887

Olyan aprók a karakterek, hogy nem sokat tudok kivenni belőlük, pl. nem látszik, hogy a feltételek melyik oszlopokra vonatkoznak.

 

Azért próbáld meg, hogy a 2. makróból az összes sort átteszed az első elejére, a másodikat pedig megszünteted.

Előzmény: hunterzsolt (22885)
pimre Creative Commons License 2013.10.30 0 0 22886

Hát akkor jobb híján megadom a tesztfájlt, hátha abból kiderítite, hogy mit bénázok el: http://data.hu/get/7079712/tombfuggveny_teszt.xls

 

Előzmény: tbando (22882)
hunterzsolt Creative Commons License 2013.10.30 0 0 22885

Sajnos nem tudom futtatni a makrót, mert már azonos "nevű" függvény van a szerkesztőben, ami megadja a sorbeírás dátumát!

Adok egy képet! Össze tudom rakni a 2 makrót, hogy egy "néven" szerepeljenek?

Előzmény: Delila10 (22866)
NeomatiK Creative Commons License 2013.10.30 0 0 22884

Köszi. Annyira nem érdekes, mert egy külön oszlopban van egy sorszám azonosítója, az alapján tudok szűrni. Csak ugyebár a sorszámból nem látom, hogy az mit takar. Emiatt lenne jobb a szöveg szerinti szűrés.

2007-es excelben megnyitva ugyenezt a munkafüzetet viszont nincs ilyen hiányosság. Nem tapasztalom, hogy 255 karakter lenne a korlát.

Előzmény: tbando (22873)
Fferi50 Creative Commons License 2013.10.29 0 0 22883

Szia!

 

Próbáld így beírni az F oszlopot:  ="Aktív" és ="Inaktív"

Szerintem akkor működik a képlet.

(Az A oszlopban valódi dátumértékek legyenek a beíráskor.)

 

Üdv.

Előzmény: pimre (22881)
tbando Creative Commons License 2013.10.29 0 0 22882

Szia!

 

Elképzelni sem tudom mi a probléma nálad. Most újra teszteltem a képletet dátumokkal, normál számokkal, és működik. A dátumokat beírtam stringnek is, de akkor 0-t ad eredményül és nem #SZÁM! hibát. A képlettel mindenféle hibát (#érték!, #név!), elő tudtam idézni, de #szám!-ot azt nem. Tehát elképzelni sem tudom, hogy nálad mi okozhatta. Talán a dátumok számformátuma nem megfelelő. Próbáld ki a képletetet normál számokkal is, ha azokkal működik, akkor nagy valószínűséggel a dátumfomádat nem szereti. Ha nem, akkor valami excelbeállítási probléma lehet. Nálam a Lotus kompatibilitás szokott időnként nem várt eredményhez vezetni. Lehet hogy nálad is van valami extremítás. Ha nem boldogulsz, küldd el priviben, hagy nézzem meg én is.

 

És végül: Van egy olyan gyanúm, hogy valamit egészen másképp csinálsz mint kéne. Ezt abból gondolom, hogy ezt írod:  "de valamennyi cellában #SZÁM! az érték, akár aktív, akár inaktív szó áll az F mezőben". Hol vannak ezek a valamennyi cellák? Amikor összesen  csak 1 cella értéke fűgg az F mezőbeli beírásoktól. A max képleté.

 

Előzmény: pimre (22880)
pimre Creative Commons License 2013.10.29 0 0 22881

Nem hosszú 1-re, hanem hosszú í-re. És nem megoldásogra, hanem megoldásodra (és nem osztogatnak, hanem fosztogatnak:-)))

Előzmény: pimre (22880)
pimre Creative Commons License 2013.10.29 0 0 22880

Akkor most egy pillanatra visszatérnék egy több mint 3 hete elhangzott megoldásogra, a tömbképletre.  Djmorphy 22505-ös kérdésére az =Max(ha(F:F=äktiv";A:A)) képletet javasoltad megoldásnak tömbképletként beírva.

Érdekelt a dolog, kipróbáltam, és nekem semmiképp sem akar összejönni. A tömbképlet rendben megjelenik {=MAX(HA(F:F="aktív";A:A))}, de valamennyi cellában #SZÁM! az érték, akár aktív, akár inaktív szó áll az F mezőben. Az A oszlopban dátumok vannak 2013.01.01, 2013.01.02 stb. formában, az F oszopban aktív, vagy inaktív, ügyelve a hosszú 1-re.

Ha a függvényből a MAX() részt elhagyom, akkor is ugyanez az eredmény.

 

Vajon ez miért nem működött nálam. Akkor nem akartam rögtön megzavarni a dolog megoldását a kérdésemmel, de azért továbbra is érdekel.

 

 

 

Előzmény: tbando (22507)
Sánta Kutya (SK) Creative Commons License 2013.10.29 0 0 22879

Ezt hívja Dale Carnegie mesterelmének, ezért érdemes ilyen fórumokban tagnak lenni.

Előzmény: tbando (22878)

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