Keresés

Részletes keresés

Delila_1 Creative Commons License 2010.06.29 0 0 12190

"a sor eleji space-eket az Index lakapta... ". Nem mindegy, melyik böngészőből hívod meg a fórumot, erre Jimmy jött rá. Az IE szépen hozza a tagolást (csak itt használom).

 

Itt a módosított verzió:

 

Sub summa_1()
    Dim oszlop As Integer, lap As Integer, oszlop_1 As Integer
    Dim sor As Integer
   
    For lap = 1 To ThisWorkbook.Sheets.Count - 1
        Sheets(lap).Select
       
        For sor = 1 To 150
            If Sheets("Összesítő").Range("IV" & sor).End(xlToLeft).Column = 1 Then
                oszlop_1 = 4
            Else
                oszlop_1 = Sheets("Összesítő").Range("IV" & sor).End(xlToLeft).Column + 1
            End If
           
            For oszlop = Range("IV" & sor).End(xlToLeft).Column To 1 Step -1
                If Cells(sor, oszlop) > "" Then
                    Sheets("Összesítő").Cells(sor, oszlop_1) = Cells(sor, oszlop)
                    oszlop_1 = oszlop_1 + 1
                End If
            Next
        Next
    Next
           
End Sub

Előzmény: BBazsi (12187)
Sánta Kutya (SK) Creative Commons License 2010.06.29 0 0 12189
Persze, még a mezei HTML is lekapja. Ez kivételesen nem az Index bűne. Írd azt, hogy   (nem törhető szóköz).
Előzmény: BBazsi (12188)
BBazsi Creative Commons License 2010.06.29 0 0 12188
Vaze,a sor eleji space-eket az Index lakapta... :(
Előzmény: BBazsi (12187)
BBazsi Creative Commons License 2010.06.29 0 0 12187
Visszakanyarodva... :)

Valamiért nem bírtunk leszakadni erről a 10. sorról, miközben a sok információ között elrejtve :) ott lapult, hogy van vagy 150 vizsgálandó sorom is (!) munkalaponként. Nyafogás helyett (nagy kedvvel, de segédlet nélkül) belevetettem magam a VB makróírásba, így most már van egy új ciklusom az eddigieken felül (ováció!). Már csak egyetlen kérdésem lenne: nem találom a szintaktikáját a Range változó (?) argumentumának. A te makródban ez "IV10", ami, ahogy rájöttem a ctrl-end megfelelője a 10. sorban (ugye?). Hogy lehet ezt "univerzálissá" tenni, hogy az esetemben "For sor=1 to 150" ciklus bármely sorában érvényes legyen? Ui. akármilyen szintaktikával próbálkoztam, nem jött be.

jelenleg így állok:

Sub summa()
Dim oszlop As Integer, lap As Integer, oszlop_1 As Integer, sor As Integer

For sor = 1 To 150 'paraszt módszer/1
oszlop_1 = 4 'nekem így jó
For lap = 1 To ThisWorkbook.Sheets.Count - 1 'ez tiszta
Sheets(lap).Select
For oszlop = 1 To 20 'paraszt módszer/2-kínomban, és step -1 nélkül a fasza
If Cells(sor, oszlop) > "" Then
Sheets("Összesítő").Cells(sor, oszlop_1) = Cells(sor, oszlop)
oszlop_1 = oszlop_1 + 1
End If
Next
Next
Next
Sheets("Összesítő").Select
End Sub

Range("IV150"), Range ("IV"; sor) és hasonlókkal próbálkoztam, de egyik sem kóser...
Előzmény: Delila_1 (12181)
stromba Creative Commons License 2010.06.29 0 0 12186

Sziasztok

 

Adott egy táblázat (70 sor, 9 oszlop). Az első 3 sor rögzítve van. A táblázat mellett van egy chart (5. sortól). Amit szeretnék megoldani, az az hogy ha a táblázatot gördítem hogy az alsó sorok is látszódjanak, akkor a mellette levő chart is mozogjon - maradjon látható. (excel 2007)

 

Azt sejtem hogy a munkalap SelectionChange eseménye lesz a barátom, de hogyan?

 

 

 

stromba Creative Commons License 2010.06.28 0 0 12185
Előzmény: k-betti (12132)
Delila_1 Creative Commons License 2010.06.25 0 0 12184
Szívesen.

SQL! Így jár, aki csavarog. :)
Előzmény: BBazsi (12182)
SQLkerdes Creative Commons License 2010.06.25 0 0 12183
Ez az élet rendje.
Én kitartó kérdezősködéssel megszerzem az összes infót, Delila meg learatja a babérokat ...

:-)
BBazsi Creative Commons License 2010.06.25 0 0 12182

Örök hála! (Most értem vissza gépközelbe.)

Köszi!

Bazsi

Előzmény: Delila_1 (12181)
Delila_1 Creative Commons License 2010.06.25 0 0 12181

Ha a sorrend mindegy, ez a makró elintézi. Az utolsó lap legyen az, ahol összesítesz, a makróban ez Összesítő névre hallgat.

 

Sub summa()
    Dim oszlop As Integer, lap As Integer, oszlop_1 As Integer
   
    oszlop_1 = 1
    For lap = 1 To ThisWorkbook.Sheets.Count - 1
        Sheets(lap).Select
        For oszlop = Range("IV10").End(xlToLeft).Column To 1 Step -1
            If Cells(10, oszlop) > "" Then
                Sheets("Összesítő").Cells(10, oszlop_1) = Cells(10, oszlop)
                oszlop_1 = oszlop_1 + 1
            End If
        Next
    Next
           
End Sub

Előzmény: BBazsi (12180)
BBazsi Creative Commons License 2010.06.25 0 0 12180
No link.
A számszerű értékek ömlesztve: A10,B10,C10,D10... cellákba
Még a sorrend is mindegy.
Előzmény: SQLkerdes (12179)
SQLkerdes Creative Commons License 2010.06.25 0 0 12179
Utolsó kérdés:
Az összesítő megfelelő sora a munkalap megfelelő cellájának értékét mutassa vagy egy linket a megfelelő cellára?
Előzmény: SQLkerdes (12177)
BBazsi Creative Commons License 2010.06.25 0 0 12178
Előre is kösz!
Előzmény: SQLkerdes (12177)
SQLkerdes Creative Commons License 2010.06.25 0 0 12177
Ilyen függvény, ha van is, a nem-éri-meg kategóriába tartozik.
Ez makro lesz, nem túl bonyi, de most el kell menjek, szóval a kódot hátha valaki beszúrja. Délután megint erre járok, ha addig nincs meg, akkor megírom.
Előzmény: BBazsi (12174)
BBazsi Creative Commons License 2010.06.25 0 0 12176
(Basszus, most olvastam a zárójeles részedet, ugyanazt magyarázod. :))
Előzmény: SQLkerdes (12173)
BBazsi Creative Commons License 2010.06.25 0 0 12175
YESSS!
Simán, balról jobbra feltöltve.

(Mivel sok fül van, nem is lehetne elvárni, hogy ugyanaz a cella -oszlop- gyűjtse ki az összes többiét.)
Előzmény: SQLkerdes (12173)
BBazsi Creative Commons License 2010.06.25 0 0 12174
Egyáltalán van-e ilyen mátrixfüggvény. Ha nincs, nyilván az utolsó fül tartományon belüli minden cellájának tartalmaznia kell egy rohadt hosszú vizsgálati képletet (ezt akartam elkerülni).
SQLkerdes Creative Commons License 2010.06.25 0 0 12173
És ezek milyen sorrendbe kerüljenek az összesítő fülre? Mondjuk ha a Munka1-en van 2 adat a 10. sorban, a Munka2-ben meg csak egy, akkor az Összesítő A10 és B10 mutassa a Munka1 adatait, majd az Összesítő C10 a Munka2-t?

Szóval csak balról jobbra feltöltve?

Vagy: Ha a Munka1-en a D10-ben van adat akkor az az Összesítőn is a D10-be kerüljön (persze ehhez biztosnak kell lenni benne, hogy semmi más munkalapon nem lesz tartalma a D10-nek, mert akkor kettő tartalmat kellene betaposni egy cellába).
Előzmény: BBazsi (12169)
BBazsi Creative Commons License 2010.06.25 0 0 12172
Nem, semmi összehasonlítás, csak annak vizsgálata kellene, hogy van-e szám az adott cellában (ez esetben röpül az érték az utolsó fül adott sorának a végére), vagy nincs.
Előzmény: szkripnyik (12171)
szkripnyik Creative Commons License 2010.06.25 0 0 12171
Tehát: Valamelyik fül adott sorában bármely mezőjének értéke megegyezik-e valamelyik másik fül ugyanazon sorában valamelyik mező értékével?

Szerintem szép for ciklusok egymásba ágyazva....
Előzmény: BBazsi (12164)
BBazsi Creative Commons License 2010.06.25 0 0 12170
Ja, kizárólag számszerű értékekről van szó, semmi szöveg és egyéb nyalánkság.
BBazsi Creative Commons License 2010.06.25 0 0 12169
Ja, csak egy, vagy egy sem, esetleg 13, esetleg az összes, ahogy a számítás adja (A feltételek nem teljesülése esetén a cellák értéke: "" ,azaz semmi.) (De lehet nulla is, ha úgy könnyebb.)
Előzmény: SQLkerdes (12168)
SQLkerdes Creative Commons License 2010.06.25 0 0 12168
Ez azt jelenti, hgoy az egyes fülek 10. sorában valahol van egy, de csak egy adat és azt kell megtalálni és rátenni az összesítő fülre?
Előzmény: BBazsi (12166)
BBazsi Creative Commons License 2010.06.25 0 0 12167
Igen, mondjuk nekem magyar nyelvű, így Munka1, Munka2 stb.
Előzmény: SQLkerdes (12165)
BBazsi Creative Commons License 2010.06.25 0 0 12166
... tehát csak mezei módon, libasorba kigyűjteni, semmi szummázás és egyéb műveletek.
SQLkerdes Creative Commons License 2010.06.25 0 0 12165
Mi a munkalapok elnevezésének szabályai? Sheet1, Sheet2, etc?
Előzmény: BBazsi (12164)
BBazsi Creative Commons License 2010.06.25 0 0 12164

Excel guruk, please!

 

Köszi, Delila, de biztosan pontatlan voltam, ez  így nyilvánvaló.

 

A harmadik fül (pl.) 10. sorában kellene kigyűjteni a többi fül 10. sorát, ui. nem feltétlenül a B,F,C,K stb. oszlopokban jelenik meg érték, hanem a 10-es sorok (egyéb képletek által generált) BÁRMELY cellájában (oszlopában) megjelenhet!!!

 

(A valóságban van vagy 30 fül és mindegyiken 25 oszlop-50 sor, a 31-edikben szeretnék összesítést készíteni soronként!)

 

Köszi!

Előzmény: Delila_1 (12161)
SQLkerdes Creative Commons License 2010.06.25 0 0 12163
Ugyanúgy ahogy a munkalapokon.
A Find résznél kattints rá az Options gombra és ott be lehet állítani, hogy munkalapot (Sheet) v. munkafüzetet (workbook) nézzen át.
Előzmény: falum (12162)
falum Creative Commons License 2010.06.25 0 0 12162
Sziasztok!

Egy kérdésem lenne:hogyan lehet keresni az excelben a munkafüzetek között? A munkalapok közötti keresést már megoldottam,de ezt még nem sikerült.

Előre is köszönöm a választ:

üdv, falum
Delila_1 Creative Commons License 2010.06.25 0 0 12161
A harmadik fülön:

A10 -> ='első fül'!B10
B10 -> ='első fül'!F10
C10 -> ='második fül'!C10
D10 -> ='második fül'!K10

Ha a lapok neve 1 szóból áll, és ez nem szám, az aposztrófok elhagyhatók.
Előzmény: BBazsi (12160)
BBazsi Creative Commons License 2010.06.25 0 0 12160
Sziasztok!
Egy kis segítséget kérnék: különböző füleken található (azonos) sorok tartalmát szeretném egy külön fülön kigyűjtögetni, szépen sorban egymás mellett.

Pl. az első fül tizedik sorában van 2 szám (mondjuk a "B10" és az "F10" cellában), a második fül "C10" és "K10" cellájában szintén egy-egy szám stb., ezeket szeretném kigyűjteni harmadik fül 10. sorába, A10,B10,C10,D10... cellákba.

Van erre mód?
Előre is kösz!!
k-betti Creative Commons License 2010.06.24 0 0 12159
Köszi neked is. Majd kipróbálom a részösszeget is, de egyelőre a fejléc tűnt a legjobb megoldásnak, mert így kevesebbet kell formáznom (oda, ahol a fejléc kerül, nem kell rács, a táblázat többi része meg rácsos.... csupa-csupa felesleges klikk :)
Előzmény: Delila_1 (12146)
k-betti Creative Commons License 2010.06.24 0 0 12158
Köszi
Előzmény: SQLkerdes (12149)
Redlac Creative Commons License 2010.06.24 0 0 12157
Az elkészítése alatt hol ezzel, hol azzal mentettem, de az utolsó talán 2007-el.

De ha nálad rossz volt, akkor az én 2007-esemen miért jó?
Előzmény: Törölt nick (12156)
Törölt nick Creative Commons License 2010.06.24 0 0 12156
Én 2007-essel néztem és "rossz" volt.
Felmerül bennem a kérdés hogy mivel mentetted el? 2003-as v. 7-es?
Bár alighanem nem bír semmilyen jelentőséggel.
Előzmény: Redlac (12155)
Redlac Creative Commons License 2010.06.24 0 0 12155
De ha a lapon lenne hiba, akkor a 2007-es miért kezeli probléma nélkül?
Előzmény: Delila_1 (12127)
Delila_1 Creative Commons License 2010.06.24 0 0 12154
Igaz.

A For Each helyett elég ez:

intVisible = Application.WorksheetFunction.CountA(Columns("A:A").SpecialCells(xlCellTypeVisible))-13

Előzmény: SQLkerdes (12149)
tagore72 Creative Commons License 2010.06.24 0 0 12153
Szia!

Gondolom, igen:
Kimutatáson állva, beszúrás menü - diagram vagy
Kimutatáson jobb egér, Kimutatásdiagram menü

Joe
Előzmény: SQLkerdes (12152)
SQLkerdes Creative Commons License 2010.06.24 0 0 12152
Mijaza kimutatás diagram? Pivot Chart?
Előzmény: tagore72 (12151)
tagore72 Creative Commons License 2010.06.24 0 0 12151
Sziasztok!

Dühöngök, de lehet, hogy van megoldás:

Excel 2003-ban készítettem egy kimutatást, abból egyszerűen
csináltam egy kimutatás diagramot, csodásan működik.

Excel 2007-ben megnyitva viszont nagyon sz.r lett:
- A külön fülön levő kimutatásdiagram, nem az lett,
mert nincsenek rajta a kimutatás szűrők (azaz a feltételelek),
így aztán át kell menni a kimutatásra, szűrni, majd vissza a diagramra,
hát ez így nagyon vacak!
- Ha Excel 2007-ben készítek a kimutatásból diagramot,
akkor meg nem külön fülre teszi, pláne nem szűrőkkel,
így meg aztán lehet kerülgetni a kimutatást, h a diagram is jól látszódjon.

Ezt hogy bírták így elrontani, nem értem, vagy csak én nem értek hozzá?


Joe
SQLkerdes Creative Commons License 2010.06.24 0 0 12150
Igen, de neki a fejlécben kell!
Előzmény: Delila_1 (12146)
SQLkerdes Creative Commons License 2010.06.24 0 0 12149
A workbook kódlapjára rakd ezt a kódot.
Teendők: változtasd meg a strsheetname="sheet1"
sort úgy, hogy a sheet1 helyére a te munkalapod nevét írod.
Pld. ha az autoszűrést tartalmazó munkalapodnak az a neve, hogy leltár, akkor a kód helyesen úgy néz ki, hogy:
strsheetname="leltár"

Ez a kód azt csinálja, hogy minden nyomtatás előtt automatikusan beállítja a fejlécet a megfelelő szövegre 15-ös betűtipussal. Ha nagyobbat akarsz akkor a kódban lévő két 15-öt cseréld ki arra a számra, amit betűméretnek szeretnél. Mindkettőt!



Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim intVisible As Integer
Dim rng As Range
Dim strSheetname As String

strSheetname = "Sheet1"

For Each rng In Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Areas
intVisible = intVisible + rng.Rows.Count
Next rng

intVisible = intVisible - 1 'A fejléc nem számít bele

Sheets(strSheetname).PageSetup.CenterHeader = "&15 A lista tartalmaz " & intVisible - 12 & " elemet. &15"


End Sub
Előzmény: SQLkerdes (12145)
Delila_1 Creative Commons License 2010.06.24 0 0 12148
Beállatások->Beállítások :D
Előzmény: Delila_1 (12147)
Delila_1 Creative Commons License 2010.06.24 0 0 12147
A Beállatásoknál az Általános fülön van egy ilyen opció: Adatlap kitöltését felajánlja.
Ekörül lehet talán valami, kapcsold ki.
Előzmény: Novalgin (12142)
Delila_1 Creative Commons License 2010.06.24 0 0 12146
Minek ehhez makró?
Egyszerűen beírod egy sorba - a táblázatodon kívül - valahova a függvényt.

=részösszeg(103;A:A)-13

és megformázod kedved szerint. Ez mindig a szűrésnek megfelelően mutatja a szűrt sorok számát, levonva a fölötte lévő 12 sort, és a címsort.

Off topic
SQL! a fekete öv rágalom! :)
Előzmény: k-betti (12143)
SQLkerdes Creative Commons License 2010.06.24 0 0 12145
Az új kód a betűméret változtatás nélkül:
****************************************

Sub ChangeHeader()

Dim intVisible As Integer
Dim rng As Range

For Each rng In Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Areas
intVisible = intVisible + rng.Rows.Count
Next rng

intVisible = intVisible - 1 'A fejléc nem számít bele

With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = "A lista tartalmaz " & intVisible-12 & " elemet."
.RightHeader = “”
.LeftFooter = “”
.CenterFooter = “”
.RightFooter = “”
End With
End Sub
Előzmény: k-betti (12143)
SQLkerdes Creative Commons License 2010.06.24 0 0 12144
Van az excelben azt hiszem egy olyan funkció, hogy eltávolítja a személyes adatokat a lementett file Properties részéből.

Lehet ez be van állítva és ezzel gyűlik meg a baja a gépednek.
Előzmény: Novalgin (12142)
k-betti Creative Commons License 2010.06.24 0 0 12143
Asszem maradok a makrónál.

Azt meg lehetne csinálni, hogy azt a számot írja ki, hogy mennyivel nagyobb, mint 12? És úgy, hogy a szám ne a sor végén legyen? És lehet-e betűméretet növelni? Próbálkoztam, de nem sikerült...

Pl.: A lista tartalmaz .... (autoszűrőzött eredmény mínusz 12) elemet
Előzmény: SQLkerdes (12133)
Novalgin Creative Commons License 2010.06.24 0 0 12142
Mentésnél mindig felugrik ez a hibaüzenet, de ad hoc jelleggel bármikor támad, függetlenül attól, hogy épp mit csinálok.
hyperstoke Creative Commons License 2010.06.24 0 0 12141
köszönöm szépen a válaszokat és főleg, hogy ilyen gyorsan jött

az első kérdésemmel kapcsolatban azért szenvedtem, mert én fordítva akartam módosítani, tehát kettőspontosra akartam módosítani a simát :D
Ebből látszik, hogy amikor sietne az ember, nem tud józan paraszti ésszel gondolkozni :D

köszi még1x
Sánta Kutya (SK) Creative Commons License 2010.06.24 0 0 12140
Ha már nem frissítettem az előbb:
A nagy lista mellé készítesz egy oszlopot a kis listából így: =HELYETTE([kicsi.xls]munkalapneve!A2;":";""), és ezt lefelé folytatod. Mind a két táblázat legyen megnyitva.

Most már egymás mellett vannak, vagy a nagy lista elemei mellé írsz egy darabtali függvényt, ami mutatja, hányszor szerepel az adott elem a kicsiban (praktikusan 0 vagy 1), és aszerint rendezel, vagy feltételesen formázod ugyancsak a darabteli függvénnyel.
Előzmény: hyperstoke (12138)
Sánta Kutya (SK) Creative Commons License 2010.06.24 0 0 12139
00:0X:08:Y0:XY:88 --> =HELYETTE(A1;":";"") --> 000X08Y0XY88
Előzmény: hyperstoke (12135)
hyperstoke Creative Commons License 2010.06.24 0 0 12138
Az a lényeg, hogy a nagy listában ki kell jelölnöm azokat az eszközöket, amelyek a kicsiben benne vannak. Amik pedig nincsenek benne, azokat az eszközöket kell majd a késbbiekben begyűjtenem.
Előzmény: SQLkerdes (12137)
SQLkerdes Creative Commons License 2010.06.24 0 0 12137
A lépések:
1.) a MAC címek azonos formátumra hozása
2.) egyezőségek azonosítása

Megoldás:

1.) SUBSTITUTE függvény. Ha pld a 00:0X:08:Y0:XY:88 formátumú MAC cím a B1 cellában van, akkor el tudod távolítani a kettőspontokat a következő módon: =SUBSTITUTE(B1,":","")

2.) VLOOKUP függvényt teszel a nagyobb lista minden sora mellé, hogy keresse meg van-e egyező MAC cím a kisebb listában.
Ha megadod a két táblázat szerkezetét, akkor a VLOOKUP megírásával is szívesen segítünk. Mit akarsz látni ha egyezés van? A kis lista egy elemét (pld felhasználónév) vagy csak annyit, hogy "Van kislista elem"?

3.) akár még Feltételes formázással is megjelölheted a nagy lista azon elemeit amiknek nincs kislista párjuk (de ehhez is kell mindkét lista szerkezete)
Előzmény: hyperstoke (12135)
hyperstoke Creative Commons License 2010.06.24 0 0 12136
ja és office 2003 van a gépen, köszi előre is
Előzmény: hyperstoke (12135)
hyperstoke Creative Commons License 2010.06.24 0 0 12135
üdv

van két táblázatom, az egyikben több ezer sor, a másikban kb 1000 sor, a feladatom az lenne, hogy megnézzem a kisebb lista szerepel-e a nagyobbik listában.

A gond csak az, hogy egy oszlop egyezés van a kettőben, ami viszont MAC cím, és más formában van két listában. Az egyikben 000X08Y0XY88, míg a másikban 00:0X:08:Y0:XY:88.

A kérdésem az, hogy lehet módosítani az első formátumot a másodikra, hogy egyezést találjon az excell? Illetve, ki lehet valahogy íratni, vagy jelöltetni a nagy táblában, hogy melyek azok, amelyek nincsenek benne a kicsi listában?
Dulifuli Creative Commons License 2010.06.24 0 0 12134
Ma volt egy érdekes hiba, amire nem tudtam mit mondani. Office 2002 van a gépen, és amikor egy hálózati meghajtón található XLS-re kattintott kétszer a felhasználó, akkor elindult az Excel, csak éppen az állomány nem jelent meg benne. Csak egy szürke mező látszott, alul pedig kiírta, hogy Kész, és semmi más nem történt. Ugyanakkor - illetve utána - a Megnyitás funkcióval már sikerült megnyitni az állományt, és látszott rendesen. Viszont amikor újra kipróbáltuk, azaz becsuktuk az Excelt (még a Feladatkezelőben is ellenőrizve, hogy már nem fut), és újra megpróbáltuk kettős kattintással megnyitni az XLS-t, akkor ismét ugyanez történt. Látott már valaki ilyet? Mi lehet a gond, illetve a megoldása?
A gépen Windows XP van, SP3-mal.
SQLkerdes Creative Commons License 2010.06.24 0 0 12133
Nem tom. RESZOSSZEG?
Ha a RESZOSSZEG(102,A:A) függvényt használod, akkor a függvény maga ne legyen az A oszlopban (különben beleszámolódik) és vonj le az eredményből 1-et (a fejléc miatt).
Előzmény: k-betti (12132)
k-betti Creative Commons License 2010.06.24 0 0 12132
Köszi, ezt ki is próbáltam, sikerült.

A SUBTOTAL-nak mi a magyar megfelelője?

Köszi
Előzmény: SQLkerdes (12130)
SQLkerdes Creative Commons License 2010.06.24 0 0 12131
És ahogy elnézem a SUBTOTAL(102, A:A) is megfelel a célnak
SQLkerdes Creative Commons License 2010.06.24 0 0 12130
Na, szóval itt van.
A makrót minden nyomtatás előtt le kell futtatni.
A kért adat a középső fejlécbe kerül, minden más fej- és lábléc üressé válik. Ha máshol van szöveg akkor a releváns részt érdemes kivenni a kódból.


Sub ChangeHeader()

Dim intVisible As Integer
Dim rng As Range

For Each rng In Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Areas
intVisible = intVisible + rng.Rows.Count
Next rng

intVisible = intVisible - 1 'A fejléc nem számít bele

With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = "A szûrés utáni sorok száma: " & intVisible
.RightHeader = “”
.LeftFooter = “”
.CenterFooter = “”
.RightFooter = “”
End With
End Sub
SQLkerdes Creative Commons License 2010.06.24 0 0 12129
Makróval:

Sub ChangeHeader()
With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = ""
.RightHeader = “”
.LeftFooter = “”
.CenterFooter = “”
.RightFooter = “”
End With
End Sub

Az idézőjelek közé kell betenni a kiirandó tartalmat.
Arra tuti van valami függvény, hogy az autoszűrt sorok számát kiszámold, csak én nem tudom.
Szóval ha jár erre valaki, aki tudja a megfelelő kódot erre az egy adatra, akkor azt a kódot kell betenni a megfelelő idézőjelek közé.

Delila, aki feketeöves a change események kódolásában, lehet még azt is meg tudja csinálni, hogy az autószűrő alkalmazásakor automatikusan lefussan a megfelelő kód.
Előzmény: k-betti (12128)
k-betti Creative Commons License 2010.06.24 0 0 12128
Sziasztok!

Van-e megoldás arra, hogy az autoszűrőzött sorok számát a feljlécbe (ahol meg tudom adni az oldalak számát, stb.) automatikusan kiírja?

Köszi előre is
Delila_1 Creative Commons License 2010.06.24 0 0 12127
Akkor eléggé egyértelmű, hogy a lapon van a hiba. Vidd át az adatokat egy új lapra, ezt meg töröld ki.
Előzmény: Redlac (12125)
Redlac Creative Commons License 2010.06.24 0 0 12126
Ha valaki még gondolja, szívesen átküldöm a fájlt, hátha kiesik a bug.
Előzmény: Redlac (12125)
Redlac Creative Commons License 2010.06.24 0 0 12125
De még, ami fura. Egy új lapon vizsgálva az időpontot, nem jelez hibát, csak a táblázatban.
Előzmény: Delila_1 (12124)
Delila_1 Creative Commons License 2010.06.24 0 0 12124
Szerintem is bug lehet, nálam semmi baj az 5:42-vel 2003-ban.
Előzmény: Redlac (12123)
Redlac Creative Commons License 2010.06.24 0 0 12123
A lapvédelem jelszót beleírtam a levélbe, nyugodtan kotorássz a táblázatba :-)

De rájöttem még valamire:

2 oprendszer van a gépemen, az egyiken O2003, a másikon O2007.

A hiba csak a 2003-as office-on jön elő! A 2007-esben tökéletesen működik. A munkahelyünkön természetesen 2003 van. Így gondolom neked is 2007-ed van.

Tehát a probléma összefoglalva (hátha vannak új betérők :-)):

Adott egy fkeres függvény, ami időpontokat keres kb. 200 sorban. Az időpontok formátuma teljesen mindegy, mert próbáltam sima időponttal és számmá alakítottal is. Az időpontok egyformák, mert saját másolatuk. Minden időponttal remekül megy minden, de a 05:42-t nem találja. Hangsúlyozom minden más időpontot megtalálja, és bármelyik sorba írom a 05:42-t, AZT nem találja csak. Ráadásul, hogy hab is legyen a tortán, a problémát csak 2003-as Office alatt produkálja, 2007-es alatt minden szép és jó.

Erre varrjon valaki gombot...lepke ment a gépezetbe?
Előzmény: Törölt nick (12122)
Törölt nick Creative Commons License 2010.06.24 0 0 12122
Figy.
Ha az U58-ból átmásolom értékként beillesztve az X58-ba a számot, akkor megtalálja az fkeres.

Ha a két értéket megvizsgálom = jellel a cellában, akkor IGAZ-at ad.

Továbbá, ha az U58 képletét argumentumonként F9-el értékké alakítgatom, akkor is megtalálja az fkeres az Z58-ban

Ez bug gyanús nekem, még nem láttam ilyet. Vagy pedig valami a S58-ban lévő 05:42-vel nem stimmel. (Amit kétlek) Lehetséges, hogy hibásan számolja értékké az időadatot...

Sok mindent nem tudtam mgenézni a lapvédelem miatt, de ettől függetlenül ez szerintem bug lehet.
Előzmény: Redlac (12121)
Redlac Creative Commons License 2010.06.23 0 0 12121
Ment a mail.
Előzmény: Törölt nick (12120)
Törölt nick Creative Commons License 2010.06.23 0 0 12120
elküldenéd ezt a táblázatot?
Előzmény: Redlac (12119)
Redlac Creative Commons License 2010.06.23 0 0 12119
Kösz, de a hiba ugyanúgy jelentkezik...
Előzmény: Törölt nick (12118)
Törölt nick Creative Commons License 2010.06.23 0 0 12118
Még egy próbát javasolnék:

1. Egy használaton kívüli üres cellába írd be azt, hogy 1 majd enter
2. Állj erre a cellára (ahol az 1-es van), majd másolás (Ctrl+c)
3. Jelöld ki az U oszlopban a kérdéses értékeket tartalmazó cellákat, majd szerkesztés -> Irányított beillesztés -> Szorzás

4. A 2. ill. 3. pontokat csináld meg ismét, csak most az X oszlop kérdéses értékeit jelöld ki.
Előzmény: Redlac (12117)
Redlac Creative Commons License 2010.06.23 0 0 12117
A formátumok ugyanazok :-(

Az ÉRTÉK formájú függvényt kipróbáltam, azzal sem jó :-(
Előzmény: Törölt nick (12116)
Törölt nick Creative Commons License 2010.06.23 0 0 12116

Esetleg nem lehet, hogy valamiért az adott cellák (U58 és az X58) formátuma más mint a többi és számot árrázoló szöveg van valamelyikben?

 

Egy próbát megér:

 

=FKERES(ÉRTÉK(U58);$X$54:$Y$198;2;HAMIS)

Előzmény: Redlac (12108)
Redlac Creative Commons License 2010.06.23 0 0 12115
A két szám teljesen egyforma! Mivel önmaga másolata!

Egyszerűen érthetetlen...
Üres táblázatban minden oké, de amiben használom, abban a 05:42 időpontot nem találja. Minden más időpont jó, csak ez nem.
Találkoztatok már valami ilyesmivel?
Előzmény: szkripnyik (12111)
E.Istvan Creative Commons License 2010.06.23 0 0 12114
Igen én is erre a fapados megoldásra jutottam. És ha már te sem tudsz mást, akkor valószínűleg nincs is. :o) Köszi.
Előzmény: Törölt nick (12113)
Törölt nick Creative Commons License 2010.06.23 0 0 12113
Szerintem nem tudod elkerülni, hogy lefusson. Viszont meg tudod oldani, hogy ne csináljon semmit. Pl:


Public FormState As String

Private Sub UserForm_Initialize()
FormState = "Initialize"
'listbox feltöltése
FormState = "Ready"
End Sub

Private Sub ListBox1_Change()
If FormState = "Initialize" Then Exit Sub
End Sub
Előzmény: E.Istvan (12112)
E.Istvan Creative Commons License 2010.06.23 0 0 12112

Egy mások számára gondolom pofon egyszerű kérdésem lenne.

UserForm_Initialize eljárásban töltök fel egy ListBox objektumot.

Hogyan kell megoldanom, hogy a feltöltés alatt ne fusson le a ListBox_Change esemény. Az Application.EnableEvents ezt nem kezeli, pedig erre gondoltam.

szkripnyik Creative Commons License 2010.06.23 0 0 12111
"...számolja ki percben (ezért is kell sorba rendezni), majd a kijövő perc értéket kellene fkeressel melléírni. ..."

Amit robbantómester is emlegetett:
Konvertáld az eredményt megfelelő formátummal egyforma hosszú stringgé, és így az esetleges láthatatlan számjegyek már nem fognak bezavarni..
Előzmény: Redlac (12110)
Redlac Creative Commons License 2010.06.23 0 0 12110
A két időpont teljesen egyező. Erre rákerestem egy ha függvénnyel is.
Már csak azért is egyező, mert az elsőből hozom létre a mellékelt képen mutatom is:
542

Ezek mind rejtett oszlopok. Az "U" oszlopban lévő adatokat, makró segítségével másolom át és rendezem sorba (egy gomb segítségével), az "X" oszlopban.
Az Y oszlopban a sorba rendezett számok közötti különbséget számolja ki percben (ezért is kell sorba rendezni), majd a kijövő perc értéket kellene fkeressel melléírni. Ezeket az értékeket fogja majd visszamásolni egy másik függvénnyel. A kitöltés jellegéből lehet, hogy adott cellák üresen maradnak, ezért is kell ilyen bonyolultan megoldani a különbség számítást.
A "V" és "W" oszlopok ügyünk szempontjából irrelevánsok.

Külön munkafüzeten kipróbáltam és az 5:42 időpont és az fkeres nem volt haragban egymással. De itten igen, már hullik a hajam. Ha 5:41-et, vagy 5:43-at írok, akkor tökéletes.
Előzmény: Törölt nick (12109)
Törölt nick Creative Commons License 2010.06.22 0 0 12109
Az az 5:42 biztos, hogy annyi - tehát 5:42:00? Vagy esetleg 5:42:00,18?
A századmásodpercet az időformátumban nem biztos hogy látod, viszont értékké alakítva már látsz eltérést.

Ha az utolsó argumentumoz kihagyod, akkot azt "IGAZ" értéknek veszi - tehát a legközelebbi egyezést adja vissza. Ebben az esetben a [TÁBLA] tartománynak sorba rendezettnek kell lennie.
Előzmény: Redlac (12108)
Redlac Creative Commons License 2010.06.22 0 0 12108
Üdv Nektek!


Fkeres függvénnyel kerültem bajba.

Egy (makróval) teljesen sorba rendezett oszlopban keresek.
Az utolsó logikai érték, melyet igaz vagy hamisra teszünk, én hamisra állítottam be.

=FKERES(U58;$X$54:$Y$198;2;HAMIS)

Amire keresünk, azok időpontok számmá alakítva 9 számjegyig. Jó pár hónapja használtuk már, és most a 05:42 időpontnál (számmá alakítva 0,237500000) jelzett "hiányzik" hibát.

Kipróbáltam, hogy az utolsó "hamis" logikai értéket kitöröltem, és úgy megtalálta. Szerintetek ez mitől lehet?

Az a helyzet, hogy a hamis beállítás kell, mert pontos keresési értékre van szükség.


SQLkerdes Creative Commons License 2010.06.22 0 0 12107
Hogy provokáltad ki ezt a hibaüzenetet az excelből?
Előzmény: Novalgin (12106)
Novalgin Creative Commons License 2010.06.22 0 0 12106
Valaki találkozott már az alábbi hibaüzenettel? Érdekelne mit jelent pontosan.
"A célhelyként megadott rendszer nem rendelkezik elegendő memóriával a személyes adatok fájltulajdonságokból történő eltávolításához. A program nem tudja az összes ilyen információt eltávolítani."
Előre is köszönöm a segítséget!
SQLkerdes Creative Commons License 2010.06.22 0 0 12105
Tényleg, emlékszem is.
Előzmény: szkripnyik (12103)
szkripnyik Creative Commons License 2010.06.22 0 0 12104
Legközelebb kipróbálom.
Magyarul: Adatok/Külső adatok importálása/Új WEB lekérdezés....
Kösz...
:-))
Habár ez valószínűleg sok (nekem érdektelen) képet, gombot is leszed...
Előzmény: SQLkerdes (12102)
szkripnyik Creative Commons License 2010.06.22 0 0 12103
Makroval igen. Áprilisban filóztunk is itt róla, hogy miért lassul le ciklusban, és valaki segített is.
Egy-egy oldalnál nem kerestem komolyabb megoldást.
Előzmény: SQLkerdes (12102)
SQLkerdes Creative Commons License 2010.06.22 0 0 12102
webquery-t próbáltál? (Import from webpage)
Előzmény: szkripnyik (12101)
szkripnyik Creative Commons License 2010.06.22 0 0 12101
Utóbbi hetekben sokszor kellett internetről (HTML-ből) táblázatot másolni EXCEL-be, de a sima copy-paste egy mezőbe tette az egész hóbelevancot..
Ilyenkor általában bevált, hogy először sima jegyzettömbbe másoltam be a táblázat adatait és utána egy második copy-paste-tel a jegyzettömbből EXCEL-be.

(PDF esetében még nem próbáltam, ott általában a sima szövegmásolás is nehézségeket okoz)
SQLkerdes Creative Commons License 2010.06.22 0 0 12099
Adat fül
Szövegből oszlop (vagy valami hasonló, nekem angol 2007-esem van).

Ha vizuális vagy: klikk ide
Előzmény: Törölt nick (12098)
SQLkerdes Creative Commons License 2010.06.22 0 0 12097
Text to column - a Data menüben v. környékén keresd.
Előzmény: Törölt nick (12096)
SQLkerdes Creative Commons License 2010.06.22 0 0 12095
Kijelölés, copy-paste működik többnyire.
Utána lehet maszírozni kell egy kicsit a formátumot...
Előzmény: Törölt nick (12094)
SQLkerdes Creative Commons License 2010.06.19 0 0 12093
Hogy ez a funkció hol van 2002-es excelben arról fogalmam sincs, de valahol az Option-ök között kell keresni.

Az én 2007-es excelem option-jében ez úgy szerepel, hogy:
'Automatically insert a decimal point after:' és itt lehet kiválasztani, hogy hanyadik karakter után.
Alapból ez egy kettes, szóval nézz körül az Option-ök között és keress egy olyan beállítást, ahol szerepel egy kettes.
Kattintsd ki ezt az opciót és elmúlik szenvedésed.
Dohányzó Zsiráf Creative Commons License 2010.06.19 0 0 12092
Ja, még annyit hozzá, hogy ha megnyitok egy teljesen szűz új munkafüzetet, már ott is elosztja 100-zal, akármilyen számot írok be, tehát vmi excel-beállítási probléma lehet. (2 gépem van, egyik céges másik magán, ez utóbbit ritkábban használom, és ezen van ez a problémás magyar nyelvű excel).

Köszi
Előzmény: Dohányzó Zsiráf (12091)
Dohányzó Zsiráf Creative Commons License 2010.06.19 0 0 12091
Sziasztok. Valaki segítsen légyszi, mert kezdek bedilizni.
Elég gyakran használok Excelt, de ilyet még az életemben nem láttam.
Egy adott oszlop egymás alatti celláiban különböző értékek (kilométerek) szerepelnek. A táblát kb egy éve készítettem, és azóta volt már megnyitva angol és magyar Excellel is, 2002-es Excel mind a kettő.

Az egyik cella értékét most megpróbáltam átírni 300-ról 231-re, és az Excel automatikusan átjavította 2.31-re.
Már mindent végigpróbálgattam. Akármilyen cellaformázást, számformátumot, automatikus javítási beállításokat próbálok, sehogy sem jó. Beírok egy számot, és automatikusan elosztja 100-zal.

Meg tudjátok mondani, hogyan lehet megoldani, hogy ezt ne csinálja?

Előre is köszönöm
tagore72 Creative Commons License 2010.06.19 0 0 12090
Szia!

Nagyon köszönöm a választ, jövő héten kipróbálom!


Joe
Előzmény: SQLkerdes (12089)
SQLkerdes Creative Commons License 2010.06.19 0 0 12089
Az office programcsomaghoz hozzátartozik egy Digital Certificate for VBA projects nevű progi.

azzal készítsetek digitális certifitate-et a makrókhoz amiket biztonságosnak tartotok és az Excel Trust Center Settings-ében állítsátok be, hogy a digitálisan aláírt makrók futhatnak, más makrók nem.
Előzmény: tagore72 (12088)
tagore72 Creative Commons License 2010.06.18 0 0 12088
Sziasztok!

Szeretném megkérdezni, hogy vállalati környezetben hogy kell beállítani, hogy
csak az általam vagy más kolléga által írt biztonságos makrós fájlokat futtathassák a felhasználó Excel 2007 alatt.
Excel 2003-nál megnyitáskor rákérdezett a makrókra, 2007-nél viszont csak akkor fut, ha a beállításoknál minden makrót engedélyezek (a többi mind tiltás), de hát ez nem egy biztonságos módszer.

Köszönöm.
Redlac Creative Commons License 2010.06.18 0 0 12087
Kettőspont! :-)

Az egy sorba írt utasításokat kettősponttal kell elválasztani...

Megtaláltam...
Előzmény: Redlac (12086)
Redlac Creative Commons License 2010.06.18 0 0 12086
Még az előző témát folytatva:

If Range("X38") > 0 Then MsgBox "Az első érkezésnél NEGATÍV részmenetidő érték keletkezett! A piros színnel jelölt részmenetidőhöz tartozó időpont(ok) nem megfelelőek!", vbCritical, "HIBÁS IDŐPONT!"

If Range("Y38") > 0 Then MsgBox "Az első érkezésnél NEGATÍV menetidő érték keletkezett! A piros színnel jelölt menetidőhöz tartozó időpont(ok) nem megfelelőek!", vbCritical, "HIBÁS IDŐPONT!"


A fenti szövegek egy-egy sorban vannak. Azt szeretném, ha a 2. mondat ("A piros színnel" kezdődő mondat) egy újabb msgbox-ban jelenne meg (miután az előzőt leokéztam).
- Ha egy sorba írom, külön msgbox-ként, akkor hibát jelez
- Ha simán alá írom, akkor bár megjelenik, de a hibás cella törlésekor újra feladja a 2. msgbox-ot.

Valami ötlet?
Redlac Creative Commons License 2010.06.17 0 0 12085
A függvények jól mennek, a makrókat tanulom.
Ebben segített a sétálás :-)
Előzmény: Delila_1 (12084)
Delila_1 Creative Commons License 2010.06.17 0 0 12084
Végül magad oldottad meg a feladatot, itt csak megsétáltattad. :)
Előzmény: Redlac (12083)
Redlac Creative Commons License 2010.06.17 0 0 12083
Megint tanultam valamit :-)

Köszönöm delila!
Előzmény: Delila_1 (12082)
Delila_1 Creative Commons License 2010.06.17 0 0 12082
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(4,3) > 0 then Msgbox ("A C5:C15 tartomány legalább egy cellája mínuszba került")
If Cells(5,3) > 0 then Msgbox ("A D5:D15 tartomány legalább egy cellája mínuszba került")

End sub

Ha nincs Else ág, a feltétellel egy sorba írva a Then ágat nincs szükség End If-re.
Előzmény: Redlac (12081)
Redlac Creative Commons License 2010.06.17 0 0 12081
Abba még tudnátok segíteni, hogy az msgbox szövege dinamikus legyen?

Tehát, ne a tartomány nevét írja ki (ahol a hiba), hanem, ha a J46-ban van szöveg, akkor azt. Ha azonban a J46 üres, akkor a J47-ben lévő (egyébként) fix szöveget.
Előzmény: Redlac (12080)
Redlac Creative Commons License 2010.06.17 0 0 12080
Igen, a tartományokat mindenképpen külön akartam vizsgálni.


Bár tovább gondolva az előjel függvényre sincsen szükség.

a C4-be ezt írom =DARABTELI(C5:C15;"<0")

a makró meg így nézne ki

Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(4,3) > 0 then
Msgbox ("A C5:C15 tartomány legalább egy cellája mínuszba került")
End if
End sub

Köszönöm Nektek a segítséget, az együttgondolkodást :-)
Előzmény: Delila_1 (12079)
Delila_1 Creative Commons License 2010.06.17 0 0 12079
Valóban ez a legegyszerűbb. Egy oszlopban az

=HA(ELŐJEL(C5)=-1;1;"") képlet 1-et, vagy üres stringet ír.
Pl. a G2-ben az =SZUM(C5:C15) összesíti az eredményt.

A laphoz rendelve:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("G2") > 0 Then MsgBox "A C5:C15 tartomány legalább egy cellája mínuszba került."
End Sub

jajgat, ha mínuszba futott valamelyik érték.

Érdemes a következő tartományt külön vizsgálni, akkor a figyelmeztetés meghatározza a hiba helyét. A másik tartományhoz egy másik feltételt adsz:

If Range("H2") > 0 Then MsgBox "Az M5:M15 tartomány legalább egy cellája mínuszba került."
Előzmény: Redlac (12076)
Redlac Creative Commons License 2010.06.17 0 0 12078
Tök jó magammal beszélgetni :-)

Lassan a cella meghatározás is működik:

Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(4, 2) > 0 Then
MsgBox ("Bukta")
End If
End Sub


Ez így jó :-)
Előzmény: Redlac (12077)
Redlac Creative Commons License 2010.06.17 0 0 12077
Ez a saját ötletem működne, csak a makró nem ment

Private Sub Worksheet_Change(ByVal Target As Range)
If B4 > 0 Then
MsgBox ("Bukta")
End If
End Sub

A b4 a darabteli cellája. Ha az nagyobb, mint 0, akkor van legalább egy mínusz értékű cella a vizsgált tartományban.
Előzmény: Redlac (12076)
Redlac Creative Commons License 2010.06.17 0 0 12076
És mi a véleményetek arról, ha (rejtett oszlopban) az előjel függvénnyel vizsgálom a tartomány összes celláját, majd az egészből nézek egy darabtelit. Ha ennek eredménye 1, tehát van legalább egy negatív szám a vizsgált tartományban, akkor kiabálni kellene. Így a makrónak egy cellát (a darabteli eredményét) kellene vizsgálni?
Redlac Creative Commons License 2010.06.17 0 0 12075
Jimmy, én mindkét makrót kipróbáltam, de nem akarja az igazságot.

Próbaként egy egyszerű C5=D5-E5 függvényt tettem bele, aztán a D és E cellákba írtam olyan számokat, amik hatására a C-ben negatív szám jött ki, de semmit nem kiabált.
Feltételezem a makróban lévő f8:f300 tartomány csak a lehetséges másik tartományt jelöli?
Előzmény: Törölt nick (12073)
Redlac Creative Commons License 2010.06.17 0 0 12074
Jó reggelt!

Mire leültem a gép elé, már komplett megoldás hegyek vannak, csak kapkodom a fejem:-)

Máris tesztelem az írottakat.
Előzmény: Törölt nick (12073)
Törölt nick Creative Commons License 2010.06.17 0 0 12073
Szerintem erre a lassú de biztos (favágós) módszer az lenne, ha a vizsgált tartomány minden celláját ellenőriznénk negatív értékre:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Rng1 As Range, c As Range
With ThisWorkbook.Sheets("Munka1")
Set Rng1 = Union(.Range("C5:C15"), .Range("F8:F300"))
For Each c In Rng1
If c < 0 Then
MsgBox "A bevitt adat nem megfelelő, mert a Munka1 lap " & c.Address & " cellája mínuszba került. "
Exit Sub
End If
Next
End With
End Sub

Ha több munkalapon kell tartományokat figyelni, akkor lehet Rng2, Rng3, stb tartományokat definiálni, és mindre külön ciklus, ami végignézi őket.

Valamivel gyorsabb, és szerintem jó módszer, ha csak a vizsgált tartomány minimumát ellenőrzöm. Ha a C5:C15 számok bármelyike negatív, akkor ugyanezen számok legkisebbike is negatív.
Tehát:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Rng1 As Range
With ThisWorkbook.Sheets("Munka1")
Set Rng1 = Union(.Range("C5:C15"), .Range("F8:F300"))
If Application.WorksheetFunction.Min(Rng1) < 0 Then
MsgBox "A bevitt adat nem megfelelő, mert a Munka1!" & Rng1.Address(False, False) & _
" tartomány legalább egy cellája mínuszba került. "
End If
End With
End Sub
Előzmény: Delila_1 (12072)
Delila_1 Creative Commons License 2010.06.17 0 0 12072
Redlac eredetileg a C5:C15 tartományt akarta figyeltetni, később azt írta, hogy más helyekre is kiterjesztené.
A makróddal 1 cellát lehet ellenőrizni, és nem látom, hogy lehetne ezt egy tartományra kiterjeszteni. Te biztosan tudod.
Előzmény: Törölt nick (12071)
Törölt nick Creative Commons License 2010.06.17 0 0 12071
Nem teljesen értem a kérdést...
Előzmény: Delila_1 (12070)
Delila_1 Creative Commons License 2010.06.17 0 0 12070
Igen, ez működik, de hogy adod ezt meg különböző tartományokra?
Előzmény: Törölt nick (12066)
kiwancsi Creative Commons License 2010.06.16 0 0 12069

Neked is köszönöm, remélem bírok majd vele.

A cél végülis az, hogy az adatokat csak egyszer, egy helyre vigyük fel, és ne pedig tíz különböző táblába(adatbázis), a 10 kül. tábla mégis létezzen. Akik azt nézegetik nem kell tudniuk honnan van.:-)

Előzmény: Törölt nick (12052)
kiwancsi Creative Commons License 2010.06.16 0 0 12068
Köszönöm, beleásom magam.
Előzmény: Jozsef (12051)
Törölt nick Creative Commons License 2010.06.16 0 0 12067
Viszont ez a módszer minden és bármilyen cellamódosulásnál pampogni fog, akár van hatása C5-re, akár nincs, mindaddig, amíg a negatív értéket eredményező beírást nem módosítjuk...
Előzmény: Törölt nick (12066)
Törölt nick Creative Commons License 2010.06.16 0 0 12066
Szerintem működne ez akkor, ha elhagynád a Target helyének vizsgálatát. Végül is tök mindegy, hogy melyik cellába írt be új adatot, ha attól megváltozik a figyelt cellákban a képlet értéke. A képlet értéke pedig általában akkor módosul, ha valahová új adatot írnak, tehát a változást el lehet csípni a Worksheet_Change eseménnyel.

Ha általánosabban akarjuk, akkor egyszerre figyelhetjük az összes munkalap változását:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ThisWorkbook.Sheets("Munka1").Range("C5") < 0 Then MsgBox "A bevitt adat nem megfelelő, mert a Munka1 lap C5 cellája mínuszba került. "
End Sub

Ezt már csak úgy lehet átverni, ha külső munkafüzetből, csatolással jön az adat, amiből C5 értéke származik.
Előzmény: Delila_1 (12064)
Delila_1 Creative Commons License 2010.06.16 0 0 12064
Nem működne. Ha egy feltételes formázással színezett cella színét, vagy színkódját lekérdezed, az eredeti színt, kódot kapod.

Azt lehetne megcsinálni, hogy ha pl. a C5 képlete =E5-D5, akkor azt a cellát kellene vizsgáltatnod, amelyiket utóbb viszel be. Ha ez az E5, akkor
If target.value-cells(target.row,4)<0 then msgbox ...

Az első két sor helyfoglalás az oszlop és a sor változónak, majd értékadás ezeknek.
A sor legyen a változott cella sora, az oszlop pedig a változott cella oszlopa.
Előzmény: Redlac (12063)
Redlac Creative Commons License 2010.06.16 0 0 12063
és akkor szerinted működne, ha feltételes formázással piros színnel jelölném, ha negatív szám jön ki a függvény eredményénél. Aztán a tartományban lévő piros szám megjelenését vizsgálom (ami ugye negatív számot jelent).
Előzmény: Delila_1 (12061)
Redlac Creative Commons License 2010.06.16 0 0 12062
Köszönöm, ez működik.

Mivel több egymástól különálló tartományra kellene alkalmazni a makrót, nem lehetne másképp meghatározni a target-et?

Lehet, hogy hülye a kérdés, de ha a c5:d5 tartományt elnevezem "cél"-nak, akkor azt is meg lehet oldani?

Az kezd világos lenni, hogy adott tartományra hogyan hivatkozom, de azok a megoldások, mintha itten nem működnének.

Megpróbálok nem kész megoldást kérni, hanem értelmezném az általad leírtakat.

A makród első két sora pontosan mit jelent?

Illetve ez így miért rossz?

Private Sub Worksheet_Change(ByVal Target As Range)

Target.Range = cél

If Target.Value < 0 Then
MsgBox "Ez a cella negatív számot nem tartalmazhat"

End If
End Sub

(a cella adatának törlése egyelőre nem kell)
Előzmény: Delila_1 (12058)
Delila_1 Creative Commons License 2010.06.16 0 0 12061
Azokat a cellákat kellene figyeltetni bevitelkor a Worksheet_Change metódussal, amelyek eredményeként a C5:C15 tartományban létrejöhet negatív érték.
Előzmény: Redlac (12056)
Delila_1 Creative Commons License 2010.06.16 0 0 12060
A 11292-es hsz. sajnos nem jó, mert a függvénnyel létrejött értékeket a target nem figyeli, csak ha másolod a függvényt tartalmazó cellát a C5:C15 tartományba. :(
Előzmény: Redlac (12056)
Delila_1 Creative Commons License 2010.06.16 0 0 12059
Sajnos nem jött össze. A makród felsorolta a Fájl menü (nem eszköztár!) menüpontjait. Biztonság kedvéért, hogy jobban lássam, beírattam a neveket egy oszlopba. Még az utoljára megnyitott füzeteim nevét is megadta.

Megnéztem a linkeket. Végül arra a következtetésre jutottam, hogy az a bővítmény (?) hiányzik, vagy hibásodott meg nálam, ami a levélben küldést csatolással hajtaná végre. Próbálkoztam már az Office újabb telepítésével, hibajavításával, de nem akar sikerülni.

Köszönöm a fáradozásodat.
Előzmény: Törölt nick (12054)
Delila_1 Creative Commons License 2010.06.16 0 0 12058
A laphoz kell rendelned a makrót.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim oszlop As Integer, sor As Integer
oszlop = Target.Column
sor = Target.Row

If oszlop = 3 And sor > 4 And sor < 16 And Target.Value < 0 Then
MsgBox "Ez a cella negatív számot nem tartalmazhat"

'Ez a sor negatív szám esetén törli a cella tartalmát:
Cells(sor, oszlop) = ""
End If
End Sub
Előzmény: Redlac (12056)
SQLkerdes Creative Commons License 2010.06.16 0 0 12057
Delila posztolt néhány ilyen change tipusú kódot, az ő hozzászólásait érdemes visszanézni.

Tárgyi tudás híján én csak annyit szeretnék mondani, hogy lehet nem Private Sub kell ide hanem valami speckó.
Előzmény: Redlac (12056)
Redlac Creative Commons License 2010.06.16 0 0 12056
Üdv Mindenkinek!

Azt szeretném elérni, hogy ha egy cellában lévő szám negatív lesz (függvény eredményeképpen), akkor egy üzenetpanel ugorjon ki, hogy azt nem lehet, tehát valamit elrontott.

Ezt próbáltam, de kutyafüle:

Private Sub h()

If Target.Range = "c5:c15" And Target.Value < 0 Then
MsgBox ("Ez a cella negatív számot nem tartalmazhat")

End If
End Sub


Valaki megtudná mondani, hogy miért? Azok a válaszok, hogy "csak", "me' buta vagy" nem érnek :-)

Előre is köszi
Törölt nick Creative Commons License 2010.06.16 0 0 12055
Érdemes lenne még itt vagy itt is körülnézni.
Előzmény: Delila_1 (12048)
Törölt nick Creative Commons License 2010.06.16 0 0 12054
Bocsi, kicsit próbálgattam és úgy maradt, szóval:

Sub Teszt()
Dim i As Long

  For i = 1 To Application.CommandBars("File").Controls.Count
    MsgBox i & " -> " & Application.CommandBars("File").Controls(i).Caption
  Next i

End Sub
Előzmény: Törölt nick (12053)
Törölt nick Creative Commons License 2010.06.16 0 0 12053

Valami ilyesmire gondoltál?

 

Sub Teszt()
Dim i As Long

 

  For i = 1 To Application.CommandBars("Formatting").Controls.Count
    MsgBox i & " -> " & Application.CommandBars("File").Controls(i).Caption
  Next i

 

End Sub

Előzmény: Delila_1 (12048)
Törölt nick Creative Commons License 2010.06.16 0 0 12052
1)
Lehet Excellel adatbázis lekérdezést csinálni.
Adatok -> Külső adatok importálása -> Új adatbázis-lekérdezés
Ez elsősorban úgy használatos, hogy az egyik munkafüzetet adatbázisban használod, és a másikban hozod létre a lekérdezést. Lehet úgy is, hogy ugyanazon munkafüzet egyik lapját használod adatbázisnak, és a másikon van a lekérdezés, de ennek megbízhatóságáról nem vagyok meggyőződve.
Mindenesetre Microsoft Query kell hozzá, ami az MS Office része, de alapértelmezésben nem települ fel.

Adatok szűrése megvalósítható az irányított szűrővel is, kvázi lekérdezés-szerűen.
Úgy emlékszem, hogy menüből használva csak ugyanarra a lapra teheted a szűrési eredményt, de makróval akárhová.

Azt is el tudom képzelni, hogy a pivottábla lesz a te barátod, de a problémafelvetésből ez nem derül ki.

Végül, de nem utolsósorban makróval akármilyen adatszűrést, adatbázis-lekérdezést meg lehet csinálni, akármilyen Excel, Access, ODBC, stb. adatforrásból.

2)
Access adatbázis létrehozása is lehetséges Excel makróval, de sztem ezt a lovat fordítva kell megülni. Először létrehozni az Access DB-t, megfelelő táblákkal, mezőkkel, majd abba importálni az adatokat Excel munkafüzetből. Access-ben a Fájl -> Külső adatok átvétele -> Importálás útvonalon éred el ezt a funkciót.
Előzmény: kiwancsi (12049)
Jozsef Creative Commons License 2010.06.16 0 0 12051
Tudok-e excel táblából(mintha csak adatbázis lenne, lekérdezést csinálni?
Valójában az excel szűkítési funkciójához hasonlóra gondolok, mondjuk egy másik táblában, vagy csak egy másik lapon.
Hogyan?

Röviden, ezeknek nézz utána a Súgóban, vagy az Interneten:

1. Excel cél - Excel forrás esetén legegyszerűbb az Excel Irányított Szűrő funkciója, kicsivel bonyolultabb az Microsoft Query-vel

2. más program - Excel forrás esetén az Excel ODBC driverrel SQL utasításokkal is hozzáférhetsz az Excel forráshoz. Természetesen, nagyon sok adatbázisoknál megszokott dolog nem fog működni az Excel természetéből következően.

Más. Tudok-e excel táblából acess adatbázist létrehozni, úgy hogy az adatokat átviszem egy mozdulattal.
Hogyan?


Igen, nagyon egyszerűen. Régebbi Access-ben a Fájl menüben volt az Export/Import funkció (ha jól emlékszem). Access 2007-ben a Külső Adatok fülön találod meg a funkciót.


Előzmény: kiwancsi (12049)
kiwancsi Creative Commons License 2010.06.16 0 0 12050
acess=access
Előzmény: kiwancsi (12049)
kiwancsi Creative Commons License 2010.06.16 0 0 12049

Sziasztok!

 

Következő kérdéssel rukkolnék elő, ha valaki tud segíteni megköszönöm.

 

Tudok-e excel táblából(mintha csak adatbázis lenne, lekérdezést csinálni?

 

Valójában az excel szűkítési funkciójához hasonlóra gondolok, mondjuk egy másik táblában, vagy csak egy másik lapon.

Hogyan?

 

Más. Tudok-e excel táblából acess adatbázist létrehozni, úgy hogy az adatokat átviszem egy mozdulattal.

Hogyan?

 

Ill. hol találom meg leírva a hogyant, természetesen nem várom tőletek hogy kézikönyvet írjatok nekem ide.:-)

 

Csak a "kályhát" mondjátok meg hol van!:-)

 

 

Előre is köszönöm.

 

 

Delila_1 Creative Commons License 2010.06.16 0 0 12048
Egy újratelepítés óta a 'Küldés levélben (mellékletként)' nevű ikonom le van tiltva. Azt tudom, hogy az Application.CommandBars("Formatting").Controls(5).Visible = True sorral meg tudom jeleníteni a formátum eszköztár 5. ikonját, de nem tudom, hogy tudnám működésre bírni a fent említettet.

Alapból a 'Szokásos' eszköztáron van, de kitenni a Fájl kategóriából tudnám – ha nem lenne ott.

Honnan lehet tudni, hogy egy ikon hányadik egy eszköztáron? A megszámlálás nem jó, mert nem az eredeti sorrendben vannak nálam. Visszaállítani sem szeretném azt a sorrendet, mert egy halom saját ikont alkalmazok, saját rajzzal.
Törölt nick Creative Commons License 2010.06.15 0 0 12047
Vagy:

ActiveSheet.CodeName

attól függően, hogy melyik neve kell.
Előzmény: szkripnyik (12046)
szkripnyik Creative Commons License 2010.06.15 0 0 12046
Sub aaa()
MsgBox ActiveSheet.Name
End Sub

Természetesen MSGBOX helyett el is tárolhatod egy stringváltozóba...
Előzmény: Gavriel (12045)
SQLkerdes Creative Commons License 2010.06.15 0 0 12044
Az első problémád DARABTELI-s megoldását is át lehet alakítani SUMPRODUCT-osra, ha érdekel ez a technika szólj és segítek.
Nagyon hasznos ott, ahol több feltételt kell kiértékelni és megszámolni v. összesíteni (pld. hány szabadnapja van összesen azoknak akik az informatikán dolgoznak és 2009.010.01 után lettek felvéve).
Előzmény: SQLkerdes (12043)
SQLkerdes Creative Commons License 2010.06.15 0 0 12043
A duplanegatív egy boolean eredményt (igaz v. hamis) alakít át számmá, vagyis logikai műveletek IGAZ eredményét 1-gyé, hamis eredményét 0-vá alakítja.

Szóval a függvény azt csinálja, hogy kiértékeli minden releváns cella esetében, hogy az eredménye megegyezik-e a G2 értékével (tagja-e a lekérdezett osztálynak) (eredmény: IGEN v. NEM átalakítva 0-vá vagy 1-gyé), megnézi, hogy van-e szabadnapja az adott személynek (eredmény IGEN v. NEM, konvertálva nullává v. eggyé) és ezeket összeszorozza majd felösszesíti.

Csak ahol mindkét feltétel teljesül lesz a szorzat eredménye 1, ezeket az 1-eket összeadja, ami esetünkben a mindkét feltételnek megfelelő emberek száma.

Előzmény: meantisz (12042)
meantisz Creative Commons License 2010.06.15 0 0 12042

Köszönöm szépen a megoldást, tökéletesen működik!

Igen magyarul SZORZATÖSSZEG a függvény neve, és a vessző helyett pontosvessző kellett.

 

Le tudnád esetleg írni, hogy a -- jellel milyen művelet hajtódik végre, hogy meg is értsem amit leírtál. Magát a SZORZATÖSSZEG működését értem, csak erre a kapcsolóra lennék kíváncsi.

 

Köszönöm!

SQLkerdes Creative Commons License 2010.06.15 0 0 12041
Függvénnyel akarod megcsinálni, vagy fizikailag új tábla is megfelel?


Egyébként egyedi karaktersorozatot simán létre tudsz hozni az & jellel.

Pld a H2 cellába azt írod:
=A2&"-"&B2"-"&C2
és így tovább. Utána a H oszlop adatára tudsz csinálni egy COUNTIF-et, és hol a COUNTIF eredménye nem 1, ott vannak az ismétlődések.
Ha sok időd van, akkor a FREQUENCY függvénnyel is játszadozgathatsz egy kicsit.
Előzmény: bejgleee (12040)
bejgleee Creative Commons License 2010.06.15 0 0 12040
Olyan gyorsan válaszhoz akartam jutni, hogy nem írtam le rendesen :)
szóval:
- az oszlopok száma fix, a soroké nem
- nemcsak egyjegyű számok szerepelnek
Éppen ez a bajom, hogy nem bírok egyedi karaktersorozatot létrehozni, ami alapján könnyebb lenne szűrni az azonosokat.
Előzmény: szkripnyik (12039)
szkripnyik Creative Commons License 2010.06.15 0 0 12039
1. Mit értesz "listázáson"?
2. A táblázat métere fix, vagy a sorok és oszlopok száma is lehet több?
3. Minden cellában csak egyjegyű szám van?
Én egy segédoszlopban csinálnék egy ötjegyű számot, az alapján sorba rendezném, és akkor már csak a szomszédos sorokat kell vizsgálni....
Előzmény: bejgleee (12038)
bejgleee Creative Commons License 2010.06.15 0 0 12038
Sziasztok!
A következő táblám van:

A B C D E
1 2 3 4 5
1 4 6 9 3
2 5 2 5 7
1 4 6 9 3
1 2 1 1 1

Látszik, hogy a 2-es és 4-es sor ugyanaz.
A kérdésem:
Hogyan tudom az azonos sorokat kilistázni?
Üdv,
Bejglee
SQLkerdes Creative Commons License 2010.06.15 0 0 12037
Persze, a HA függvényt tedd be egy másik HA függvénybe, valahogy így
=HA(VAGY(a1="",b1="",[es_igy_tovabb]),"",HA([ami eredetileg a HA függvényedben van]))

Előzmény: Eru (12036)
Eru Creative Commons License 2010.06.15 0 0 12036
Sziasztok!
biztos banális probléma, de nem bírok vele egyedül..
HA függvényben olyan cellák vannak, amik még üresek, később kell vele számolnia; azt szeretném, hogy amíg nem kerül érték a cellába, a függvény ne számoljon vele. lehetséges ez?
nagyon köszi!
SQLkerdes Creative Commons License 2010.06.14 0 0 12035
Feltételezve, hogy:
- az osztályok leírása a B oszlopban van (mondjuk B2:B100)
- a szabadnapok száma a D oszlopban van (mondjuk D2:D100)
- a szabadnap hiányát vagy 0 vagy üres cella jelzi a D oszlop megfelelő mezőjében;
- a "kigyűjtendő" osztály neve a G oszlopban van, mondjuk G2:G10

F2-be írd be a következő képletet:
=SUMPRODUCT(--($B$2:$B$100=G2),--($D$2:$D$100<>0))

Ezt másold le az F oszlop többi releváns cellájába is a G oszlop tartalmának megfelelően.

(SUMPRODUCT a magyar excelben aszt hiszem SZORZATÖSSZEG v. SZORZATOSSZEG), lehet a te verziódban a vesszők helyett pontosvesszőt kell használni.

Az eredmény megadja, hogy az adott osztály hány alkalmazottja rendelkezik nullától különböző számú nap szabadsággal.
Előzmény: meantisz (12034)
meantisz Creative Commons License 2010.06.14 0 0 12034

Üdv mindenkinek!

 

Egy kis segítségre lenne szükségem egy excel táblázattal kapcsolatban.

 

Röviden leírom a problémát:

 

Egy függvényre (vagyis szerintem egymásba ágyazott függvényre) lenne szükségem, amellyel a következőt kellene megoldani:

 

A táblázat tartalma:

 

Osztály:            Belépés dátuma:                   Szabadnapok száma:

 

Informatika       2009.01.01                             20

Pénzügy            2009.01.02

Marketing          2009.01.03                             15

Pénzügy            2009.01.04

Pénzügy            2009.01.05

Marketing          2009.01.06

Informatika       2009.01.07                             30

 

 

Ez a táblázat a különböző osztályokon dolgozó emberek szabadságát hivatott nyilvántartani (a név oszlopot nem írtam most le).

 

2 feladatot kell megoldani, az első hogy hányan dolgoznak az egyes osztályokon: ezt egy DARABHATÖBB fügvénnyel simán megoldottam egy külön táblázatba.

 

A 2. bonyolultabb, arról lenne szó, hogy ezek mellé a számok mellé oda kellene írni, hogy az egyes osztályokon az ott dolgozók számából mennyinek van szabadsága!

 

FKERES fügyvénnyel próbálkoztam, de az csak a szabadságok oszlopában értéket ad vissza ugye, nekem pedig darabszámra lenne szükségem.

Darab függvénnyel pedig nem tudok olyan feltételt adni, hogy csak az informatikán dolgozók szabadságait adja össze (ja, és ugye nem a szabadnapok számának összege kell, hanem hogy hány embernek van szabadnapja!).

 

Szóval szerintem valahogy a kettőt kellene egymásba ágyazni, de akárhogy kísérletezek, nem sikerül.

 

Minden ötletet szívesen vennék!

 

Köszönöm!

 

U.i.: Csak függvényes megoldás lenne jó, tudom, hogy szűréssel egyszerűen meg lehetne oldani, de automatizálni szeretnénk a táblázatot függvények segítségével.

szkripnyik Creative Commons License 2010.06.13 0 0 12033
Ha a célcella is rendre az első, második, harmadik stb sorban van, akkor:
=A1*B1*SOR()
Előzmény: Rizibizke (12032)
Rizibizke Creative Commons License 2010.06.13 0 0 12032
Sziasztok, lenne egy kérdésem: mely függvényeket kell használni, ha mondjuk meg szeretném kapni A1 és B1 szorzatát szorozva egyel; A2 és B2 szorzatát szorozva kettővel; A3 és B3 szorzatát szorozva hárommal stb? Előre is köszi!
SQLkerdes Creative Commons License 2010.06.12 0 0 12031
Tusé...
Előzmény: szkripnyik (12030)
szkripnyik Creative Commons License 2010.06.12 0 0 12030
Akkor már:
=HA(ELŐJEL(A1-B1)=ELŐJEL(F1-G1);1;0)
:-)))

Ugye az Előjel függvénynek pont 3 kimenet van!!!!!!
Előzmény: SQLkerdes (12028)
SQLkerdes Creative Commons License 2010.06.12 0 0 12029
Helyesbítés:
- ha a gólok különbségének abszolút értékeinek összege nulla...
Előzmény: SQLkerdes (12028)
SQLkerdes Creative Commons License 2010.06.11 0 0 12028
Szerintem a legegyszerűbb:

- ha a gólok különbségének szorzata pozitív, akkor a fogadó eltalálta, hogy ki győzött
- ha a fenti nem igaz, akkor a gólok különbségének összege nulla, akkor a fogadó eltalálta, hogy döntetlen.

A lenti példán:
- (2-1)*(4-1)=1*3 = pozitiv, vagyis a fogadó eltalálta, hogy ki nyert.
- (2-2)+(3-3)=0, vagyis a fogadó eltalálta, hogy döntetlen.
Előzmény: Cloaca Maxima (12023)
szkripnyik Creative Commons License 2010.06.11 0 0 12027
DARAB, DARAB2, DARABTELI, DARABÜRES függvények jöhetnek szóba, vagy akár:
=HA(A1="";"nem tippelt";...az előző képlet beírva....)
nyugodtan beírhatod a 0-k és 1-k közé, a SZUM függvényt nem zavarja meg:
Egy oszlop tartalma: (A1:A9)
0
1
3
1
0
nem tippelt
1
nem tippelt
6 ---- Ez pedig az előző 8 érték összege =SZUM(A1:A8)
Előzmény: Cloaca Maxima (12026)
Cloaca Maxima Creative Commons License 2010.06.11 0 0 12026
Még egy kérdés:
Arra van függvény, hogy egyáltalán csak akkor csak számoljon, ha a cella kitöltött?
Konkrétan: amíg nincs végeredmény (a cellák üresek), ne kapjon pontot az, aki 1-1-et tippelt.
Előzmény: szkripnyik (12024)
Cloaca Maxima Creative Commons License 2010.06.11 0 0 12025
kösz!
Előzmény: szkripnyik (12024)
szkripnyik Creative Commons License 2010.06.11 0 0 12024
Akkor szerintem ez lesz a legegyszerűbb:
=HA( VAGY( ÉS(F1 > G1;A1 > B1); ÉS(F1 = G1;A1 = B1); ÉS(F1 < G1;A 1< B1) ) ; 1; 0)

(És mindegy, hogy A1,B1 a tényleges végeredmény és F1,G1 a tipp vagy fordítva, lényeg hogy az ÉS-eken belül a relációjelek egyformák...
Előzmény: Cloaca Maxima (12023)
Cloaca Maxima Creative Commons License 2010.06.11 0 0 12023
Ha A1 cella=2, B1 cella=1 (ez a pontos végeredmény), a tipp pedig legyen F1=4, G1=1, akkor először A1 és B1 alapján kell az 1 x 2-t meghatározni. Ezt hogyan?
Ha ez megvan, jöhet az, amit írtál:
HA(VAGY(ÉS(tipp="1";F1>G1);ÉS(tipp="X";F1=G1);ÉS(tipp="2";F1<G1));1;0)
Kösz most is, de az előző válaszért is!
cm
Előzmény: szkripnyik (12022)
szkripnyik Creative Commons License 2010.06.10 0 0 12022
Összetett IF, AND, OR.....(pardon: HA, És, Vagy) függvények

HA(VAGY(ÉS(tipp="1";hazai>vendég);ÉS(tipp="X";hazai=vendég);ÉS(tipp="2";hazai<vendég));1;0)
Előzmény: Cloaca Maxima (12021)
Cloaca Maxima Creative Commons License 2010.06.10 0 0 12021
Sziasztok!
Tudtok-e excel-függvényt mondani arra az esetre, ha egy foci végeredmény 1 x 2-jét szeretném az adott tippel összehasonlítani, és kiszámítsuk, hogy kap-e pontot a tippelő. Tehát mondjuk a helyes végeredmény 2-1, a tippelő 5-2-t mondott, ez alapján kap 1 pontot, de ha 2-2-t tippelt volna, az 0-t ér.
Kösz,
cm
Törölt nick Creative Commons License 2010.06.10 0 0 12020

Köszönöm, szerintem hagyjuk. Készítettem szövegdobozból nyomógombot, ezzel is el tudom érni azt, hogy változtathatom a nyomógomb szövegét és együtt mozog a diagrammal.

 

Előzmény: Törölt nick (12019)
Törölt nick Creative Commons License 2010.06.10 0 0 12019
Feltettem a kérdést a VBAX fórumon, másfél nap alatt egyetlen válasz sem jött rá.
Nem tudom, érdemes-e még rá várni.
Előzmény: Törölt nick (12006)
Herold Creative Commons License 2010.06.09 0 0 12018
Így már helyes, köszi szépen!
Előzmény: Törölt nick (12017)
Törölt nick Creative Commons License 2010.06.09 0 0 12017
Inkább
=ADDRESS(MATCH(-10000000000,C1:C100,-1),COLUMN(C1),4,1)
Előzmény: Herold (12014)
Törölt nick Creative Commons License 2010.06.09 0 0 12016
=Application.WorksheetFunction.SumIf(Arg1 As Range, Arg2, [Arg3]) As Double
Előzmény: Gavriel (12015)
Herold Creative Commons License 2010.06.09 0 0 12014
Angolban ennek így kéne kinéznie?

=ADDRESS(LOOKUP(-10000000000,C1:C100,-1),'column'*(C1),4,1)

Mert nekem így hibát jelez.
Előzmény: Törölt nick (12013)
Törölt nick Creative Commons License 2010.06.09 0 0 12013
=CÍM(HOL.VAN(-10000000000;C:C;-1);OSZLOP(C1);4;1)

Vagy egyszerűen: C&HOL.VAN(-10000000000;C:C;-1)

Angolosítás gondolom nem okoz problémát. (ADDRESS= CÍM, COLUMN= OSZLOP)
Előzmény: Herold (12012)
Herold Creative Commons License 2010.06.09 0 0 12012
Szuper! Akkor már csak azt mondd meg, hogy a kijött számból hogy tudok cellahivatkozást csinálni. Tehát ha a 26-os sorban van az utolsó szám, hogy lesz ebből a 26-os értékből C26?
Előzmény: Törölt nick (12011)
Törölt nick Creative Commons License 2010.06.09 0 0 12011
MATCH(lookup_value, lookup_array, match_type)

=HOL.VAN(-10000000000;C:C;-1)

=MATCH((-10000000000,C:C,-1)
Előzmény: Herold (12010)
Herold Creative Commons License 2010.06.09 0 0 12010
Sziasztok

Tudna valaki segíteni? Nem vagyok valami nagy pro Excelben, és az alábbi problémára keresem a választ:
Van egy cellatartomány, pl. C1:C100. Ezekbe számok fognak kerülni manuális bevitellel, felülről lefelé. Hogyan tudom lekérdezni azt, hogy melyik az a legutolsó cella, amelyikben még van szám (anélkül, hogy mind a 100 db-ot lekérdezném az IF függvénnyel)?
Egyébként OpenOffice Calc-ot használok, ezért angol függvénynévre lenne szükségem.
Előre is köszönöm.
NeomatiK Creative Commons License 2010.06.08 0 0 12009
Hmm, nem rossz ötlet, és talán egyszerűbb is!
Előzmény: Törölt nick (12008)
Törölt nick Creative Commons License 2010.06.08 0 0 12008

Szerintem, érdemes egy kicsit átböngészni. Pl. ezt a részt:

 

Előzmény: NeomatiK (12007)
NeomatiK Creative Commons License 2010.06.08 0 0 12007
Nagyon köszi !!! Ez Ctrl + Tab működik. A Formátum / Bekezdés beállításai -ban még nem merültem el, de az mintha nem lenne jó erre. Majd megnézem tüzetesebben is!
Előzmény: Törölt nick (11973)
Törölt nick Creative Commons License 2010.06.08 0 0 12006
Előre is köszönöm a segítséget.
Előzmény: Törölt nick (12002)
SQLkerdes Creative Commons License 2010.06.08 0 0 12005
Úgy látom ezeket a Microsoft srácokat nem könnyű átverni...
Előzmény: Törölt nick (12004)
Törölt nick Creative Commons License 2010.06.08 0 0 12004
Kipróbáltam ezt is:

Előzmény: SQLkerdes (12003)
SQLkerdes Creative Commons License 2010.06.08 0 0 12003
Félreértés ne essék, nem akarom azt a hamis benyomást kelteni, hogy tudom a megoldást, de eszembe jutott valami.

Miért nem készül a diagram önálló lapon, rákerül a gomb és utána átmozgatjátok egy worksheet-re?
Előzmény: Törölt nick (12002)
Törölt nick Creative Commons License 2010.06.08 0 0 12002
Valami nem gömbölű itten.
Itt azt olvastam, hogy xl2007-ben lehet ugyan űrlapgombot diagramba ágyazni, de csak önálló diagramlap esetében. Szóval úgy, hogy maga a diagram is munkalapba van ágyazva, úgy nem.
De nekem meg működik otthon beágyazott diagrammal is....

Egy dolgot tudok elképzelni: nekem otthon olyan 2007-esem van, ami "Frissítés" verzió. Ez azt jelenti, hogy önmagában nem telepíthető, csak korábbi verzióra rá, és telepítéskor azt módosítja/cseréli/írja felül. Gondolom, a telepítő megtartotta a 2003-ból azt a részt, ami ezért a viselkedésért felelős. Vagy nem tudom.

Ha lesz egy kis időm, felteszem a kérdést egy másik fórumon, hátha valaki tudja.
Előzmény: Törölt nick (12001)
Törölt nick Creative Commons License 2010.06.08 0 0 12001

Kipróbáltam és nálam már képként jelenik meg (egyébként, működik a makró). Nem értem, vajon miért van ez?

 

 

Előzmény: Törölt nick (11999)
Törölt nick Creative Commons License 2010.06.07 0 0 12000
Sajna, már csak holnap tudom kipróbálni, mert itthon most csak a 2003-as van.
Reggel ez lesz az első!
Előzmény: Törölt nick (11999)
Törölt nick Creative Commons License 2010.06.07 0 0 11999
Próbáld meg ezt letölteni. Ebben van egy diagram, rajta 2 gomb (1 ActiveX és 1 űrlapos). Plusz egy makró az űrlapos gombhoz rendelve. Működik?
Előzmény: Törölt nick (11998)
Törölt nick Creative Commons License 2010.06.07 0 0 11998
Most el vagyok bizonytalanodva, mert a 2007-en űrlap-vezérlőt használtam (Fejlesztőeszközök -> Beszúrás -> Űrlap-vezérlőelemek) és képként jelent meg a másolás után...
Előzmény: Törölt nick (11995)
Törölt nick Creative Commons License 2010.06.07 0 0 11997
Én megnézném azt is, hogy a beszúrt képek mögött nincs-e 50 másik.
Pl. ctrl+g - irányított, objektumok bejelöl, enter.
Majd TAB-al végignyomkodni.
Vagy kijelölsz egy db képet v. valamit és nyomkodod és megnézed hogy TAB-al mire ugrik.

Megnézném, hogy vannak e rejtett lapok a munkafüzetben.
Ha nem te hoztad létre a munkafüzetet megnézném alt+f11-re feljövő fejlesztői környezetben vannak a kódok.

Meg elkezdenék vírust is irtani a gépen.

Megpróbálnám azt is, hogy egy teljesen üres munkafüzetbe beszúrnám ugyanazokat a képeket (ojjektumokat) és megnézném a file arányos méretét a képekhez képest.

Ha az egyezik, akkor a te excel fileoddal van valami gáz v valamit rosszul csinálsz a beszúrásnál. Talán.
Előzmény: tamas1000 (11990)
Törölt nick Creative Commons License 2010.06.07 0 0 11996
Ja, és köszönöm a dicséretet. Hízik a májam :)
(Valamivel ellensúlyozni kell a sok sör hatását...)
Előzmény: Törölt nick (11995)
Törölt nick Creative Commons License 2010.06.07 0 0 11995
Leteszteltem 2007-ben, ugyanúgy működik, mint 2003-ban. Imétlem, nem mindegy, hogy Űrlap-vezérlőelemet, vagy ActiveX vezérlőt használsz. Csak az űrlapos jó.
Előzmény: Törölt nick (11994)
Törölt nick Creative Commons License 2010.06.07 0 0 11994

Félrevezetni? Idáig Tőled tanultam a legtöbbet!

Kipróbáltam én is 2003-on és úgy működik, ahogy ezt leírtad. Pont ez kellene nekem, de úgy látszik, a 2007-es ezt nem tudja.... Kíváncsi leszek, hogy a 2003-on "összeragasztott" diagramon nyomógomb működik-e a 2007-en?

Előzmény: Törölt nick (11991)
SQLkerdes Creative Commons License 2010.06.07 0 0 11993
Önmagában a file-ok csatolása nem növelné a méretet aránytalanul.
Azonban az excel csak azoknak a celláknak az adatait menti el, amelyek ténylegesen használva vannak.
Tehát egy 10x10-es táblázat esetén a mondjuk 100 cella címét és tartalmát (még akkor is, ha nincs tartalma, ezt az információt is le kell menteni).

Ha valamilyen probléma miatt az ún. usedrange "felpumpálódik" akkor az excel sheet-en lévő összes cella (kb 64000 x kb 250 = 16 millió) címét és tartalmát elmenti a file-ba.

Ez okozhat drasztikus fileméret növekedést (100 elmentett cella vs 16 millió elmentett cella).

Ha most, az üres oszlopok és sorok törlése után Ctrl+lefele nyílt nyomsz, akkor hova jutsz?
Hány darab sheet-et használsz a workbook-on belül?
Előzmény: tamas1000 (11990)
Törölt nick Creative Commons License 2010.06.07 0 0 11992
Azaz talán mégsem.
Gombot kétféleképpen lehet hozzáadni.
Az egyik az Űrlap eszköztárból, a másik a Vezérlők eszköztárból.
Az űrlapos gomb gomb marad, ha átrakod diagramra.
A vezérlős gombból pedig kép lesz.
Előzmény: Törölt nick (11991)
Törölt nick Creative Commons License 2010.06.07 0 0 11991


Akkor ez is valami verziófüggő izé lehet. Bocs, nem akartalak félrevezetni.
Itt most nem tudom megtenni, de később, otthon ránézek a problémára 2007-es szemmel is.
Előzmény: Törölt nick (11989)
tamas1000 Creative Commons License 2010.06.07 0 0 11990
sajnos ez sem vált be!!!

de az alap méret eleve 1 MB, és a hozzáadott fájlok összesen mondjuk 0,5 MB-ot, tehát ettől nem növelné meg a teljes fájlméretet nem?

Azt nem értem, hogy lehet, hogy a laptopon meg itthon jó, a benti gépeken meg nem, illetve az egyik munkatársam is próbálta, és neki is megnövelte.

üdv
t
Előzmény: SQLkerdes (11983)
Törölt nick Creative Commons License 2010.06.07 0 0 11989
Lehet, hogy valamit rosszul csináltam, de a Ctrl-x -> Diagram kijelölés -> Ctrl-v után a vezérlőelemből kép lesz (Jobb gomb a művelet előtt: vezérlőelem formázási lehetőség; jobb gomb utána: kép formázási lehetőség). A makrót ehhez is hozzá lehet rendelni, de ez sajna - a már említett miatt - nem jó.
Előzmény: Törölt nick (11988)
Törölt nick Creative Commons License 2010.06.07 0 0 11988
Hogy érted azt, hogy a nyomógombról készített képpel?
Ez a kivágás beillesztés művelet nem a gomb képét rakja rá a diagramra, hanem a gombot magát. Hozzá tudom rendelni a makrót, és ha rákattintok, le is fut. Teszteltem. (Igaz, xl2003-ban.)
Előzmény: Törölt nick (11987)
Törölt nick Creative Commons License 2010.06.07 0 0 11987

Köszönöm szépen!

 

A problémát xl2007-ben kell megoldani, sajnos, az első javaslatod nem jó, mert nyomógomb feliratát változtatom minden lenyomáskor (napi adat, havi adat) és a nyomógombról készített képpel ezt nem lehet megtenni.

 

"Az Űrlapok eszköztár gombjával az is megy, ha a diagram van kiválasztva (Selected), és úgy rajzolod rá a gombot."

 

Ez sajnos nem működik, nem mozog együtt a diagrammal. :-(

Előzmény: Törölt nick (11986)
Törölt nick Creative Commons License 2010.06.07 0 0 11986
xl2003-ban:

0) a gombról leveszed a makróhozzárendelést
1) Kijelölöd a gombot
2) Ctlr+x (kivágás)
3) Kijelölöd a diagramot
4) Ctrl+v (beillesztés) -> a gomb a diagram bal felső sarkába kerül
5) áthelyezed és formázod a gombot tetszés szerint
6) újra hozzárendeled a makrót

Az Űrlapok eszköztár gombjával az is megy, ha a diagram van kiválasztva (Selected), és úgy rajzolod rá a gombot.
Előzmény: Törölt nick (11985)
Törölt nick Creative Commons License 2010.06.07 0 0 11985
Sziasztok!

Egy diagramon egy nyomógombbal (űrlap-vezérlő) váltok adatértékeket. A nyomógomb a diagram területen van. Azt szeretném valahogy elérni, hogy a nyomógomb együtt „mozogjon” a diagrammal, vagyis, ha a diagramot elmozdítom (áthelyezem) a nyomógomb maradjon a diagram területen, mozogjon együtt a diagrammal. Tudna valaki segíteni?
Előzmény: Törölt nick (11984)
Törölt nick Creative Commons License 2010.06.07 0 0 11984

Sziasztok!

 

Egy diagramon egy nyomógombbal (űrlap-vezérlő) váltok adatértékeket. A nyomógomb a diagram területen van. Az szeretném valahogy elérni, hogy a nyomógomb együtt „mozogjon” a diagrammal, vagyis, ha a diagramot elmozdítom (áthelyezem) a nyomógomb maradjon a diagram területen, mozog együtt a diagrammal. Tudna valaki segíteni?

SQLkerdes Creative Commons License 2010.06.07 0 0 11983
Na akkor itt a te problémád.
Ugyanis a legalsó, tartalommal rendelkező sorba illetve a legjobb :_) tartalommal rendelkező oszlopba kellene jussál.

Teendőd:
- keresd meg a legalsó, első teljesen üres sort
- jelöld ki a teljes sort
- Ctrl+Shift+lefele nyíl
- Töröld a kijelölt sorokat (NEM Clear, hanem Delete)

Ugyanaz a jobboldallal.

Mentés, file becsuk, újra kinyit.
Ettől le kéne csökkenjen a file mérete.
Előzmény: tamas1000 (11982)
tamas1000 Creative Commons License 2010.06.07 0 0 11982
Szia!

ha lefele nyilat nyomom CTRL-el, akkor legalulra, ha jobbra nyilat, akkor legjobbra jutok:)

üdv
t

Előzmény: SQLkerdes (11968)
SQLkerdes Creative Commons License 2010.06.07 0 0 11981
Van valahol ebben te tábládban egy sorszám-szerű (vagyis növekvő v. csökkenő) adat? Jellemzően az A oszlopban szoktak ilyenek lenni, nem kell, hogy egyesével csökkenjenek v. növekedjenek (pld számlaszámok, stb.).

Mert ha igen, akkor valszeg meg lehet csinálni függvénnyel is az üres-elemek nélküli listát is.

Ha van, jelezz vissza és megpróbálunk összeütni valamit.
Előzmény: Ciripke (11979)
Sánta Kutya (SK) Creative Commons License 2010.06.07 0 0 11980
Autoszűrővel oldanám meg, de inkább egy másik munkalapon, hogy a szűrő ne zavarjon be. Tehát a másik munkala egyik oszloába kezded beilleszteni az =Munka1!A1, =Munka1!A2 stb, képleteket tízig; ahol üres, ott alapban nulla jelenik meg. Az első sor kijelölésével adatok!szűrő!autoszűrő, a nyíl kinyitásával egyéni és nagyobb, mint "" (üres idézőjelpár).
Előzmény: Ciripke (11979)
Ciripke Creative Commons License 2010.06.06 0 0 11979
Sziasztok!

A következő problémában szeretném kérni a segítségeteket:

Van egy oszlop az excel táblázatban, ami mondjuk 10 cellából áll. a Cellákban vagy van valamilyen érték (szám vagy betű) vagy nincs. Egy másik területén a munkalapnak szeretnék ez alapján létrehozni egy olyan oszlopot, amiben a sorrendje marad az értékeknek, de kihagyva az üres cellákat. A sima másolás az üresek kivételével nem jó megoldás, valami "képletes" kéne, mert az oszlopban mindig változik, hogy hol van üres, hol nincs. (Pl.: egy előadás alkalmain megjelenteket beírom, és a vágán egy összegző listát ad, de már csak a megjelentekről, automatikusan.)
Remélem sikerült elóadnom a problémámat érthetően. :)

Előre is köszönöm a segítséget!

üdv:
C.
Törölt nick Creative Commons License 2010.06.06 0 0 11978
Ott a pont.
Előzmény: Delila_1 (11977)
Delila_1 Creative Commons License 2010.06.06 0 0 11977
Kicsit egyszerűbben: =SZORZATÖSSZEG((A2:A25=1)*(B2:B25=2))

Ennek a beviteléhez nem kell a Ctrl+Shift sem.
Előzmény: Törölt nick (11976)
Törölt nick Creative Commons License 2010.06.06 0 0 11976
De lehet így is:
=SZORZATÖSSZEG(HA(A1:A6=1;1;0);HA(B1:B6=2;1;0))

Így nem kell segédoszlop.

A1:A6 tartományban van az egyik sorozat, a B1:B6-ban a másik.
ctrl+shift+enter-el kell bevinni a képletet, tehát tömbképlet.

Előzmény: Aata1 (11972)
Törölt nick Creative Commons License 2010.06.06 0 0 11975
Pl. Fűzd össze a két oszlopot egy másikban és számold meg a "12"-t (Darabteli fgv-el)
Előzmény: Aata1 (11972)
Törölt nick Creative Commons License 2010.06.05 0 0 11974
Ctrl+TAB billentyűkkel
Előzmény: Törölt nick (11973)
Törölt nick Creative Commons License 2010.06.05 0 0 11973

"Ha egy word dokumentumba táblázatot szúrok be, akkor a táblázaton belül (cellán belül) nem sikerült működésre bírni a tabulátorokat. Ez így normális, vagy én nem találtam, hogy hogy lehet beállítani?"

 

Cellán belül  a Ctrl+TAB billenytűkkel lehet működésre bírni.

Lásd még: Formátum - Bekezdés beállításai

Előzmény: NeomatiK (11970)
Aata1 Creative Commons License 2010.06.05 0 0 11972
Sziasztok!

Az alábbi problémát szeretném megoldani. Van több oszlopom egymás után. Azt szeretném megszámolni, hogy hány olyan eset van, amikor az egyik oszlopomban 1-es van, akkor az utána következő oszlopban 2-es. Van erre valamilyen függvényetek?

A választ előre is köszönöm!
NeomatiK Creative Commons License 2010.06.05 0 0 11971
Olyan táblázatra vonatkozik a kérdésem, amit a word-ön belül készítek el. (Tudtommal nincs köze az excelhez.)
Előzmény: NeomatiK (11970)
NeomatiK Creative Commons License 2010.06.05 0 0 11970
Sziasztok!

Ha egy word dokumentumba táblázatot szúrok be, akkor a táblázaton belül (cellán belül) nem sikerült működésre bírni a tabulátorokat. Ez így normális, vagy én nem találtam, hogy hogy lehet beállítani?

Ha valóban nem működik, akkor hogy lehet azt elérni, hogy táblázaton, cellán belül igazodjon a beírt szöveg oda, ahova én szeretném? Nem a balrazárt és jobbrazárt igazításra gondolok, hanem hogy pl a cella jobboldali szegélye előtt 1cm-re jobbrazárt legyen a beírt szöveg.

SQLkerdes Creative Commons License 2010.06.04 0 0 11969
Még azt nézd meg lécci, hogy ha az excel táblában Ctrl+lefelenyíl-at nyomsz akkor hova jutsz.
Ugyanez Ctrl+jobbranyíllal?

Az excel néha felpumpálja a Usedrange-t, ez elméletben lehet a problémád oka.
Előzmény: SQLkerdes (11968)
SQLkerdes Creative Commons License 2010.06.04 0 0 11968
Az én tippem az, hogy valamiért az excel átalakítja a beimportált képek file formátumát (pld. jpg-ből bmp-t csinál). Az irodai excel-ed Option-jei között nézz szét, hogy van-e valami ilyesmi beállítva...
Előzmény: tamas1000 (11967)
tamas1000 Creative Commons License 2010.06.04 0 0 11967
természetesen lementettem pendrivera meg emilen is hazaküldtem.
ugyanazzal próbáltam ki! ugyanazt az 5 mellékletet tettem bele egy excel fájlba.
Előzmény: Törölt nick (11966)
Törölt nick Creative Commons License 2010.06.04 0 0 11966

"Itthoni gépemen, és laptopon minden további nélkül sikerül, és az adatállomány összeadódik, ahogy kell, szépen 1,5 MG lesz."

Az otthoni gépeden a munkahelyi adatállománnyal próbáltad ki?

Előzmény: tamas1000 (11957)
tamas1000 Creative Commons License 2010.06.04 0 0 11965
Azt is probaltam, hogy a szerverrol lementettem az asztalra, es ott probaltam a muveletet, de az eredmeny ugyanaz lett...
Előzmény: Sánta Kutya (SK) (11964)
Sánta Kutya (SK) Creative Commons License 2010.06.03 0 0 11964
Igen, én is beállításra gyanakszom, de így nem tudom kitalálni, végig kéne bogarászni őket...
Még egy lehet: a tárolási hely. Lehet, hogy a munkahelyi hálózat viselkedéséről van szó?
Előzmény: tamas1000 (11963)
tamas1000 Creative Commons License 2010.06.03 0 0 11963
A tomorites dolog nem valt be, azt ismertem en is. Nem kell makro, csak siman Jó lenne... De valami gebasz van. Valami furmanyos beallitas lehet!?!?
Előzmény: Sánta Kutya (SK) (11960)
tamas1000 Creative Commons License 2010.06.03 0 0 11962
Excel 2002 alapvetoen ami bent van. De a laptopon is 2002-es van es azon meg tudom csinalni..., eloszor en is a verzio problera tippeltem , de igy nem valoszinu.
Előzmény: Sánta Kutya (SK) (11961)
Sánta Kutya (SK) Creative Commons License 2010.06.03 0 0 11961
Egyébként még adós vagy az Excel verziójával, az nagyon nem mindegy ilyen kérdésnél.
Előzmény: tamas1000 (11959)
Sánta Kutya (SK) Creative Commons License 2010.06.03 0 0 11960
A viccelés nem opcionális. :-)

Nem tudom, mi okozza a különbséget, azonban ha rákattintasz a jobb gombbal a képekre, van egy parancs, hogy "látszik a kép eszköztár", azon találsz egy tömörítés ikont. Ha az eredeti kép megmarad, akkor az Excelbe nem kell jó minőségben beszúrni, bátran lehet tömöríteni. És szerencsére van olyan opció, hogy alkalmazás az összes képre, nem kell egyenként.

Azonban ha ez napi rendszerességű munka, célszerű lenne felkínálni valami pénzt/sört valakinek, aki ír rá egy makrót, amihez lehet tenni egy gombot az eszköztárra.
Előzmény: tamas1000 (11959)
tamas1000 Creative Commons License 2010.06.03 0 0 11959
nah, nem kell viccelni, sajnos komoly munkáról van szó, amivel szívunk rendesen.

Tehát 1,5 MB-os össz-adatállományból lesz a 25-30 MB

üdv
t
Előzmény: Sánta Kutya (SK) (11958)
Sánta Kutya (SK) Creative Commons License 2010.06.03 0 0 11958
1,5 megagiga? Az jó nagy file. :-)))
Előzmény: tamas1000 (11957)
tamas1000 Creative Commons License 2010.06.03 0 0 11957
Sziasztok!

Hihetetlen problémával találkoztam, ami gondolom egy pár pitiáner kattintással (remélem) megoldható.

Adott egy excel fájl, amibe a következő módon kell jpg. képeket beszúrni:

Beszúrás
Objektum
Létrehozás fájlból
Tallózás (itt ugye kiválasztom amit szeretnék)
Ikonként látszik be kell ikszelni

Ennyi a mulatság, ami munkahelyi gépeinken úgy valósul meg, hogy az összes 1,5 MB adatállományból 20-30 MB lesz!!
Tehát a kiindulási 1 MB-os excel, és a csatolandó (összes!) 0,5 MB dokumentumokból lesz ez a gigafájl.....

Itthoni gépemen, és laptopon minden további nélkül sikerül, és az adatállomány összeadódik, ahogy kell, szépen 1,5 MG lesz.

Erre kérném a megfejtést, mer beleőszülök....
Ez nem egy egyszeri alkalom, hanem naponta kell többször megcsinálni folyamatosan.

köszi+üdv
tamás
tamas1000 Creative Commons License 2010.06.03 0 0 11956
Sziasztok!

Hihetetlen problémával találkoztam, ami gondolom egy pár pitiáner kattintással (remélem) megoldható.

Adott egy excel fájl, amibe a következő módon kell jpg. képeket beszúrni:

Beszúrás
Objektum
Létrehozás fájlból
Tallózás (itt ugye kiválasztom amit szeretnék)
Ikonként látszik be kell ikszelni

Ennyi a mulatság, ami munkahelyi gépeinken úgy valósul meg, hogy az összes 1,5 MB adatállományból 20-30 MB lesz!!
Tehát a kiindulási 1 MB-os excel, és a csatolandó (összes!) 0,5 MB dokumentumokból lesz ez a gigafájl.....

Itthoni gépemen, és laptopon minden további nélkül sikerül, és az adatállomány összeadódik, ahogy kell, szépen 1,5 MG lesz.

Erre kérném a megfejtést, mer beleőszülök....
Ez nem egy egyszeri alkalom, hanem naponta kell többször megcsinálni folyamatosan.

köszi+üdv
tamás

aulac Creative Commons License 2010.06.02 0 0 11955
Köszönöm a választ.
Előzmény: aulac (11948)
SQLkerdes Creative Commons License 2010.06.02 0 0 11954
Az attól függ.
Másodlagos x vagy másodlagos y tengelyt használsz?
Előzmény: Árpi84 (11953)
Árpi84 Creative Commons License 2010.06.02 0 0 11953
Szia/Sziasztok!

Köszönöm a segítséget, ezzel meg lehet oldani a problémát ha csak egy tengelyed volt eddig, de mi van akkor, ha az adott diagramban már használok másodlagos tengelyt? Ilyen estre nincs valami ötleted/ötletetek?
Előzmény: SQLkerdes (11944)
Kenus Creative Commons License 2010.06.02 0 0 11952

A konkrét esetben nem ismert a dokumentum neve, így maradt a 2. megoldás.

A működés vizsgálata érdekes eredményt adott. Az Execute hatására azonnal megjelent a tálcán az elkészítemdő körlevél ikonja, de csak néhány másodperc múlva lehetett vele bármit kezdeni (többszáz címzettről van szó). Az Activedocument viszont azonnal felvette ennek tulajdonságait, így a 2. megoldás "bolondbiztosnak" tűnik (kattintgathattam közben akárhová).

Köszönöm a segítséget!

Előzmény: Törölt nick (11942)
SQLkerdes Creative Commons License 2010.06.02 0 0 11951
Nincs mit, sql ahol tud segít :-)
Előzmény: Törölt nick (11950)
Törölt nick Creative Commons License 2010.06.01 0 0 11950
köszi a 2009. decemberi könyvajánlásodat. Már birtokolom. És jó.
Előzmény: SQLkerdes (11944)
Törölt nick Creative Commons License 2010.06.01 0 0 11949
Erre nem gondoltam :)

http://www.amazon.co.uk/Numeric-Number-Keypad-Laptop-Notebook/dp/B000P158OM

vagy
jobb egérgomb és a menüben beszúrás

vagy a jobb ctrl melletti billentyűrevel is elérhető ugyanez a jobbgombos gyorsmenü
(legalábbis ezen a billentyűzeten:)
excel2007 alatt így néz ki:
gyorsmenübillentyű+b+b+enter

vagy
definiálsz rá egy billentyűparancsot
Előzmény: aulac (11948)
aulac Creative Commons License 2010.06.01 0 0 11948
Szia robbantomester.
Mááár meginééééééééééén.

"Akkor csak egyet szúrj be:

Ctrl+Space
Ctrl+c
Ctrl+"+" "

De mit nyomjak meg, ha laptoppon is szeretném használni ahol nincs numerikus billentyűzet?

Bocs a láma kérdésekért.
Előzmény: Törölt nick (11932)
Törölt nick Creative Commons License 2010.06.01 0 0 11947
Semmi gond ;-)
Előzmény: Redlac (11946)
Redlac Creative Commons License 2010.06.01 0 0 11946
Bár akkor is csak a gyorsabb megoldás vezérelt, de igazad van, ne haragudj. Legközelebb türelmesebb leszek :-)

Köszönöm az eddigi segítségedet is.

"On topic"
Előzmény: Törölt nick (11945)
Törölt nick Creative Commons License 2010.06.01 0 0 11945

"Ha úgy gondolod, hogy etikátlan egy problémát 2 helyre feldobni, akkor a jövőben egyet ide, egyet oda fogok kérdezni (még megharagszik valaki és magamban maradok"

 

Lehet, hogy rosszul fogalmaztam, de azt szerettem volna javasolni, hogy amit itt kapsz meldoldási javaslatot, azt ne vidd át egy másik fórumra, mint problémát, azt ameddig lehet, beszéljük ki itt. Az egészet csak azért vetettem fel, mert az általam adott megoldási javaslatot a másik fórumon láttam viszont, mint problémafelvetést.

 

Részemről az ügy lezárva.

SQLkerdes Creative Commons License 2010.06.01 0 0 11944
Ez lehet segít.
Kicsit tudni kell hozzá angolul, de ha minden kötél szakad akkor a Google/translate segít a bajban.
Előzmény: Árpi84 (11939)
SQLkerdes Creative Commons License 2010.06.01 0 0 11943
A létrejövő (merged) dokumentumot/projectet Letter1-nek hívja a VB, lehet ott érdemes kapirgálni....
Előzmény: Törölt nick (11942)
Törölt nick Creative Commons License 2010.06.01 0 0 11942
Nos, hát Word-ben nem vagyok nagyon otthon, ezért bár tippem van, nem biztos, hogy működni fog, és tesztelni sem tudom. Szóval, 2 dolgot próbálnék meg.

1) Ha ismered a dokumentum nevét, ami létrejön, akkor névvel lehet rá hivatkozni:

With ThisDocument.MailMerge

...
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
Set kDoc = Documents("hogyishívják")
MsgBox kDoc.Name
Set kRange = kDoc.Range(0, kDoc.Characters.Count - 1)
...

End With

2) Ha Excelben új munkafüzetet hozok létre illetve nyitok meg, az mindig az "élre kerül", tehát ő lesz az aktív munkafüzet. Ebből kiindulva gondolom, a MailMerge.Execute által létrehozott dokumentum is aktív lesz a létrehozás után. Tehát (némileg ellentmondva korábbi javaslatomnak) kDoc-hoz rendelném az aktuálisan aktív dokumentumot.

With ThisDocument.MailMerge

...
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
Set kDoc = ActiveDocument
MsgBox kDoc.Name
Set kRange = kDoc.Range(0, kDoc.Characters.Count - 1)
...

End With

Nem tudom, hogy az Execute és a Set kDoc végrehajtása közötti rövidke időtartam alatt lehetséges-e megváltoztatni az aktív dokumentumot, de ha lehetséges, akkor is elég kicsinek látom az esélyét.
Előzmény: Kenus (11936)
Árpi84 Creative Commons License 2010.06.01 0 0 11941
Bocsi, de az előbb is lemaradt a kép!

példa
Árpi84 Creative Commons License 2010.06.01 0 0 11940
Bocsi, az előbb lemaradt a példa!
Árpi84 Creative Commons License 2010.06.01 0 0 11939
Sziasztok!

Egy olyan problémával fordulok hozzátok, hogy szeretnék összetartozó számpárokat diagramban ábrázolni és az így kapott görbe alatti területet beszínezni.
Ha a számokat Pont(XY) diagramban ábrázolom, akkor az eredmény jó, de nem tudom hogyan lehet kitölteni az alatta lévő területet. Ha viszont átteszem a diagramot Terület diagrammá, akkor az x értékek közötti távolságot egyenlőnek jelzi, még akkor is, ha nem az.
A példa kedvéért mellékeltem egy képet is a problémáról.
(Excel 2003-ast használok)

Segítségeteket előre is köszönöm.

Redlac Creative Commons License 2010.06.01 0 0 11938
Tisztelt Boraka!(nem cinizmus, őszintén)

Azért használom mindkét fórumot, mert van olyan, mint az előző is, amire szeretném, ha aránylag hamar meglenne a megoldás.
Emellett a két oldalról érkező megoldásokat próbálom egybe gyúrni, mert tanulni is szeretnék. Pont a mostani felvetésem megoldása is egy ilyenből született. Mivel éjszaka dolgoztam, feldobtam mindkét fórumra, hátha délelőtt valamelyikre érkezik segítség. Aztán nekem sikerült megoldanom, de mielőtt ide is írhattam volna ez ügyben, el kellett mennem a géptől.

Hálás vagyok mindenkinek, aki önzetlenül segít, nem célom, hogy esetleg tudatlanságból megbántsak valakit. Ha úgy gondolod, hogy etikátlan egy problémát 2 helyre feldobni, akkor a jövőben egyet ide, egyet oda fogok kérdezni (még megharagszik valaki és magamban maradok ;-).

Ha küldesz egy mailt, szívesen megosztom Veled a hetek óta tartó billentyűütögetésem eredményét, melybe sok mindent beleépítettem.

Üdvözlettel:

Leslee

Előzmény: Törölt nick (11935)
bejgleee Creative Commons License 2010.06.01 0 0 11937
Sziasztok!
Ismertek-e olyan beillesztési módot, hogy ha vannak elrejtett celláim, akkor azokra nem illeszt rá, csak a felfedettekre?
Üdv,
Levi
Kenus Creative Commons License 2010.06.01 0 0 11936

Szia(sztok)!

Bocs, hogy ismét Worddel zaklatok, de a minap is szíves és hasznos segítséget kaptam itt.

Nem hagyott nyugodni, amit javasoltál. Kipróbáltam, gyönyörűen működött, kattogtathattam akárhová.

De:

    With ThisDocument.MailMerge

        ...
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
        Set kDoc = Documents(1)
        MsgBox kDoc.Name
        Set kRange = kDoc.Range(0, kDoc.Characters.Count - 1)
        ...

    End With

Várakozásommal ellentétben az .Execute metódus hatására elkészülő körlevél indexe nem Documents.Count, hanem 1. Nem találtam sehol e jelenség dokumenáltságát.

Mennyire lehetek biztos abban, hogy a manipulálandó körlevél indexe a Documents gyűjteményben mindig 1? 

Előzmény: Törölt nick (11883)
Törölt nick Creative Commons License 2010.06.01 0 0 11935

Gondolom, észrevetted, hogy szívesen segítünk, ha tudunk, de szeretném javasolni, hogy az itt kapott kódot  ne vidd át egy másik fórumra problémaként. Beszéljük meg itt. Egyébként, a mostani felvetésed már megoldásként szerepel a másik fórum-on. Persze, az természetes, hogy ha itt senki nem tud segíteni, máshova is fordulunk...

Előzmény: Redlac (11934)
Redlac Creative Commons License 2010.06.01 0 0 11934

Üdv Nektek!

 

 

Azt szeretném, ha dupla kattintásra az aktív cella mellett balra lévő cella értékét adja vissza.

 

A tartomány, ahol szeretném, ha működne ("b1:b10").

Tehát, ha az B1-re kattintok duplán, akkor azA1 értékét adja.

 

Azt sikerült elérnem, hogy a felette lévő értéket adja vissza, de balra mellette lévő nem ment:-(

 

Valakinek ötlete?

aulac Creative Commons License 2010.05.31 0 0 11933
Nagyon köszönöm.
Előzmény: Törölt nick (11932)
Törölt nick Creative Commons License 2010.05.31 0 0 11932
Akkor csak egyet szúrj be:

Ctrl+Space
Ctrl+c
Ctrl+"+"



ha ennyire ragaszkodsz a makróhoz, próbáld meg ezt:

Sub beszur()
With Range(Cells(ActiveCell.Row, "B"), Cells(ActiveCell.Row, "K"))
.Copy
.Insert Shift:=xlDown
End With
Range(Cells(ActiveCell.Row, "B"), Cells(ActiveCell.Row, "D")).ClearContents
End Sub


Előzmény: aulac (11931)
aulac Creative Commons License 2010.05.31 0 0 11931
Forummotor megette a lényeget.

Tehát köszönöm.
De nem egyszerre kell több sort beszúrni, hanem csak néha egyet egyet.
Tehát mondjuk a 10. után, azután a 22.után azután majd a 90.után.
És, hogy komplikáljam az egész B-K területet újra kellene generálnia. Tehát beszorozni a darabszámot az árral. A beszúrt sorokban is.
Ha megnézed rögtön láthatod.

Előzmény: aulac (11930)
aulac Creative Commons License 2010.05.31 0 0 11930
Köszönöm
Előzmény: Törölt nick (11929)
Törölt nick Creative Commons License 2010.05.31 0 0 11929
akkor több sort jelölj ki, amennyit be akarsz szúrni. (a "B:K" tartományban)

majd ctrl + "+"
majd ENTER

Előzmény: aulac (11928)
aulac Creative Commons License 2010.05.31 0 0 11928
robbantomester.

köszönöm a gyors választ.
Az a baj, hogy a beszúrást nem egyszer kellene elvégezni, hanem esetleg 5-10 új sor is kellene.
ezért kérem inkább a makrot. (Ha lehet)

aulac
Előzmény: Törölt nick (11912)
Delila_1 Creative Commons License 2010.05.31 0 0 11927
Az előbbi két módszer között különbség van.

Az listás a fölötte lévő sor mindegyik képletét lemásolja, amint az első adatot megadtad az új sorban, míg a második csak az(oka)t, amelyik(ek) a beírt adatra vonatkoznak.

Például az A és B oszlopba fixen írsz be számokat. Az A-val a D és E számol tovább, az összes többi oszlop képlete a B értékével számol. Amint beírsz valamit az A oszlopba, a D és E képlete lemásolódik, a többi oszlopé akkor, mikor a B-nek is adtál értéket.
Előzmény: Redlac (11925)
Delila_1 Creative Commons License 2010.05.31 0 0 11926
A makrót el is hagyhatod (ha mást nem tartalmaz). Kijelölöd az eddigi adataidat, Adatok -> Lista -> Lista létrehozása – vagy ezek helyett Ctrl+r.
Kék keretbe foglalja az adataidat, plusz 1 sort. Mikor ebbe az utolsó sorba beírsz egy értéket, a képleteidet automatikusan bemásolja a sor többi cellájába, a keretet pedig újabb üres sorral bővíti.

Másképp is létrehozhatod ezt az másolást: Eszközök -> Beállítások -> Szerkesztés fül -> az "Adattartományok végén a formázás és a képletek folytatása" előtti négyzetet bejelölöd.
Előzmény: Redlac (11925)
Redlac Creative Commons License 2010.05.31 0 0 11925
Az a legtutibb, ha felteszem a kérdést és meg is tudom válaszolni magamnak :-)

A kérdéses sort kitöröltem és működik a dolog.

A makrót nem én írtam, de olyan jónak tűnt az a sor benne :-). De, ha anélkül is működik, akkor szerintetek minek kellett bele?
Előzmény: Redlac (11924)
Redlac Creative Commons License 2010.05.31 0 0 11924
Üdv Nektek!

Van egy sorbeszúrós makróm, ami az utolsó sor után beszúr egy újabbat, majd a felette lévő sorban lévő képleteket is továbbviszi.

sor = Cells(Rows.Count, "F").End(xlUp).Row
Rows(sor).Copy
Rows(sor + 1).PasteSpecial
Range("A" & sor - 1 & ":O" & sor).AutoFill Destination:=Range("A" & (sor - 1) & ":O" & (sor + 1)), Type:=xlFillDefault
Range("stop").Select

MsgBox "Egy sorral több lett", vbInformation, "ESEMÉNY!"


Remekül működött egy darabig, aztán beszúrtam még oszlopokat, meg egyesítettem cellákat. Azóta bár úgy tűnik végrehajtja a sorbeszúrást, és visszanézve a képleteket is másolta, mégis ezzel a hibaüzenettel jelentkezik:

Run-time error '1004':
"A művelet végrehajtásához szükséges, hogy az egyesített cellák azonos méretűek legyenek."

és a makró ezen sorát jelöli ki:

Range("A" & sor - 1 & ":O" & sor).AutoFill Destination:=Range("A" & (sor - 1) & ":O" & (sor + 1)), Type:=xlFillDefault

Arra rájöttem manuálisan:
1. Lett egy (3 egymás melletti cellából) egyesített cellám (ez a korábban jól működő másolásnál nem volt). Ezt külön tudom másolni. Azonban, ha más olyan cella is ki van vele együtt (mellette, tehát mondjuk az egész sor) jelölve, akkor azt már nem engedi lehúzni.
2. Ha nem húzva másolom, hanem kijelölve ctrl+c-ctrl+v, akkor átmegy, nem kiabál.

A kérdés: hogyan kellene átírni a makrót, hogy működjön a másolás?

Előre is köszi

andzsin Creative Commons License 2010.05.31 0 0 11923
van Allah:))) meg Jimmy:)) kösz szépen, muxik. nem rinyáltam volna ha itt ha csak tíz sorról lett volna szó, de több százról van szó és egyesítenem kell a cellákat és így már működik. legalább ezt is megtanultam:)
Előzmény: Törölt nick (11922)
Törölt nick Creative Commons License 2010.05.31 0 0 11922
Eszközök menüpont -> Beállítások menü -> Megjelenítés fül -> Ablakjellemzők szekció -> Képletek pipa ki.
Előzmény: andzsin (11921)
andzsin Creative Commons License 2010.05.31 0 0 11921
most kipróbáltam, hogy a számot átírtam betűre, de úgyse csinálja. mivel a képlet jó csak valami beállítás gubanc lehet imho, csak fogalma sincs mi?
andzsin Creative Commons License 2010.05.31 0 0 11920
általánosként van definiálva, próbáltam szövegként, számként, sehogyse csinálja. viszont ha az fx-re rákattintok miután a függvényt beírtam, feljön a függvényargumentum ablak, ahol egymás alatt megjelenik a három cella azonosítója és alatta =után megjelenik a szöveg összefűzve:) rákattintok, hogy kész és ugyanúgy csak a függvény képlete marad ott.
Előzmény: Törölt nick (11919)
Törölt nick Creative Commons License 2010.05.31 0 0 11919
Sztem szövegként van formázva a D oszlopod, és az Excel azt hiszi, estimesét írtál bele.
Jelöld ki a D oszlopot, Formátum -> Cellák -> Szám -> Általános
Írd be a D5-be újra a képletet.
Ennek működnie kell...
Előzmény: andzsin (11918)
andzsin Creative Commons License 2010.05.31 0 0 11918
ráállok a D5 cellára, beírom a képletet =ÖSSZEFŰZ(A5;B5;C5)
és ott marad a képlet a cellában, nem vonja össze. egymás után meg kellene jelennie a három cellának, de ehelyett csak a képlet marad ott.
Előzmény: Delila_1 (11917)
Delila_1 Creative Commons License 2010.05.31 0 0 11917
A három cellában marad, ami volt, abban a cellában jelenik meg a 3 érték együtt, ahova a függvényt beírtad.
Előzmény: andzsin (11916)
andzsin Creative Commons License 2010.05.31 0 0 11916
ezekkel próbálkoztam, most megcsináltam megint és semmi, valamit elszúrok. most az mindegy, hogy A5, B5, C5 cellákat szeretném összefűzni. ez a képlet:
=ÖSSZEFŰZ(A5;B5;C5), de bármelyikkel csinálom, semmi.

kijelöli színessel a három cellát mikor beírtam, a végén nyomok egy entert és nem történt semmi. gondolom a cellahatároknak el kéne tűnnie és egy oszlopot kéne alkotnia a három helyett. de nem csinál semmit. nem lehet, hogy az a baja, hogy szám is van meg betű is vagy az mindegy?

hol lehet a hiba?
Előzmény: Delila_1 (11915)
Delila_1 Creative Commons License 2010.05.31 0 0 11915
1. =Összefűz(A1;B1;C1)
2. =A1&B&C1

Mindegyiknél tehetsz köté szóközt.
1. =Összefűz(A1;" ";B1;" ";C1)
2. =A1&" "&B1&" "&C1
Előzmény: andzsin (11913)
Törölt nick Creative Commons License 2010.05.30 0 0 11914
pedig annak menie kell.
mi a cella formátuma?
Előzmény: andzsin (11913)
andzsin Creative Commons License 2010.05.30 0 0 11913
sziasztok, basszuskulcs 3 órája próbálok cellákat egyesíteni, már mindent végigolvastam és nem csinálja, ill. úgy csinálja, hogy csak az első elem marad meg, próbáltam az "és" jellel, próbáltam összefűzzel...semmi, fogalmam sincs hol a bibi. a lényeg van 3 oszlop, az első betűs, a második számos, a harmadik betűs. Ezt a három oszlopot kellene egy oszlopba (illetve egy-egy cellába) rendezni, de sehogy se sikerül. kösz bárkinek, mert már megőrülök!
Törölt nick Creative Commons License 2010.05.30 0 0 11912
B:K oszlopok ijelölése majd Ctrl+Space majd Enter
helyett
....majd Ctrl+"+"....


1. Ctrl+Space (vagy jobb egérgomb katt. Gyorsmenüből kiválasztod a Beszúrást)
helyett
1. Ctrl+"+" ....
Előzmény: Törölt nick (11911)
Törölt nick Creative Commons License 2010.05.30 0 0 11911
Most, hhgy látom is már egész másképp értem amit írtál.
Szerintem az a legegyszerűbb, ha az A3 cellába beírod egyszerűen ezt:
=SOR(A3)-2

és "továbbhúzod." ameddig kell.

Ha sort szúrsz be, azt pedig pl következő módon:
Shift + "Space"
ctrl+ "c"
ctrl+ "+"

vagy még egyszerűbb:

Shift + "Space"
ctrl+ "+"
ctrl + "l" (L)

Ha egyik sem tetszik akkor szólj, szívesen írok egy szkriptet is.
De ezt pl próbáld ki:
Sub Makró1()
Range(Cells(ActiveCell.Row, "B"), Cells(ActiveCell.Row, "K")).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Megjegyzem, tök felesleges bármelyik fenti hercehurca, mert ha csak a B:K tartományt jelölöd ki sorbeszúrás helyett, akkor pontosan az történik amit te szeretnél...
így:

B:K oszlopok ijelölése majd Ctrl+Space majd Enter
bővebben:
0. B:K oszlopok kijelölése ott ahová sor szúrnál be.
1. Ctrl+Space (vagy jobb egérgomb katt. Gyorsmenüből kiválasztod a Beszúrást)
2. Enter. (Ha minden igaz felismeri hogy te mit szeretnél, és alapból a megfelelő rádiógomb lesz bjelölve a felugró panelen - mégpedig a "cellék eltolása lefelé")


Előzmény: aulac (11909)
aulac Creative Commons License 2010.05.30 0 0 11910
robbantomester. mail ment.
Előzmény: Törölt nick (11907)
aulac Creative Commons License 2010.05.30 0 0 11909
Méltem
Előzmény: aulac (11908)
aulac Creative Commons License 2010.05.30 0 0 11908
Azt szeretném, hogy automatikusan menjen.
Ha gondolod elküldöm a táblát. Úgy szerintem könnyebb.
aulac
Előzmény: Törölt nick (11907)
Törölt nick Creative Commons License 2010.05.30 0 0 11907
de ha azt szeretnéd hogy ez automatikusan megtörténjen, akkor makró kell
Előzmény: aulac (11905)
Törölt nick Creative Commons License 2010.05.30 0 0 11906
Kattintsunk annak az oszlopnak a cellájára, amely alapján rendezni szeretnénk.
Kattintsunk a Rendezés – növekvő vagy a Rendezés – csökkenő gombra.

Megjegyzés: A kimutatásokat a Microsoft Excel a kijelölt mező alapján rendezi.

by F1 súgó
Előzmény: aulac (11905)
aulac Creative Commons License 2010.05.30 0 0 11905
Szia robbantomester.

Újra a segítségedet kérem.

Adott egy táblázat. "A" oszlop számozva mondjuk 1-200ig. "B" oszlopban árunevek vannak.
Ha, mondjuk a 10. sorba beszúrok egy új árut, hogyan lehet megcsinálni azt, hogy az "A " oszlopot újrarendezze növekvő sorrendbe? Tehát a beszúrt legyen a 10. és az alatta lévő, amelyik eddig volt az, a 11. és így tovább. Értelem szerűen a sorok számozása eggyel növekszik, tehát 201.lesz.
Ha nem elég érthető javíts ki.
köszönettel aulac.
Előzmény: Törölt nick (11904)
Törölt nick Creative Commons License 2010.05.29 0 0 11904
ja meg most látom már meg is volt ;)
Előzmény: Törölt nick (11903)
Törölt nick Creative Commons License 2010.05.29 0 0 11903
ja, a targetet kihagytam de ezt már meg tudod oldani.
Előzmény: Törölt nick (11902)
Törölt nick Creative Commons License 2010.05.29 0 0 11902
Emlékeztem egy billentyűkombinációra, ami ezt teszi. Rákerestem:
http://office.microsoft.com/hu-hu/excel/HP030561071038.aspx


pl így lehet:

adattartomány kijelöl (A1-A10)
Ctrl+Shift+. (pont)
Ctrl+Enter

És az idő beíródik a teljes tartományba.

Vagy ha makró kell, akkor pl:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("a1:a10") = Now()
Cancel = True
End Sub
Előzmény: Redlac (11894)
Redlac Creative Commons License 2010.05.29 0 0 11901
Ez is megyen :-)

Sajnos nem nagyon tudok angolul, így a VB súgójával nem sokra megyek. Más kódokból próbálok értelmezni dolgokat, kisebb-nagyobb sikerrel.

Most akkor újra tanultam valamit, köszönöm.
Előzmény: Törölt nick (11896)
Törölt nick Creative Commons License 2010.05.29 0 0 11900
Jobban átnézve, ha gondolod, inkább az alábbiakat másold az 1. munkalap eseménykezelőjébe, mert ez jobban kezeli a lehetséges hibákat:

------------------------------

Private Sub Hibaüzenet(T As Range, HK As Byte)
Select Case HK
Case 1
MsgBox "Érvénytelen érték az " & T.Address(False, False) & " cellában!", vbCritical, "Adatvédelem"
Case 2
MsgBox "Ez nem az A1-es cella! (" & T.Address(False, False) & ")", vbCritical, "Adatvédelem"
End Select
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next

If Target.Address = "$A$1" Then
If Mid(Target, 1, 1) = "K" And Len(Target) > 1 Then
Worksheets("3").Activate
Worksheets("3").Range("Z" & Mid(Target, 2, Len(Target))).Select
If Err.Number <> 0 Then
Worksheets("1").Activate
Hibaüzenet Target, 1
Err.Clear
End If
Else: Hibaüzenet Target, 1
End If
Else: Hibaüzenet Target, 2
End If

Cancel = True

End Sub
Előzmény: Törölt nick (11899)
Törölt nick Creative Commons License 2010.05.29 0 0 11899
Mit szólnál ahhoz, ha nyomogomb helyett simán rákattintanál kettőt az 1. munkalap A1-es cellájára és átrepítene a 3. munkalap Z oszlopának megadott cellájába?

Másold az alábbi kódot az 1. es munkalap eseménykezelőjébe:

-------------------------------------------------

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Address = "$A$1" And Mid(Target, 1, 1) = "K" And Len(Target) > 1 Then
Worksheets("3").Activate
Worksheets("3").Range("Z" & Mid(Target, 2, Len(Target))).Select
Else: MsgBox "Ez nem az A1-es cella! (" & Target.Address(False, False) & ")", vbCritical, "Adatvédelem"
End If

Cancel = True

End Sub
Előzmény: Redlac (11885)
Törölt nick Creative Commons License 2010.05.29 0 0 11898
Köszi, de ott van, akárhányszor lefuttatom, valamiért megjelenik. Azért bosszant, mert nem értem, hogy miért teszi ezt... Mindenesetre, azért beillesztem a hibakezelést is.
Előzmény: Törölt nick (11897)
Törölt nick Creative Commons License 2010.05.29 0 0 11897
Még az jutott eszembe, hogy mivel nem értjük, miért van ott az a gordiuszi csomó, mielőtt nagy lendületet veszünk a kettéhasításához, érdemes felkészülni rá, hogy esetleg mégse nincs ott, nehogy pofáraesés legyen a vége.

Selection.Interior.ColorIndex = 19
On Error Resume Next
ActiveChart.SeriesCollection(2).Delete
On Error Goto 0
Előzmény: Törölt nick (11895)
Törölt nick Creative Commons License 2010.05.29 0 0 11896
Mit szólnál az alábbi kettő megoldáshoz?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
Target.Value = FormatDateTime(Time, vbShortTime)
End If

Cancel = True

End Sub

-----------------------------------------

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Row >= 1 And Target.Row <= 10 And Target.Column = 1 Then
Target.Value = FormatDateTime(Time, vbShortTime)
End If

Cancel = True

End Sub
Előzmény: Redlac (11894)
Törölt nick Creative Commons License 2010.05.29 0 0 11895
No, hát, ha Te is és Nagy Sándor is így oldanátok meg, akkor én is csatlakozok a társasághoz. :-) Köszönöm szépen!
Előzmény: Törölt nick (11893)
Redlac Creative Commons License 2010.05.29 0 0 11894
Köszönöm, de egyelőre valami miatt nem akarja működni magát.
Még próbálkozom, de van egy fenntartásom a hiperhivatkozással.

Más táblázatnál jártam vele úgy, hogy amikor levédtem a lapot módosítás ellen, de úgy, hogy a zárolt cellát még kijelölni sem engedtem, akkor a hivatkozás közelébe kattintva is "ugrott". :-(

Az a gombos-makrós dolog nagyon bonyolult lenne?


Esetleg egy kis más kérdés:

Azt szeretném egy táblázatban, hogy egy tartományon belül, ha duplán kattintok, akkor írja be az aktuális időt. Erre ezt alkottam, de nem akarja az igazságot:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.range ("a1:a10")
Target = FormatDateTime(Time, vbShortTime)
Cancel = True
End Sub

Azt meg tudom alkotni, hogy mindenhová kattintva beírja, de a pontos helyet nem sikerült rögzítenem.
Előzmény: Törölt nick (11889)
Törölt nick Creative Commons License 2010.05.28 0 0 11893
Én sem értem, de szerintem Nagy Sándor ezt úgy oldaná meg, hogy "Ha ott van, és nem kell, hát töröld."

Select Case HN
Case "H"
ActiveChart.ChartTitle.Text = "Havi áruértékesítés"
ActiveChart.ChartType = xlCylinderColClustered
ActiveChart.SetSourceData Source:=Sheets("Diagram2").Range("B1:" & Cells(2, Ig).Address(False, False))
ActiveChart.SeriesCollection(1).Values = "=Diagram2!$B$2:" & Cells(2, Ig).Address
ActiveChart.SeriesCollection(1).XValues = "=Diagram2!$B$1:" & Cells(1, Ig).Address
ActiveChart.SeriesCollection(1).Name = "=""Havi áruértékesítés"""
ActiveChart.SeriesCollection(1).ApplyDataLabels
ActiveChart.SeriesCollection(1).DataLabels.Select
Selection.Interior.ColorIndex = 19
ActiveChart.SeriesCollection(2).Delete
Előzmény: Törölt nick (11892)
Törölt nick Creative Commons License 2010.05.28 0 0 11892

Igen, valamiért a havi adatoknál megjelenik egy második adatsor is, ami a napi adatoknál  nem:

 

Napi adatok estén:

 

 

 

 

 

 

 

 

 

 

 

Havi adatok esetén:

 

 

 

 

 

 

 

 

 

 

 

Ugyanaz a makró és mégis más az eredmény... Nem értem...

Előzmény: Törölt nick (11891)
Törölt nick Creative Commons License 2010.05.28 0 0 11891
Megint csak tippelek. Miután lefutott a makró, nézd már meg, hány adatsor van a grafikonon. Szerintem kettő. Te csak az elsővel foglalkozol, azt definiálod, módosítod, de közben a másik is ott van a háttérben. Szerintem akkor is ott van, amikor a napi adatokat jeleníted meg, csak valamiért - pl. skálázási okokból - nem látszik. Ha kitörlöd a 2. adatsort, úgy gondolom, megjavul a grafikon viselkedése.
Előzmény: Törölt nick (11890)
Törölt nick Creative Commons License 2010.05.28 0 0 11890

Sziasztok!

Makróval történő diagram frissítésben szeretnék segítséget kérni. Egy nyomógombbal szeretnék egy diagram felületen vagy csak napi, vagy pedig csak havi adatokat megjeleníteni.
Adott kettő munkalap, „Diagram” és „Diagram2”, amelyeken az alábbi struktúra szerint vannak adatok:

 

 

 

 

 

 

 

 

 

A „Diagram” munkalapon található az Áru nevű diagramfelület, valamint egy „HaviNapiBTN” nevű nyomogomb.

A problémám lényege az, nem értem, hogy az alábbi rutin miért tesz fel kettő azonos értéket a diagramra, amikor a „havi” adatokat szeretném megjeleníteni, a „napi” adatoknál pedig teljesen jól jeleníti meg az adatokat:

 

 

 

 

 

 

 

 

A „HaviNapiBTN” nevű nyomógombhoz az alábbi makrót rendeltem:

 

Sub ÁruHaviNapiAdatok()

 

ActiveSheet.Shapes("HaviNapiBTN").Select
 
  If Selection.Characters.Text = "Havi adatok" Then
    ÁruHN "H", Worksheets("Diagram2").Cells(2, Columns.Count).End(xlToLeft).Column
    ActiveSheet.Shapes("HaviNapiBTN").Select
    Selection.Characters.Text = "Napi adatok"
  Else
    ÁruHN "N", Worksheets("Diagram").Cells(1, Columns.Count).End(xlToLeft).Column
    ActiveSheet.Shapes("HaviNapiBTN").Select
    Selection.Characters.Text = "Havi adatok"
  End If

 

  ActiveSheet.ChartObjects("Áru").Activate

 

End Sub

-----------------------------------------------------------------

Private Sub ÁruHN(HN As String, Ig As Long)
  
  ActiveSheet.ChartObjects("Áru").Activate
 
  Select Case HN
    Case "H"
      ActiveChart.ChartTitle.Text = "Havi áruértékesítés"
      ActiveChart.ChartType = xlCylinderColClustered
      ActiveChart.SetSourceData Source:=Sheets("Diagram2").Range("B1:" & Cells(2, Ig).Address(False, False))
      ActiveChart.SeriesCollection(1).Values = "=Diagram2!$B$2:" & Cells(2, Ig).Address
      ActiveChart.SeriesCollection(1).XValues = "=Diagram2!$B$1:" & Cells(1, Ig).Address
      ActiveChart.SeriesCollection(1).Name = "=""Havi áruértékesítés"""
      ActiveChart.SeriesCollection(1).ApplyDataLabels
      ActiveChart.SeriesCollection(1).DataLabels.Select
      Selection.Interior.ColorIndex = 19
    Case "N"
      ActiveChart.ChartTitle.Text = "Napi áruértékesítés"
     ’ a napi adatoknál töröljük az értékek megjelenítését
      ActiveChart.SeriesCollection(1).DataLabels.Select
      Selection.Delete
      ActiveChart.ChartType = xlLine
      ActiveChart.SetSourceData Source:=Sheets("Diagram").Range("B1:" & Cells(1, Ig).Address(False, False) & ",B10:" & Cells(10, Ig).Address(False, False))
      ActiveChart.SeriesCollection(1).Values = "=Diagram!$B$10:" & Cells(10, Ig).Address
      ActiveChart.SeriesCollection(1).XValues = "=Diagram!$B$1:" & Cells(1, Ig).Address
      ActiveChart.SeriesCollection(1).Name = "=""Napi áruértékesítés"""
  End Select
 
  ActiveChart.ChartArea.Select
 
End Sub

 

-------------------------------------------------------------

Előre is köszönöm, ha valaki tudna segíteni!

Törölt nick Creative Commons License 2010.05.28 0 0 11889
Jó ez is, de egy pici javítás:

=HIPERHIVATKOZÁS(FKERES(A1;$C$1:$D$10;2;0);A1)

és a mindkét A1 helyére bemásolhatod az A1 celládban lévő képletet
Előzmény: Törölt nick (11886)
Törölt nick Creative Commons License 2010.05.28 0 0 11888
OFF

SQLKérdés
Szeretném megköszönni a tavaly decemberi SQL-es könyvajánlásodat. 1 hete már a birtokosa vagyok.
Drága mulatság, de megéri a pénzét (bár ajándékként kaptam), mert nagyon jó.

ON
Törölt nick Creative Commons License 2010.05.28 0 0 11887
Az A1 cellára kattintva a hozzátartozó helyre ugrik
Előzmény: Törölt nick (11886)
Törölt nick Creative Commons License 2010.05.28 0 0 11886


Szia,
Híve vagyok a makrónak - de nem akkor, ha van függvényes megoldás:


=HIPERHIVATKOZÁS(FKERES(A1;$C$1:$D$10;2;0))

 

Az A1 helyére másold be az A1 celládban lévő képletet.

Itt most az fkeres tartományában (;$C$1:$D$10;)a hiperhivatkozások elérési útja szerepel, például:

K1 [Munkafüzet1]Munka3!Z1
K2 [Munkafüzet1]Munka2!Z2
K3 [Munkafüzet1]Munka2!Z3
K4 [Munkafüzet1]Munka2!Z4
K5 [Munkafüzet1]Munka2!Z5

Előzmény: Redlac (11885)
Redlac Creative Commons License 2010.05.28 0 0 11885
Üdv Mindenkinek!

Van egy több munkalapból álló munkafüzet (a lapok nevei pl: 1, 2, 3)

Az 1. lap A1-es cellájába egy képlet segítségével kapok egy eredményt. Az eredmény lehet: K1, K2, K3 stb.

Azt szeretném, ha egy gombra kattintva az A1-es eredménytől függően a 3. lapon lévő meghatározott cellára ugrana.
Tehát, ha K1 jön ki eredményül, akkor a gombra kattintva a 3. lap Z1-es cellára ugorjon, ha K2, akkor a Z2, ha K3, akkor a Z3.

Azt feltételeztem, hogy case select-el kellene, de valahogy nem sikerült a képlet végeredményének celláját, illetve az abban lévő változó eredményt (az 1. lap A1-est) definiálni.

Valaki tudna segíteni?
Kenus Creative Commons License 2010.05.28 0 0 11884
Köszi az infót, alkalomadtán felhasználom.
Előzmény: Törölt nick (11883)
Törölt nick Creative Commons License 2010.05.28 0 0 11883
A Paste nem csak Selection-nel megy, hanem Range-el is. Az pedig nagyon konkrétan és precízen meghatározható. Az alábbi példakód az kódot tartalmazó dokumentum (ThisDocument) 4-6. karakterét másolja át a D:\dok1.doc végére.

Dim r As Range, EndPosition As Long, D As Document

Set D = Documents.Open("D:\dok1.doc")
Set r = ThisDocument.Range(3, 6)
r.Copy
EndPosition = D.Characters.Count - 1
D.Range(EndPosition, EndPosition).Paste

De nem erőltetem tovább. Lehet, hogy valóban egyszerűbb a tálcáról eltüntetni a kísértést.
Előzmény: Kenus (11879)
Kenus Creative Commons License 2010.05.28 0 0 11882

Ja, hogy most a munka végén miért tolakszik a képernyőre a körlevél varázsló, az rejtély, de ez legyen a legnagyobb baj :-).

 

Előzmény: Kenus (11881)
Kenus Creative Commons License 2010.05.28 0 0 11881

Wow! Közben meglett!

A Application.ShowWindowsInTaskbar = False, majd a munka végén kiadott Application.ShowWindowsInTaskbar = True segített. A tiltás az összes pillanatnyilag látható Word taskot elrejti, az engedély visszahozza. Munka közben a körlevélen végrehajtott módosítások látszanak, de ez nagyon nem baj. Az engedély kiadásának pillanatában viszont a körlevet már elmentettem, bezártam.

Mindenki ötletét, segítségét köszönöm!

Előzmény: Kenus (11880)
Kenus Creative Commons License 2010.05.28 0 0 11880
Igen, ez tetszene. Tulajdonképpen az kellene, hogy minden a feladat szempontjából érdektelen dokumentumot elrejtsek a tálcáról, aztán, ha befejeztem, amit akartam, visszaállíthassam. Tudja valaki, hogyan tehetném ezt meg?
Előzmény: Delila_1 (11877)
Kenus Creative Commons License 2010.05.28 0 0 11879

Igen, ez lenne az igazán jó, de (bár nagyon nem akartam az ittenieket Word specifikus elemekkel fárasztani):

1. A Selection ojektum és így metódusai (pl. Selection.Paste) is globálisak, azaz nem tudom megmondani, hová szúrjon be (legalábbis nem ismerem a módját, hogy mindenképpen - mondjuk - a Document(ezKell) dokumentummal tegye).

2. Nem én nyitom az új dokumentumot, hanem a Word, amikor körlevél készítését kérem tőle. Hiába sikerült kinyernem, melyik ez a dokumentum, ha minden utasítás elé teszek egy Document(ezKell). Activate sort, akkor is tudok olyan állapotot generálni, amikor a Selection.Paste nem oda szúr be, ahova én akarok.

Előzmény: Törölt nick (11878)
Törölt nick Creative Commons License 2010.05.28 0 0 11878
El kellene felejteni az olyan hivatkozásokat, mint az activeDocument, ActiveSheet, meg hasonlók. Tessék rendesen definiálni Document típusú változókat, hozzárendelni a megfelelő dokumentumokat, és azokra hivatkozni a kódban. Akkor aztán kattintgathat a user akárhová, nem fogja megzavarni a futást.

Pl.
Dim d As Document
Set d = Documents.Open("Dok1.doc")
d.SaveAs "Dok2.doc"


Bizonyos esetekben az ActiveDocument helyett a ThisDocument használható. Ez arra a doc-ra hivatkozik, amelyikben a makró van.
Előzmény: Kenus (11876)
Delila_1 Creative Commons License 2010.05.28 0 0 11877
Valahol be lehet állítani, hogy a tálcán ne jelenjenek meg a megnyitott doc-ok, akkor nem tud átváltani.
Előzmény: Kenus (11876)
Kenus Creative Commons License 2010.05.28 0 0 11876

Köszi, kipróbáltam, de nem lett sikeres.

Igaz, hogy menet közben nem frissült a képernyő, de az activeDocument megváltozott. Így a makró lefutása után "örvendezhettem" a nem várt eredménynek. :-)

Valami más kellene, vagy emellé még valami...

Előzmény: Delila_1 (11875)
Delila_1 Creative Commons License 2010.05.28 0 0 11875
A futás idejére le kell állítani a képernyőfrissítést. Ez az Excelnél a makró elején az
Application.ScreenUpdating = False sorral tehető meg, amit makró végén True-val kell visszaállítani.
Előzmény: Kenus (11874)
Kenus Creative Commons License 2010.05.28 0 0 11874

Sziasztok!

 

A probléma Wordben merült fel, de gondolom, Excellel is előfordulhat.

Van-e mód arra, hogy ha egy hosszabb makró futása alatt a júzer összevissza kattintgat a tálcán, az activeDocument/activeSheet/activeAkármi ne változzék?

 

Üdv és köszi!

Törölt nick Creative Commons License 2010.05.26 0 0 11873
Nagyon remélem, hogy már valóban nem bosszant többé :-)
Előzmény: Törölt nick (11871)
Delila_1 Creative Commons License 2010.05.26 0 0 11872
:D
Előzmény: Törölt nick (11871)
Törölt nick Creative Commons License 2010.05.26 0 0 11871
Csak akkor küldd át, ha a most bevált sebészeti eljárás sem vezet eredményre. Úgy vélem, ez alapvetően belgyógyászati kérdés. Az ilyenek gyógyításához én kevés vagyok.

Ha tudnád reprodukálni, akkor beküldhetnéd a Microsoftnak, hogy mondjanak rá valamit. De szerintem ez is kb. annyira kiszámítható, hogy a Mars és a Jupiter együttállásakor, amikor a Nap a Szűz jegyében kel, ha hétszer körbejárod a számítógéped az óramutató járásával ellenkező irányban, miközben a paksi erőműben éppen műszakváltás van, akkor jelenik meg a probléma. Egyszóval lehet, hogy sosem találkozol vele többé.
Előzmény: Törölt nick (11868)
Delila_1 Creative Commons License 2010.05.25 0 0 11870
Szívesen.
Előzmény: animazsi (11869)
animazsi Creative Commons License 2010.05.25 0 0 11869
nagyon szépen köszönöm!
Előzmény: Delila_1 (11862)
Törölt nick Creative Commons License 2010.05.25 0 0 11868
Köszönöm szépen! Úgy tűnik, az export/import jót tett, mert azóta nem jön elő a hibajelenség, sőt előcsalogatni sem bírom sehogy... Na, ez a paranormális... Ha megint felbukkan, jelentkezem és átküldöm a munkafüzetet (sajnos, nem tudom feltenni sehova)
Előzmény: Törölt nick (11866)
Törölt nick Creative Commons License 2010.05.25 0 0 11867
Ha ez nem megy, esetleg fel tudod töltetni valahová a munkafüzetet? (Nyilván üresen.)
Előzmény: Törölt nick (11865)
Törölt nick Creative Commons License 2010.05.25 0 0 11866
Tippelek. Próbáld meg exportálni a Userformot fájlba (Project Explorerben jobb klikk ->Export), aztán törölni az eredetit, és vissza importálni a mentésből.
Előzmény: Törölt nick (11865)
Törölt nick Creative Commons License 2010.05.25 0 0 11865

Sziasztok!

 

Adott egy Userform, amit ha megjelenítek (Userform1.Show) azonnal megjelenik a ToolBox is. Van rajta 6 Label és egy CommandButton1, tehát semmi különös. Ilyennel még nem találkoztam, mindjárt megőrülök, mert nem tudom behatárolni, hogy miért csinálja ezt! Már levettem a formról mindent és akkor is megjeleníti a ToolBox-ot. Tudna valaki segíteni?

 

Előre is köszönöm!

Delila_1 Creative Commons License 2010.05.25 0 0 11864
[Off Topic] Most úgy voltam, mint Te régebben: itt voltam, de csak nézelődtem. :)[Off Topic]
Előzmény: Törölt nick (11863)
Törölt nick Creative Commons License 2010.05.25 0 0 11863
Vége a szabadságnak?
;-)
Előzmény: Delila_1 (11862)
Delila_1 Creative Commons License 2010.05.25 0 0 11862
Kijelölöd a sorokat. Szerekesztés/Ugrás (vagy ehelyett Ctrl+g), Irányított, Üres cellák.
Ezzel minden sorban kijelölted az üres cellákat.
Ctrl és mínusz gombot nyomsz, megjelenik a Törlés gyorsmenü, amin a Cellák eltolása balra opciót választod.
Előzmény: animazsi (11861)
animazsi Creative Commons License 2010.05.24 0 0 11861
köszi! ennyire azért nem vagyok béna...
a probléma abban áll, hogy mondjuk a K oszlopban csak 5 sorban van szöveg, az L-ben szintén, az M-ben kettőben és így tovább, és van vagy 2000 sor, így egyesével eléggé sokáig tartana...
hogyan lehet kiszedni egy oszlopból vagy sorból a köztes üres cellákat, ha azok nem tesznek ki egész oszlopot vagy sort?
Előzmény: Sánta Kutya (SK) (11860)
Sánta Kutya (SK) Creative Commons License 2010.05.24 0 0 11860
Kijelölöd a C:J oszlopokat, jobb gomb, törlés.
Előzmény: animazsi (11859)
animazsi Creative Commons License 2010.05.24 0 0 11859
sziasztok!
barátnőm még annyira sem jártas excel-ben, mint én, így sikerült neki a B oszlop után a K-ba, vagy épp az M-be adatokat írni, merthogy "odáig tartott" a B oszlop szövege. :-) engem viszont rettenetesen zavar, hogy nem tudom oszloponként kezelni az adatokat, mert hol itt, hol ott vannak közben üres cellák vagy egész üres oszlopok. hogyan tudnám a legegyszerűbben kivenni a köztes üres cellákat az egyes sorokból? (makrókat még nem nagyon használtam, ha az lenne a megoldás, úgyhogy ebben az esetben nagyon részletes leírást kérnék :-)) köszi
Törölt nick Creative Commons License 2010.05.24 0 0 11858
Nagyon szívesen! :-))
Előzmény: Redlac (11857)
Redlac Creative Commons License 2010.05.24 0 0 11857
Ember! Tőled ennyi telik????

MINDEN működik rajta, amit szerettem volna!

Köszönöm szépen...és ezt fokozom, annyira, amennyire szeretnéd :-)

De puszit nem adok..ha csak nem egy szőke, hosszú combú nőnemű lény vagy ;-)

Leslee hálája üldözni fog!
Előzmény: Törölt nick (11855)
Törölt nick Creative Commons License 2010.05.24 0 0 11856
A Workbook objektumnak van egy lyyan eseménye, hogy NewSheet. Itt kell keresgélni.

Private Sub Workbook_NewSheet(ByVal Sh As Object)

End Sub
Előzmény: Gavriel (11846)
Törölt nick Creative Commons License 2010.05.24 0 0 11855

Szerintem, fussunk neki még egyszer ;-) Biztosan van egyszerűbb, frappánsabb megoldás, de tőlem most ennyi telik. A módosított kód már azt is kezeli, ha beírod a megfelelő időértéket (pl. 12:34).

 

---------------------------------

 

Private Sub Hibaüzenet(Hibahelye As Range, Hibaszám As Byte)
 
  Hibahelye.Interior.ColorIndex = 3
  Hibahelye.Font.ColorIndex = 2
  Hibahelye.Select
 
  Select Case Hibaszám
    Case 1
      MsgBox "Figyelem! Hibás érték a(z) " & Hibahelye.Address(False, False) & "-es cellában!", vbCritical, "Adatvédelem"
    Case 2
      MsgBox "Figyelem! Hibás időérték a(z) " & Hibahelye.Address(False, False) & "-es cellában!", vbCritical, "Adatvédelem"
  End Select
 
End Sub

 

 

Private Sub HibajelzésKI(HibásCella As Range)


  HibásCella.Interior.ColorIndex = xlNone
  HibásCella.Font.ColorIndex = 1
   
End Sub

 

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Érték As Long
On Error Resume Next

 

  If Target.Count = 1 Then
   
    If Target <> "" And Not Intersect(Target, Range("A1:A10")) Is Nothing Then
                       
      Érték = Target
                       
      If Len(Target) = 4 And Err.Number = 0 Then
                               
        If Mid(Target, 1, 2) >= "00" And Mid(Target, 1, 2) <= "23" And _
           Mid(Target, 3, 2) >= "00" And Mid(Target, 3, 2) <= "59" Then
        
           Application.EnableEvents = False
           Target.Value = Mid(Target, 1, 2) & ":" & Mid(Target, 3, 2)
           HibajelzésKI Target
           Application.EnableEvents = True
        
        Else: Hibaüzenet Target, 2
        End If
       
      Else
       
        HibajelzésKI Target
       
        If Len(Target) = 5 And _
           Mid(Target, 1, 2) >= "00" And Mid(Target, 1, 2) <= "23" And _
           Mid(Target, 4, 2) >= "00" And Mid(Target, 4, 2) <= "59" Then
            
             If Mid(Target, 3, 1) <> ":" Then
                Hibaüzenet Target, 1
             Else: HibajelzésKI Target
             End If
            
        Else
          Select Case Target
            Case "egy"
              MsgBox "itt lehet lekezelni az 'egy' szóhoz tartozó feladatot"
            Case "kettő"
              MsgBox "itt lehet lekezelni a 'kettő' szóhoz tartozó feladatot"
            Case "három"
              MsgBox "itt lehet lekezelni a 'három' szóhoz tartozó feladatot"
            Case Else
              Hibaüzenet Target, 1
          End Select
        End If
       
        Err.Clear
       
      End If
   
    End If
  End If
 
End Sub

Előzmény: Redlac (11854)
Redlac Creative Commons License 2010.05.24 0 0 11854
Köszönöm a fáradozásodat Boraka!

A mostani kódod azt hiszem már tényleg tökéletes:-)

De ebben a kódban is és az előzőben is, ha DEL-t nyomok, akkor hibaüzenetet ad.
1. Ezt nem szeretném:-)
2. Ennek a kódnak a végére próbáltam az előző többirányú elágazást (case)belekombinálni, mivel (közben rájöttem, hogy valóban) szüksége lenne a meghatározott szöveg szűrésére. Nem ment :-(

Szerinted?

Előzmény: Törölt nick (11853)
Törölt nick Creative Commons License 2010.05.24 0 0 11853

No, akkor második nekifutásra:

 

1. az "A" oszlopban a cellák formátumát állítsd át szövegre (A oszlop kijelöl -> cellaformázás -> szöveg)

 

2. cseréld le az előző kódot az alábbiakra:

 

-------------------------------------------------------

 

Private Sub Hibaüzenet(Hibahelye As Range, Hibaszám As Byte)
 
  Hibahelye.Interior.ColorIndex = 3
  Hibahelye.Font.ColorIndex = 2
 
  Select Case Hibaszám
    Case 1
      MsgBox "Figyelem! Hibás érték a(z) " & Hibahelye.Address(False, False) & "-es cellában!", vbCritical, "Adatvédelem"
    Case 2
      MsgBox "Figyelem! Hibás időérték a(z) " & Hibahelye.Address(False, False) & "-es cellában!", vbCritical, "Adatvédelem"
  End Select
 
End Sub

 

 

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count = 1 And Not Intersect(Target, Range("A1:A10")) Is Nothing Then
    If Len(Target) = 4 And Application.WorksheetFunction.IsNumber(Val(Target)) Then
       
      If Val(Mid(Target, 1, 2)) >= 0 And Val(Mid(Target, 1, 2)) <= 23 And _
         Val(Mid(Target, 3, 2)) >= 0 And Val(Mid(Target, 3, 2)) <= 59 Then
        
         Application.EnableEvents = False
         Target.Value = Mid(Target, 1, 2) & ":" & Mid(Target, 3, 2)
         Target.Interior.ColorIndex = xlNone
         Target.Font.ColorIndex = 1
         Application.EnableEvents = True
        
      Else: Hibaüzenet Target, 2
      End If
    Else: Hibaüzenet Target, 1
    End If
  End If
End Sub

Előzmény: Redlac (11852)
Redlac Creative Commons License 2010.05.24 0 0 11852
Öööööö, van egy kis bibi...

Amennyiben 00:00 és 10:00 óra közötti időpontot írok be, akkor nem működik az átváltás.

A gondom, hogy nem értem teljesen a kódot, így a javítgatás is hályogkovácsos :-)
Előzmény: Törölt nick (11850)
Redlac Creative Commons License 2010.05.23 0 0 11851
Köszönöm, így már remek!
Előzmény: Törölt nick (11850)
Törölt nick Creative Commons License 2010.05.23 0 0 11850

Azért, mert az első nekifutásra nem kezeltük le azt az eseményt, amikor a cél tartományban nem egy, hanem több cella is ki van jelölve. Próbáld ki az alábbi kis módosítással.

 

If Target.Count = 1 And Not Intersect(Target, Range("A1:A10")) Is Nothing Then

Előzmény: Redlac (11849)
Redlac Creative Commons License 2010.05.22 0 0 11849
Hasonló választ szoktam mondani a gyerekeimnek is :-)

Próbálgatom erősen, de még nem tiszta teljesen...

Mivel nem kell a msgbox, így azokat a sorokat kitöröltem, aztán próbálgattam. Aztán a case-ek utáni msgbox-okat is kitöröltem, elvileg jó volt.

Aztán próbálgattam a kitöltést, de ha több cellát kijelölök, és rányomok a del-re, akkor hibaüzenetet ad és kijelöli a következő sort:
If Len(Target) = 4 And Application.WorksheetFunction.IsNumber(Val(Target)) Then

A kód változatlanul hagyása mellett is produkálta ezt a hibát.

Ez miért lehet?

Lécci-lécci :-)
Előzmény: Törölt nick (11843)
zezicsi Creative Commons License 2010.05.22 0 0 11848
jajj, mostmár sikerült, csak elnéztem valamit!
zezicsi Creative Commons License 2010.05.22 0 0 11847
Én egy elég egyszerű problémával állok elő: van egy hatalmas adattáblám excelben és az egyik oszlopban vannak azonosítószámok, amik között van duplikáció is, ezeket szeretném szűrni, de helyben. vagy legalábbis úgy, hogy az egyedi rekordokhoz tartozó többi adat is megmaradjon. Szóval ha egy azonosító többször szerepel, akkor abból csak egy maradjon meg, de a hozzá tartozó adatokkal együtt...pl. a születési év... remélem értlmesen írtam le a problémám. Előre is köszi a segítséget!
Törölt nick Creative Commons License 2010.05.22 0 0 11844
"Most már csak az a kérdés, hogyan lehet futtatni automatikusan havonta egyszer.
De csak egyszer és többet nem."


Ez miért lényeges? Ha van egy képleted egy cellában, ami a hónapok számán alapul, akkor az akárhányszor számolódik ki egy hónapban, mindig ugyanazt az értéket fogja mutatni. Aztán, amikor a rendszerdátum átlép a következő hónapba, akkor egy hónapig az új értéket.
Előzmény: Gavriel (11841)
Törölt nick Creative Commons License 2010.05.22 0 0 11843
Tessék egy kicsit gondolkozni és próbálgatni, ezt-azt átalakítani, kivenni vagy hozzátenni a kódhoz ;-)
Előzmény: Redlac (11842)
Redlac Creative Commons License 2010.05.22 0 0 11842
Ez az időformátummá alakítás fantasztikus :-)

A további részek elvileg nem kellenének, mert nem eseményt akarok hozzárendelni, egyszerűen, csak, hogy mást ne lehessen beírni.

Azon törtem a fejem, hogy ha ilyen egyszerű bevinni az időt, akkor kellene-e korlátozni a beírást?

Ha csak az időátalakítás kellene, akkor hogyan módosulna a kód?


Előzmény: Törölt nick (11830)
Törölt nick Creative Commons License 2010.05.21 0 0 11839
Ha nem jön válasz, akkor érdemes lenne újra megfogalmazni a feladatot. Nekem nem jön át, hogy pontosan mit szeretnél.
Előzmény: Gavriel (11837)
Delila_1 Creative Commons License 2010.05.21 0 0 11836
Ez a legegyszerűbb megoldás.
Előzmény: SQLkerdes (11831)
Delila_1 Creative Commons License 2010.05.21 0 0 11835
Igen, fejből írtam, pont az ellentéte, a FIX függvény alakítja át a számot szöveggé, mint a SZÖVEG.
Ennél megadhatod a tizedesek számát, és hogy legyen-e ezres határoló.
Előzmény: Dulifuli (11832)
Dulifuli Creative Commons License 2010.05.21 0 0 11834
Kösz ezt is, bár most már megvan a tuti megoldás. :-)
Előzmény: Törölt nick (11829)
Dulifuli Creative Commons License 2010.05.21 0 0 11833
Igen, ez tökéletes, és nálam is működik. Hej, ha ezt előbb tudtam volna! :-)
Előzmény: SQLkerdes (11831)
Dulifuli Creative Commons License 2010.05.21 0 0 11832
Én úgy látom, hogy az éppen az ellenkezőjét csinálja: szövegből számot. Ami nekem kellett volna, azt a SZÖVEG függvény csinálná meg, már ha rendesen működne nálam. De hát nem teszi. Azért kösz, hogy válaszoltál!
Előzmény: Delila_1 (11828)
SQLkerdes Creative Commons License 2010.05.21 0 0 11831
text to columns funkció jobban megoldja ugyanezt a problémát.
Ez annyiban speciális, hogy egy oszlopot alakítunk egy oszloppá.
Előzmény: Delila_1 (11828)
Törölt nick Creative Commons License 2010.05.21 0 0 11830

Első nekifutásra másold be az alábbi kis rutin az aktuális munkalap eseménykezelőjébe és próbáldi ki úgy, hogy a kezelt tartományt az A1:A10 közöttire állítottam be.

 

----------------------------------

 

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
    If Len(Target) = 4 And Application.WorksheetFunction.IsNumber(Val(Target)) Then
      MsgBox "Itt lehet időértékké alakítani 4 számjegyű értékeket"
      Target.Value = Mid(Target, 1, 2) & ":" & Mid(Target, 3, 2)
    Else
      Select Case Target.Value
        Case "egy"
          MsgBox "itt lehet lekezelni az 'egy' szóhoz tartozó feladatot"
        Case "kettő"
          MsgBox "itt lehet lekezelni a 'kettő' szóhoz tartozó feladatot"
        Case "három"
          MsgBox "itt lehet lekezelni a 'három' szóhoz tartozó feladatot"
        Case Else
          MsgBox "itt lehet lekezelni azt, ha a meghatározottakon kívül más történik"
      End Select
    End If
  End If
End Sub

Előzmény: Redlac (11824)
Törölt nick Creative Commons License 2010.05.21 0 0 11829
Ha van egy hibás/rosszul telepített/vírusrágta Exceled, ami nem hozza a súgóban leírt specifikációkat, arra nehéz biztosat mondani.

" belekattintottam a szerkesztőlécbe, aztán nyomtam egy Entert (vagy van ennek más egyszerű módja is?)"

Azt hiszem, a szerkesztőlécbe kattintással kb. ekvivalens az F2 gomb.
Az F2 - ENTER - F2 - ENTER ... sorozat gyorsabb, mint kattintgatni.
Nem egy elegáns dolog, de ha csak ez működik...
Előzmény: Dulifuli (11826)
Delila_1 Creative Commons License 2010.05.21 0 0 11828
Az ÉRTÉK függvénnyel szöveggé tudod alakítani a számokat, majd irányítottan, értékként beilleszted a számok helyére.
Előzmény: Dulifuli (11826)
Redlac Creative Commons License 2010.05.21 0 0 11827
Az adatérvényesítésnél azt be tudom állítani, hogy csak időformátumot engedjen, de szöveggel nem tudom kombinálni.
Előzmény: SQLkerdes (11825)
Dulifuli Creative Commons License 2010.05.21 0 0 11826
Ismét kösz a válaszokat. Végül mégis máshogy oldottam meg, mert nem akartam mindig kétszer szűrni. Ezért, mivel az adatok között elég sok olyan pár vagy hármas volt, aminek az eleje ugyanaz, és egy / után jön valami más, szétszedtem ezeket úgy, hogy a / kimarad, az utána következők meg egy új oszlopba menjenek. Így az eredeti oszlopban már ezernél kevesebb különböző adatom van, és működik a szűrés az XP verzióban is. Csak az volt a szívás, hogy az én gépemen valami gebasz van az Excel működésével. Az az értékbeillesztős trükk végül mégsem vált be, és a SZÖVEG függvénnyel se mentem sokra, mert nálam egyszerűen nem működik, vagy ha néha mégis, akkor nem jól. Még a Súgóban szereplő példát bemásolva egy új táblázatba sem adja azt az eredményt, amit kéne. Így aztán máshogy nem tudtam szöveggé konvertálni a számokat (mert enélkül nem akart működni a szűrés), csak úgy, hogy az egész oszlopra beállítottam a szöveg formátumot, aztán minden olyan cellánál, amelyik csak számokat tartalmaz, belekattintottam a szerkesztőlécbe, aztán nyomtam egy Entert (vagy van ennek más egyszerű módja is?).
Elvoltam vele egy ideig, de most legalább működik, és az Office verziót se kellett lecserélnem. Bár lehet, hogy majd megpróbálom feltenni a 2007-est is az XP-s mellé. Apropó, 2007: elképzelhető, hogy az okozhat ilyen hibás működést, hogy az Office 2007 konverter is fent van a gépemen? Szerintem ugyan annak nem illene ilyenkor is beleszólni a működésbe, de hát ki tudja ezt egy Microsoft programnál?
Előzmény: SQLkerdes (11815)
SQLkerdes Creative Commons License 2010.05.21 0 0 11825
Data validation azt hiszem ezt csinálja, csak a mixálásban nem vagyok biztos.
Előzmény: Redlac (11824)
Redlac Creative Commons License 2010.05.21 0 0 11824
Üdv Mindenkinek!

Szerintetek meg lehet-e oldani, hogy egy tartományban úgy korlátozzam az adatok beírását, hogy csak időadatokat lehessen beírni, vagy 6 általam maghatározott szóból valamelyiket. De semmi mást. Tehát vagy időt írunk a cellába, vagy ha nem idő, akkor csak meghatározott szavak.
Emellett az időt jó lenne, ha egyszerűen, gyorsan lehetne beírni. Tehát 12:12 órát be lehet-e írni úgy, hogy 1212, majd az enter után lesz belőle 12:12?


Előre is köszi a választ

Leslee
Törölt nick Creative Commons License 2010.05.21 0 0 11823
Kösz a javítást.
És talán tegyük hozzá azt is, hogy a makró az összes képet törli a munkafüzet összes lapján, szóval ha olyan képek is vannak a munkafüzetben, amelyek még kellenek, akkor nem biztos, hogy tetszeni fog.
Előzmény: SQLkerdes (11822)
SQLkerdes Creative Commons License 2010.05.21 0 0 11822
Az egyébként tökéletes makróban van egy elgépelés, a mext helyett next-et használj.
******************************
Sub Képtörlés()
Dim Sh As Shape, WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
For Each Sh In WS.Shapes
If Sh.Type = msoPicture Then Sh.Delete
Next
mext
End Sub
Előzmény: Törölt nick (11821)
Törölt nick Creative Commons License 2010.05.20 0 0 11821
Futtasd le ezt a makrót:


Sub Képtörlés()
Dim Sh As Shape, WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
For Each Sh In WS.Shapes
If Sh.Type = msoPicture Then Sh.Delete
Next
mext
End Sub

Mondjuk xl97-en ezt sem teszteltem. De talán jó lesz.
Előzmény: paragabika (11817)
paragabika Creative Commons License 2010.05.20 0 0 11820
Csábítóan egyszerűenk hangzik, de ezt megtalálom a 97-es excel-ben?
És ha igen, hogyan, hol?
Előzmény: tt65 (11818)
Galebb Creative Commons License 2010.05.20 0 0 11819
Ok,köszi,megpróbálom
Előzmény: SQLkerdes (11807)
tt65 Creative Commons License 2010.05.20 0 0 11818
irányított kijelölés --> objektumok; ok
és del gomb
Előzmény: paragabika (11817)
paragabika Creative Commons License 2010.05.20 0 0 11817
Sziasztok!

Az alábbi problémával találkoztam az excelben, ennek megoldásában szeretnék segítséget kérni:

Adott egy hónap adatairól szóló, jellemzően minden munkanapra külön-külön munkalapfüleket tartalmazó excel file.

Ezekben valamilyen csökevényként benne maradtak pixelhibányi méretűvé töpörödött beillesztett képek, melyekre nincs szükség. (Alig lehet látni a cellarácsok találkozásánál a képekre való utalást, csak a kurzor formája változik meg.)

Viszont a folyamatos munka miatt már ezres nagyságrendű a számuk!
Ami érthetően megnöveli az állomány méretét.
Nagy nehezen megoldott más formátumba mentés- majd vissza excel-be módon kiderült, hogy az eredetileg 103 kb méretű állományból 6 mb lett!

De ez a konvertálgatás a több füles felépítés miatt problémás. Ha viszont a

Van arra mód, hogy valahogy egyszerűen kijelöljem csak a képeket és kitöröljem?

Előre is köszi.
Delila_1 Creative Commons License 2010.05.20 0 0 11816
Hosszú listák szűréséhez ezt használom (az A oszlopba most szöveg formátumú számokat vittem be)
Előzmény: Dulifuli (11809)
SQLkerdes Creative Commons License 2010.05.20 0 0 11815
LEFT függvény
Előzmény: Dulifuli (11814)
Dulifuli Creative Commons License 2010.05.20 0 0 11814
Azt hiszem, most már értem, csak azt nem tudom, hogy hogyan jelenítsem meg azt az első néhány karaktert.
Előzmény: SQLkerdes (11811)
Dulifuli Creative Commons License 2010.05.20 0 0 11813
Számomra még második olvasásra sem egészen, de lehet, hogy ez az én hibám. :-)
Előzmény: SQLkerdes (11811)
tt65 Creative Commons License 2010.05.20 0 0 11812

ne higgy az első benyomásnak! ronda, de finom!

ez egy Chocito reklám szlogenje volt, de ide is illik!

Előzmény: Dulifuli (11809)
SQLkerdes Creative Commons License 2010.05.20 0 0 11811
A workaround a következő:

- Egy új oszlopban jelenítsd meg az első x karakterét a számnak, amit szűrni akarsz. Itt szűrj először.
- Utána a már leszűrt, első x karakterre helyes listát szűrd mostmár az "eredeti" oszlopában.

Remélem sikerült érthetően leírjam...
Előzmény: Dulifuli (11805)
SQLkerdes Creative Commons License 2010.05.20 0 0 11810
Egyébként második megoldásnak az ilyen problémákra működik a Text-to-Column funkció is.
Excel 2007: Data fül.
Előzmény: Dulifuli (11803)
Dulifuli Creative Commons License 2010.05.20 0 0 11809
Kösz a válaszokat, Neked is, Jimmynek is! A 2007-est sajnos már első látásra megutáltam, úgyhogy most kipróbáltam az OpenOffice-t. Eredetileg 2.0 volt a gépemen, amiben nem volt ilyen 1000 soros korlát, de abban nem tudtam megadni a szűrőben olyan feltételt, hogy az adat kezdete legyen valami, vagy tartalmazzon valamit. Erre feltettem a 3.2-est, abban meg vannak már ilyen feltételek, csak éppen olyan lassan csinálja meg a szűrést, hogy beleőszülök, mire megjeleníti az eredményét. Ráadásul nem találtam benne olyan beállítást, hogy az egér görgője ne csak néhány sort görgessen, hanem egy egész oldalt, ahogy én a Windows-ban beállítottam. Úgyhogy egyelőre nem tudom, hogy mi lesz. Egyik rondább vagy vacakabb, mint a másik. De legalább jó sok helyet igényelnek a gépen.
Előzmény: O. Kán (11806)
SQLkerdes Creative Commons License 2010.05.20 0 0 11808
Ha a pénz kicsit akadály, akkor az Office 2010-et érdemes még megfontolni felrakni. Most olvastam, hogy 5-ször lehet a 30 napos próba-periódust meghosszabbítani, szóval félévig ingyenes a cucc, utána meg köll venni.

Ha a pénz nem akadály, akkor Office2007, mert az a legmagasabb verziójú megvehető programcsomag.

Ha a pénz nagyon akadály, akkor meg lehet érdemes megnézni az OpenOffice-t, hogy az mit tud ezen funkcionalitások közül (Keres-t tuti, az autofilter-t nem tudom).
Előzmény: Dulifuli (11805)
SQLkerdes Creative Commons License 2010.05.20 0 0 11807
Az a baj, hogy zongorán próbálsz meg hegedűlni.

A probléma leírása alapján neked nem táblázatkezelőre (excel) hanem adatbáziskezelőre (pld. access) van szükséged.
Ha jól értem a problémádat (amire semmi garancia sincs :-)) akkor ezt vagy programozásilag (makrók) oldod meg excelben, vagy sehogy.

Ha nincs access-ed akkor figyelmedbe ajánlom az OpenOffice-t, az ingyenes.
Előzmény: Galebb (11801)
O. Kán Creative Commons License 2010.05.20 0 0 11806
Office 2007.
Előzmény: Dulifuli (11805)
Dulifuli Creative Commons License 2010.05.20 0 0 11805
Ez a jelek szerint működik, viszont időközben kiderült még egy probléma. A táblázatban ugyanis ezernél több sor van, és most derült ki, hogy az Office XP-féle Excel csak ezer sorig kezeli az Autoszűrőt, a többi sor adatai nem jelennek meg. Van erre valami megoldás verzióváltás nélkül? Vagy ha nincs, akkor melyik verziót érdemes feltenni helyette, hogy ez is menjen?
Előzmény: Törölt nick (11804)
Törölt nick Creative Commons License 2010.05.20 0 0 11804
Ha az új, képlettel előállított oszlopra csinálsz egy olyat, hogy
1) másolás
2) ugyanoda irányított beillesztés->értéket
akkor az új oszlop hogyan viselkedik?
Előzmény: Dulifuli (11803)
Dulifuli Creative Commons License 2010.05.20 0 0 11803
Hello! Szeretnék megosztani egy érdekes tapasztalatot, és talán lesz hozzá valami építő jellegű hozzászólása is valakinek.
A probléma a következő: van egy Excel táblázat, amit többen is szerkesztettünk, részben Office XP, részben újabb (főleg Office 2007) verziókkal. Az egyik oszlopba bevittünk egy csomó vonalkódot, természetesen nem bepötyögve, hanem olvasóval. Valószínű, hogy aki ezt elkezdte, az előtte nem állította be erre az oszlopra a szám formátumot szövegre. Akárhogy is, de most azon adatok egy része, amelyekben csak számjegyek vannak, számként, a többi pedig szövegként van formázva. Ezzel csak az a gond, hogy az adatokban szeretnénk néha keresni, néha pedig szűrni az Autoszűrő segítségével. Csakhogy kiderült, hogy ezeknél az adatoknál az Autoszűrő - legalábbis az Office XP verzióban - nem mutatja meg azokat a sorokat, amelyekben számként szerepelnek a keresett számok, tehát csak azok a sorok látszanak, amelyekben a szövegként formázott adatok vannak. Ugyanakkor a keresés jól működik, tehát a keresett szám minden előfordulását megtalálja, a formázástól függetlenül. Amikor ez kiderült, akkor létrehoztunk egy új oszlopot, amelybe a SZÖVEG függvénnyel konvertáltuk ezeket az adatokat. Ebben az új oszlopban már jól működik az Autoszűrő, de ebben meg a keresés nem találja meg a keresett adatokat - mégpedig egyiket sem, feltehetően azért, mert ezek a cellák igazából képleteket tartalmaznak.
A kérdés a következő: van-e valakinek ötlete, hogy pontosan mi okozhatta ezt a jelenséget, illetve mi lenne a jó megoldás? Mert az, hogy mindkét oszlopot meghagyjuk, és az egyikben használjuk a keresést, a másikban meg a szűrőt, nem túl szimpatikus megoldás. Nekem ugyan van egy másik ötletem, de kíváncsi vagyok az itteni törzsközönség véleményére is.
Törölt nick Creative Commons License 2010.05.19 0 0 11802

Szia!

 

Az alábbi kis rutinokat tedd be egy excel fájlba és próbáld ki, hogy mit csinál.

Természetesen, a "Munka1" munkalapon az A1 től A3 ig írj valamit a cellákba

 

---------------------------------------------------------------------------------

 

Dim WordDoc As Object

 

Sub ÚjWordDokumentum_Létrehozása()
  Set WordDoc = CreateObject("Word.application")
  With WordDoc
    .Documents.Add
    .Visible = False
   End With
End Sub

 

Sub Adatmásolás()

  With WordDoc
    .Selection.TypeText Text:=Worksheets("Munka1").Range("A1").Value 'adatbevitel a wordbe
    .Selection.TypeParagraph 'új sor beillesztése
    .Selection.TypeText Text:=Worksheets("Munka1").Range("A2").Value
    .Selection.TypeParagraph
    .Selection.TypeText Text:=Worksheets("Munka1").Range("A3").Value
  End With

End Sub

 

Sub WordDokumentum_Mentése_Kilépés(WorDocHelyeNeve As String)
  With WordDoc
    .ActiveDocument.SaveAs Filename:=WorDocHelyeNeve
    .Quit  ' kilépés a wordből
  End With
End Sub

 

 

'ezt kell futtatni

 

Sub Adatmásolás_a_Wordbe()

  ÚjWordDokumentum_Létrehozása
  Adatmásolás
  WordDokumentum_Mentése_Kilépés "C:\mappa1\mappa2\TesztdoksiNeve.doc"

End Sub

Előzmény: dany82 (11787)
Galebb Creative Commons License 2010.05.19 0 0 11801
A galambok eredményeit számolom az "A"lapon,kb 60 galamb-60 sor és az OFSZET kiválasztja a megadott gyűrűszámnak megfelelő pontszámot és azt áthelyezi a "B"lapra,
utána az"A"lapra bevitt adatok a pontszámokkal törlésre kerülnek,és a "B"lapon kellene a pontszámnak ezek után is megmaradnia.
Következő verseny-új adatok-új pontszámok az"A"lapon,az OFSZET a gyűrűszám alapján egyezést talál és a pontszámot megint áthelyezi a"B" lapra és össze adja azt az előző verseny pontszámával.
Próbáltam egyszerűbben elmagyarázni,gondolom így érthetőbb.
Előzmény: SQLkerdes (11800)
SQLkerdes Creative Commons License 2010.05.19 0 0 11800
Én azt csinálnám, hogy a számításokat egy segédmunkalapon csinálnám (legyen ez X), viszont itt minden múltbeli számolást is meghagynék. Pld. egy számolás - egy sor. Következő számolás, következő sor.
Az A munkalap átvenné az X munkalap legutolsó számolását és így a B munkalap is figyelembe tudná venni a múltbeli értékeket (csak azok nem az A-ról jönnének, hanem az X-ről).

A konkrét számolások ismerete nélkül azonban nehéz azt eldönteni, hogy ezt hogyan lehet a gyakorlatban is megoldani.

Másik alternatíva egy olyan makró, ami figyeli az A meghatározott cellájának (az eredmény) változását és a megfelelő B cella tartalmát az A cella változásakor update-eli.
Előzmény: Galebb (11799)
Galebb Creative Commons License 2010.05.19 0 0 11799
Üdv.mindenkinek
Kezdő exceles vagyok és a segítségeteket szeretném kérni.
Adott egy excel munkafüzet amiben az eredményeket szoktam számolni ,"A" munkalapon és idáig tökéletes minden,az OFSZET-tel megoldottam,hogy a megadott kritériumok szerint kiválasztja a keresett "értéket" és ezt az értéket szeretném áthelyezni "B"munkalapra és hogy ez az "érték" NE törlődjön a "B" munkalapról,ha az "A"munkalapról kitörölöm,mivel új eredmény számításakor új értékek keletkeznek az"A" munkalapon és,ha megfelelnek a megadott kritériumnak akkor ezt az értéket is át kellene tenni és hozzá adni a "B"munkalapon lévő értékhez.
Előre is köszönöm
iqbéla Creative Commons License 2010.05.19 0 0 11798
Kössz!
Előzmény: SQLkerdes (11796)
SQLkerdes Creative Commons License 2010.05.19 0 0 11797
Na, akkor én itt adom fel a szövegértelmezést...
Előzmény: Redlac (11794)
SQLkerdes Creative Commons License 2010.05.19 0 0 11796
Ez itt ezt csinálja:

Sub RefString2Select()

Dim Hivatkozas As String
Dim HivSheetName As String
Dim HivA1Ref As String

Hivatkozas = "X!B2"
Pos = InStr(1, Hivatkozas, "!")
HivSheetName = Left(Hivatkozas, Pos - 1)
HivA1Ref = Right(Hivatkozas, Len(Hivatkozas) - Pos)
Sheets(HivSheetName).Range(HivA1Ref).Select

End Sub
Előzmény: iqbéla (11792)
Törölt nick Creative Commons License 2010.05.19 0 0 11795
Erre gondoltam. Ezt a makrót egy külső munkafüzetből kell futtatni, nem a sablonból. Ha magába a sablonba tennéd, akkor a makró is elmentődne az összes másolatba. Gondolom, ez nem cél.
A konstansokat és a fájlnév-előtagot (vastagon kiemelt rész) módosítsd tetszés szerint.


Sub másolatok()
Const Célmappa = "D:\"
Const Kezdődátum = "2010.05.19"
Const Végdátum = "2010.12.31"
Const Sablon = "D:\conditions.xls"
Dim i As Long, WB As Workbook, Y As String, M As String

Set WB = Workbooks.Open(Sablon)
For i = CDate(Kezdődátum) To CDate(Végdátum)
On Error Resume Next
Y = CStr(Year(i))
M = Format(i, "mmmm")
MkDir Célmappa & Y
MkDir Célmappa & Y & "\" & M
WB.SaveAs Célmappa & Y & "\" & M & "előtag-" & Day(i) & ".xls"
Application.StatusBar = CDate(i) & " -> fájl létrehozva."
Next
WB.Close savechanges:=False
Application.StatusBar = False
End Sub
Előzmény: Redlac (11794)
Redlac Creative Commons License 2010.05.18 0 0 11794
Kedves Jimmy, Te gondolatolvasó vagy :-)

Pontosan ezt szeretném
Előzmény: Törölt nick (11772)
dany82 Creative Commons License 2010.05.18 0 0 11793
egyszerüsítettem a dolgot. rájöttem, hogy az exceles megoldás messze túl van a képességeimen. Egy zárolt Word dokumentum lett a sablomból, amibe tabbal szépen egyenként beírják, amit kel.

Egyetlen dolog hiányzik. Szeretnék egy placeholdert az éppen aktuális ügyfél logójának. Amire egyszerüen drag-n-droppal be lehet dobni a jpg fájlt.

Van ilyen? (tudom, ez már wordös, de hátha)
iqbéla Creative Commons License 2010.05.18 0 0 11792
Nem jól dobtam fel a dolgot.

Szóval van egy stringem, mondjuk Hivatkozas, értéke "X2!B2", na ezen hivatkozás által hivatkozott cellát kéne aktívvá tenni.

Kösöznöm
Előzmény: iqbéla (11791)
iqbéla Creative Commons License 2010.05.18 0 0 11791
Tisztelt Fórum,

súgjatok nekem legyetek szívesek egy pár soros VB kódot, ami bármely lap bármely cellája is legyen az éppen aktív, az input focust áthelyezi az X nevű lap mondjuk B2 cellájára!

Köszönöm

(Mert az, hogy Range("X!B2").Select, na az hibát ad)

SQLkerdes Creative Commons License 2010.05.18 0 0 11790
Dehogynem!
A kollega problémája az, hogy Excel makróból kellene elindítania a körlevelet.
Előzmény: tt65 (11789)
tt65 Creative Commons License 2010.05.18 0 0 11789

ezt a worldben körlevélnek hívják és tök jól használható!

ez nem lenne jó erre?

Előzmény: dany82 (11785)
SQLkerdes Creative Commons License 2010.05.18 0 0 11788
Hát azért nem teljesen esélytelen a dolog...
A print merge-nek mindegy, hogy egyetlen sort vagy 1 milliót fűz össze, tehát az egyetlen problémánk az az,hogy hogy indítsuk be a print merge-t az excelből.

Ez tuti nem lehetetlen, csak Application-t kell váltani röptében.

Én még nem adnám fel a reményt, vannak itt hardcore coder-ek akiknek ez lehet nem probléma.
Szóval nézzél vissza időnként, hátha valaki más is felfigyel a problémádra.
Előzmény: dany82 (11787)
dany82 Creative Commons License 2010.05.18 0 0 11787
igen, ezt már néztem.

azonban itt arról lenne szó, hogy egyetlen adatsort kellene átvinni egy word dokumentumba. Egy kattintással egy nagy "ajánlat elkészítése" gombra az excelben. :-)

De úgy látom, hogy ehhez visual basic tudás is kellene az én tudásom pedig csak átlagos excel parancsokhoz elég...

Szóval akkor ez valszeg esélytelen. de azért köszi.

Egyébként az officeom 2007, ha esetleg valakinek lenne mégis egy ötlete.

Előzmény: SQLkerdes (11786)
SQLkerdes Creative Commons License 2010.05.18 0 0 11786
A word-nek a print merge funkciójában nézz körül, az való erre.

Itt vannak youtube-os videók, amik elmagyarázzák, hogy hogyan kell használni. Az adataid forrása lesz az excel file.

Jutyúb
Előzmény: dany82 (11785)
dany82 Creative Commons License 2010.05.18 0 0 11785
kaptam egy feladatot és sajnos meghaladja tudásom, ezért szeretném a segítségeteket kérni.

A következöröl lenne szó: Az excelben kellene egy sablont csinálni, ahol a munkatárs kiválaszthatja, hogy melyik ügyfélnek, milyen terméket (3 különbözö választási lehetöséggel) milyen kondiciókkal ad majd alul egy gombot megnyomva egy wordös sablonba betöltené az adatokat és már csak ki kellene nyomtatnia az árajánlatot.

A sablont meg tudom csinálni. a kérdésem, hogy mi az a funkció, amellyel a gomb megnyomására megnyilík a wordben a dokumentum és beilleszti a kiválasztott adatokat.

Elöre is köszi a segítséget.
NeomatiK Creative Commons License 2010.05.18 0 0 11784

Ja megvan:

Fájl

Oldalbeállítás...

Lap fül

 

köszi a segítséget!

Előzmény: SQLkerdes (11782)
NeomatiK Creative Commons License 2010.05.18 0 0 11783
Ez a magyar verzióban hol van? Főleg a Page setup. Nem találtam meg.
Előzmény: SQLkerdes (11782)
SQLkerdes Creative Commons License 2010.05.18 0 0 11782
Page setup
Sheets fül
Itt van egy olyan rész, hogy Rows to repeat at top.

Oda belekattintasz és utána kijelölöd a megfelelő számú sort ami minden lap tetején ismétlődjön.
Előzmény: NeomatiK (11781)
NeomatiK Creative Commons License 2010.05.18 0 0 11781
Sziasztok!

Találkoztam egy dokumentummal, amiben az első kb 6 sorban lévő felirat megismétlődik minden kinyomtatott lap tetején.

Próbáltam én is ilyet csinálni, de nem jöttem rá hogyan kell. Élőfejben nem volt megadva semmi.

Mosely Creative Commons License 2010.05.18 0 0 11780
Hálásan köszönöm! Amint lesz időm, már próbálom is (és természetesen megírom az eredményt)!
Előzmény: SQLkerdes (11779)
SQLkerdes Creative Commons License 2010.05.18 0 0 11779
Szerintem ennek működnie kéne:
Használati utasítás a kódba beleírva!

Sub masmegoldas()
'Rész1 és 2 törlése
Sheets("rész2").UsedRange.ClearContents
Sheets("rész1").UsedRange.ClearContents

'autofilter bekapcs
Sheets("alap").Columns("A:A").AutoFilter field:=1, Criteria1:="x"

'aktiv terület Copy
Range(Range(Range("a1"), Range("a1").End(xlToRight)), Range(Range("a1"), Range("a1").End(xlToRight)).End(xlDown)).Copy

'Copy terület másolása az A1 cellába
Sheets("rész1").Select
Cells(1, 1).Select
ActiveSheet.Paste

'autofilter bekapcs
Sheets("alap").Columns("A:A").AutoFilter field:=1, Criteria1:="y"

'aktiv terület Copy
Sheets("alap").Select
Range(Range(Range("a1"), Range("a1").End(xlToRight)), Range(Range("a1"), Range("a1").End(xlToRight)).End(xlDown)).Copy

'Copy terület másolása az A1 cellába
Sheets("rész2").Select
Cells(1, 1).Select
ActiveSheet.Paste

'Oszlop törlése

'Ezt a részt kell annyiszor megismételned (copy paste) ahány oszlopot törölni akarsz
'A columns(13)-at kell kicserélni a megfelelõ oszlopszámra
'Egybefüggõ oszlopokat (pld A:C) a Columns(1:3) hivatkozással törölhetsz könnyedén
Sheets("rész1").Columns(13).Delete
Sheets("rész2").Columns(13).Delete



End Sub
Előzmény: SQLkerdes (11778)
SQLkerdes Creative Commons License 2010.05.18 0 0 11778
Érdekes...
Az én 4 processzoros gépem megfagyott mikor random adatokkal lefuttattam a kódot.

Szóval ha jól értem akkor a következőt csinálja a makró:
- Az "alap" nevű sheet A oszlopa alapján leszűri az adataidat és ahol az A oszlop adata:
- x az megy a "Rész1" sheet-re
- y az megy a Rész2 sheet-re.

Ha jól látom a rész1-et és rész2-t törlöd mielőtt az alap-ról jövő adatokat odamásolod.

Az ideális megoldás itt szerintem az, hogy a másolandó sorok minden celláját átmásolod a rész1-re és rész2-re és utána a szükségtelen adatokat (oszlopokat) már ott törlöd.

Van ez ellen a megoldás ellen valamilyen kifogásod? Ellenérv lehet pld ha ez csak egy nagyobb kód része és közben még más adatok is rákerülnek a sheet-ek törlendő oszlopaiba (a másolt terület alá). Nem hiszem, hogy ez történik itt, mondtad, hogy nem nagyon dolgozol makrókkal, de egyszerűbb megkérdezni.
Előzmény: Mosely (11777)
Mosely Creative Commons License 2010.05.18 0 0 11777
Ez lenne az általam eszkábált makró.

Sub Rögzítés1()
Sheets("rész1").Select
Cells.Select
Selection.Delete Shift:=xlUp
Sheets("rész2").Select
Cells.Select
Selection.Delete Shift:=xlUp
Sheets("alap").Select
Columns("A:A").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="x"
Cells.Select
Selection.Copy
Sheets("rész1").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("alap").Select
Selection.AutoFilter Field:=1, Criteria1:="y"
Cells.Select
Application.CutCopyMode = False
Selection.Copy
Sheets("rész2").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("alap").Select
Selection.AutoFilter Field:=1
Application.CutCopyMode = False
Selection.AutoFilter
Range("A1").Select
End Sub
Előzmény: SQLkerdes (11776)
SQLkerdes Creative Commons License 2010.05.18 0 0 11776
Kedves Alonzo,

Tedd ide be a makrot és akkor jobban tudunk segíteni.
Előzmény: Mosely (11775)
Mosely Creative Commons License 2010.05.18 0 0 11775
Sziasztok!

A következő probléma megoldásában kérném a segítségeteket.
Van egy EXCEL táblám, amiből bizonyos sorokat szeretnék átmásolni egy másik táblába. Ehhez írtam is egy makrót, ami kiszűri a másolandó sorokat és át is másolja. Azonban most arra lenne szükségem, hogy ezeknek a soroknak csak bizonyos celláit másolja át. (pl. csak a 2., 5. és 6. cellát).
Nem nagyon értek a makró íráshoz, így lehet banális a kérdésem, de kérem, hogy aki tudja a választ, írja meg.

Köszönöm mindenkinek!
Törölt nick Creative Commons License 2010.05.17 0 0 11774
Nos, hát ezek azok a részletek, amiket általában nem tudok kihámozni a leírásból. Ritka az olyan problémafelvetés, amelyből elsőre megértem, mit kell csinálni. Megvárom, hogy RedLac mit szól ezekre, és akkor talán tisztábban látok majd.
Előzmény: SQLkerdes (11773)
SQLkerdes Creative Commons License 2010.05.17 0 0 11773
RedLac template file-lal szerette volna ezt megcsinálni, csak ugye ott az a feneség, hogy a template file megnyitása után egy noname file nyílik meg. Ő ezt szerette volna valamilyen adott algoritmus szerinti névvel és desztinációval ellátni.

Amit te javasolsz, az addig jó amíg a template meg nem változik, mert akkor a változás utáni dátumú file-ok már nem jók (ha jól értem akkor te létrehozol számos file-t előre). Érdekes probléma, hogy az év mind a 365 napjához fog file tartozni, vagy csak bizonyosokhoz, pld attól függően, hogy az adott napon változott-e az MNB alapkamat.

Én azt csinálnám, hogy a template OpenWorkbook v. CloseWorkbook v. SaveWorkbook eseményébe tennék bele egy makrót, ami:
- a rendszerdátum hónap (és év) adata alapján ellenőrzi, hogy létezik-e a cél folder, ha nem akkor létrehozza
- a file előre adott nevéhez hozzáteszi a dátum egy részét (yyyymmdd)
- és ezután menti.

Sajnos az ilyen automata eseményekhez hozzárendelés nem az én forte-m...

Előzmény: Törölt nick (11772)
Törölt nick Creative Commons License 2010.05.16 0 0 11772
Jól értem, az a feladat, hogy
- létrehozni 12 mappát a 12 hónapnak,
- minden hónap mappájában legyen annyi másolat a sablonból, amennyi nap van benne, és
- minden másolatnak a nevében legyen benne, hogy melyik napra szól?


Előzmény: Redlac (11771)
Redlac Creative Commons License 2010.05.16 0 0 11771
Üdv Mindenkinek!


Van egy 3 munkalapból álló sablon fájlom, melyből napi fájlokat hozunk létre a munkahelyen.

Tehát a mintákból készítünk (mentés másként) 01, 02, 03, ... 31-ig elnevezésű fájlokat, melyek meghatározott részébe a napi dátum is belekerül. Az egy hónapnyi fájlokat havi mappákban tároljuk.

Lehetne-e ezt a fájllétrehozást makróval megoldani?

Leslee
SQLkerdes Creative Commons License 2010.05.13 0 0 11770
Lehetne helyette használni az N függvényt, csak az valahogy nem terjedt el erre a célra...
Előzmény: tt65 (11768)
SQLkerdes Creative Commons License 2010.05.13 0 0 11769
A dupla negatív egy Boolean (True, False) eredményt vált át számmá. Eredményeképp a True-ból'1', a False-ból '0' lesz.
Előzmény: tt65 (11768)
tt65 Creative Commons License 2010.05.13 0 0 11768

az ilyen függvényekben a "--" mit jelent?

=INDEX(A1:D20,SUMPRODUCT(--(A1:A20=A25),ROW(A1:A20)),SUMPRODUCT(--(A1:D1=C25),COLUMN(A1:D1)))

 

láttam már máshol is, csak nem értem a dolgot.

Előzmény: SQLkerdes (11225)
tt65 Creative Commons License 2010.05.13 0 0 11767

alkalmazz tömbképleteket!

térj át xlsx formátumra

Előzmény: MGD1 (11766)
MGD1 Creative Commons License 2010.05.13 0 0 11766
Sziasztok

Van egy excel dokumentumunk amelyben a sok keplet miatt nagyon megnott a dokumentum merete ami miatt nagyon nehezkesen mukodik.
Hogyan csokkenthetnenk a dokumentum meretet?
Redlac Creative Commons License 2010.05.08 0 0 11765
Ez az alternatív megoldásod nem is tűnik rossznak :-)

Még csak most eszkábálom össze belőle a teljes működést, de nagyon frappáns.


Az előző sor után kattintgattam párat, és meg kell, hogy állapítsam, hogy zseni vagy!

Működik amit szeretnék, és ráadásul gyorsan lehet létrehozni az egészet.

Köszönöm szépen a segítségedet!

Üdv:

Leslee
Előzmény: Törölt nick (11745)
Törölt nick Creative Commons License 2010.05.07 0 0 11764
Köszönöm szépen! Az általad javasolt módosításokkal tökéletesen működik! :-)
Előzmény: Törölt nick (11761)
Törölt nick Creative Commons License 2010.05.07 0 0 11763
Köszönöm. A probléma az volt, hogy a függvény nem adott vissza semmi értéket, illetve csak azt, amit hibakezelésnél beállítottam a "nincs adat"-ot. A Match állandóan hibát adott vissza. Próbáltam én is az általad javasolt módon megadni, hogy a "TELEPÜLÉS" munkalap a sajatfgv.xlam része, de ez sem volt jó.
Előzmény: SQLkerdes (11759)
tt65 Creative Commons License 2010.05.06 0 0 11762
már nem éltem hiába! :-)
Előzmény: Sánta Kutya (SK) (11760)
Törölt nick Creative Commons License 2010.05.06 0 0 11761
SQLkerdes kolléga jó helyen tapogatózik.
A függvényt át kell írni, mert több olyan hivatkozás is van benne, ami nem egzakt, ezért az aktív munkafüzetre vonatkozik. Próbáld ki ezt:

Function IRSZ_CHK(IRSZ As Range, Optional Adat As Byte)
Dim T As Long
On Error Resume Next

T = Application.WorksheetFunction.Match(IRSZ, ThisWorkbook.Worksheets("TELEPÜLÉS").Range("A:A"), 0)
If Err.Number = 0 Then

With ThisWorkbook.Worksheets("TELEPÜLÉS")
Select Case Adat
Case 1 'település típus
IRSZ_CHK = .Range("C" & T)
Case 2 'lakosok száma
IRSZ_CHK = .Range("D" & T)
Case 3 'régió
IRSZ_CHK = .Range("E" & T)
Case Else 'település neve
IRSZ_CHK = .Range("B" & T)
End Select
End With

Else: IRSZ_CHK = "nincs adat"
End If

End Function

Előzmény: Törölt nick (11758)
Sánta Kutya (SK) Creative Commons License 2010.05.06 0 0 11760
Aha, már értelek.
Előzmény: tt65 (11750)
SQLkerdes Creative Commons License 2010.05.06 0 0 11759
Mi a hibajelenség? A függvény nem tűnik létezni? Vagy "lefut" csak hibát ad vissza?

Igy elsőre amit a függvény kódjában látok, az az lehet, hogy a függvény valszeg azt a workbook-ot veszi alapnak, aminek a worksheetjén használják.

Mivel a Telepules munkalap nem az aktiv workbookban van, lehet egyszerűen nem találja. Próbáld meg megmondani neki, hogy a település worksheet a sajatfgv.xlam workbook része.

set wsAdatbázis = workbooks("sajatfgv.xlam").worksheets("telepules")

Vagy valami ilyesmi.
Előzmény: Törölt nick (11758)
Törölt nick Creative Commons License 2010.05.06 0 0 11758
Sziasztok!

Egy olyan felhasználó függvényt szeretnék készíteni, amely megadott irányítószám alapján bizonyos értékeket ad vissza. A problémám az, hogy meg lehet-e oldani azt, hogy az adatbázis, amiben keresés történik a bővítmény fájl egy munkalapja legyen? Amint az alábbi rutint bővítményként mentem el (C:\Program Files\Microsoft Office\Office12\XLSTART\Sajátfgv.xlam) és egy új munkafüzet megnyitása után a függvény nem működik, pedig a "TELEPÜLÉS" munkalapon ott vannak az adatok. Tudna valaki segíteni?

Function IRSZ_CHK(IRSZ As Range, Optional Adat As Byte)
Dim T As Long
On Error Resume Next

T = Application.WorksheetFunction.Match(IRSZ, Worksheets("TELEPÜLÉS").Range("A:A"), 0)
If Err.Number = 0 Then

With Worksheets("TELEPÜLÉS")
Select Case Adat
Case 1 'település típus
IRSZ_CHK = .Range("C" & T)
Case 2 'lakosok száma
IRSZ_CHK = .Range("D" & T)
Case 3 'régió
IRSZ_CHK = .Range("E" & T)
Case Else 'település neve
IRSZ_CHK = .Range("B" & T)
End Select
End With

Else: IRSZ_CHK = "nincs adat"
End If

End Function
O. Kán Creative Commons License 2010.05.06 0 0 11757

Ez tökéletes, köszönöm. :)

Előzmény: Törölt nick (11755)
O. Kán Creative Commons License 2010.05.06 0 0 11756
Ez jutott nekem is az eszembe, de az körülményes (főleg az "AA" oszlopoktól kezdve).
Előzmény: SQLkerdes (11754)
Törölt nick Creative Commons License 2010.05.06 0 0 11755
Vagy így is lehet:

Range(Columns(1), Columns(2))
Előzmény: O. Kán (11751)
SQLkerdes Creative Commons License 2010.05.06 0 0 11754
ASCI-kód?
Előzmény: O. Kán (11751)
Törölt nick Creative Commons License 2010.05.06 0 0 11753
Ha összefüggő tartományt akarsz megadni, akkor a Resize a te barátod. A te példádon:

Columns(1).Resize(, 2)
Előzmény: O. Kán (11751)
tt65 Creative Commons License 2010.05.06 0 0 11752
O. Kán Creative Commons License 2010.05.06 0 0 11751

Sziasztok!

 

Egy apróság, de nem tudom megoldani...a columns függvénynél (makróban) hogy lehet (oszlop)számokkal megadni a tartományt? Alapesetben betűkkel lehet (columns("A:B")), de nekem számokkal kellene (valahogy így: columns(1:2)).

 

Mi lehet a megoldás?

tt65 Creative Commons License 2010.05.06 0 0 11750

Igen, az un. legkisebb négyzetek elvével illeszt egy egyenes, vagy polinomot. Igazából itt sem derivál, hanem csak számol.

A deriválás a módszerhez szükséges, hogy miként számolja a pontokból a közelítő függvény paramétereit.

Előzmény: Sánta Kutya (SK) (11748)
SQLkerdes Creative Commons License 2010.05.06 0 0 11749
Nem feltétlenül egyenesről beszélünk. A LINEST megadja a trend-függvény jellemzőit, ami - szintén jókora idő távolából - szükséges, de nem elégséges feltétele a deriválásnak.
Előzmény: tt65 (11747)
Sánta Kutya (SK) Creative Commons License 2010.05.06 0 0 11748
Valami köze azért csak van, mivel a legkisebb négyzetek módszerét használja, abban meg negyedszázaddal ezelőttről visszamaradt emlékeim szerint parciális deriválás van, ami a LINEST függvénybe lehet elrejtve. Persze értelmezés kérdése, hogy a minimumhely keresésének mennyi köze van a deriváláshoz. :-)
Előzmény: tt65 (11747)
tt65 Creative Commons License 2010.05.06 0 0 11747

megnéztem

http://www.colby.edu/chemistry/PChem/notes/linest.pdf

ez csak egy egyenest illeszt az adott pontokra, semmi köze nincs a deriváláshoz.

Előzmény: SQLkerdes (11736)
tt65 Creative Commons License 2010.05.06 0 0 11746

Deriválni, úgy mint derivált függvényt előállítani szerintem biztos nem tud.

Le lehetne biztos programozni, mert mint tudjuk, deriválni a lovat is meg lehet tanítani, de integrálni csak  két ember tud európában. A másik svájcban él.

(ősrégi folklór, minden főiskolán mesélik)

Azt biztos lehet, hogy adott x0 (xnull) helyen kiszámolni az adott függvény deriváltat. (akár jobbról, akár balról is lehet) De ehhez nem igazán kell belső függvény. A kollega által jelzett függvényt nem ismerem, kiváncsi lennék milehet!

Előzmény: bbjj (11735)
Törölt nick Creative Commons License 2010.05.05 0 0 11745
"Nagy szemtelenség lenne konkrét megoldást kérni? :-)"

Nem, de az eddigi információk alapján ennél konkrétabbat nem tudtam mondani.
Most is még kicsit bizonytalan vagyok. Azt mondod, hogy a jelölőnégyzetek C53:C82-ben vannak. Kérdés azonban, hogy hogyan kerültek oda? Másfajta megközelítést kell alkalmazni, ha az űrlap eszköztárból, illetve ha a vezérlők eszköztárból származnak.

Másrészt, a jelölőnégyzet elhelyezésére vonatkozóan nem találtam eddig magától értetődően használható információt. Ez azt jelenti, hogy ha ránézel a munkalapra, akkor látod, hogy a C53-ban van, de ha programból lekérdezed a helyét, akkor legfeljebb azt tudod megállapítani, hogy a munkafüzet bal felső sarkához képest hány pixel lefelé illetve jobbra.
Na, ezt átszámolni cellacímre elég problematikus. Attól tartok, az algoritmus el fog tévedni néhány jelölőnégyzet esetében, ezeket aztán majd kézzel kell helyretenni.

Viszont közben eszembe jutott egy alternatív megoldás. Jelölőnégyzet nem is kell hozzá, csak az alábbi lépések:

1. Állítsd át a C53:C82 cellák karaktertípusát Windings-re
2. Tedd be a munkalap kódlapjára ezt az eseménykezelőt:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Range
If Intersect(Target, Range("C53:C82")) Is Nothing Then Exit Sub
For Each c In Intersect(Target, Range("C53:C82")).Cells
If c = Chr(254) Then
c = Chr(168)
Else
c = Chr(254)
End If
Next
Cancel = True
End Sub

Innentől kezdve, ha jobb gombbal kattintasz a C53:C82 cellák egyikére, vagy akár többre egyszerre, felváltva kis üres négyzet, vagy kis pipával töltött négyzet jelenik meg benne. (Hátulütő: ha az aktuális kijelölés átfed a C53:C82 tartománnyal, akkor a jobb gombos helyi menü nem elérhető.)

3. A jelölőnégyzeteket kiértékelő képleteket úgy módosítsd, hogy a T53:T82 helyett C53:C82-re hivatkozzanak. Ha KÓD(C53)=168, akkor van pipa, tehát az időpont a holnapi napra vonatkozik. Ha KÓD(C53)=254, akkor nincs pipa.
Előzmény: Redlac (11738)
Redlac Creative Commons License 2010.05.05 0 0 11744
Olyan rossz érzés, ha másnak igaza van :-)
Előzmény: Sánta Kutya (SK) (11739)
Törölt nick Creative Commons License 2010.05.05 0 0 11743
bocs az elgépelésekért :)

a képlet helyesen:

=ELŐREJELZÉS(K2;OFSZET(knownY;HOL.VAN(K2;knownX;1)-1;0;2);OFSZET(knownX;HOL.VAN(K2;knownX;1)-1;0;2))
Előzmény: Törölt nick (11742)
Törölt nick Creative Commons License 2010.05.05 0 0 11742
oké!! kezdek rájönni a megoldásra:

-készítettem egy-egy "eltelt idő" oszlopot, az egyikben kiszámítattam az egyes időpontok közötti időket másodpercben és soronként összeadattam, a másikban a kívánt 5 másodperces eltelt időket írtam be (5,10,15,20, stb, kb. 8ezerig)

-meghatátoztam "knownY" és "knownX" tartományokat: értelemszerűen az ismert Y értékek a magasságértékek és az ismert X az azokhoz tartozó eltelt időértékek

-az alábbi, neten talált képlettel lehet interpolálni:

=ELŐREJELZÉS(K2;OFSZET(knownYj;HOL.VAN(K2;knownXjk;1)-1;0;2);OFSZET(knownXjk;HOL.VAN(K2;knownXjk;1)-1;0;2))

a K2-ben van az eltelt 5 másodperc, a K3-ban a 10, és így tovább

úgy néz ki, hogy működik! most már egyértelműen egymás mellé tudom tenni a HR és az ALT értékeket az eltelt idő függvényében!!
Törölt nick Creative Commons License 2010.05.05 0 0 11741

szóóóval, máshogy, egyszerűbben feltéve ugyanazt a kérdést: a képen látható, hogy mely időpontokban állnak rendelkezésre ALT értékek, és mellé tettem azokat az időpontokat, amelyekben szükségem van az ALT értékekre (és ez így megy lefelé, mintegy 3500 sor hosszan) - gondolom valamiféle interpolációs eljárással megoldható lehet a dolog, de egyelőre nekem nem megy.. :(
Törölt nick Creative Commons License 2010.05.05 0 0 11740
ha jól értem a kérdéseket, akkor igen és igen.
Előzmény: SQLkerdes (11728)
Sánta Kutya (SK) Creative Commons License 2010.05.05 0 0 11739
Szerintem pont ez a hackelés. Az a crackelés, amire gondolsz. :-)
Előzmény: Redlac (11737)
Redlac Creative Commons License 2010.05.05 0 0 11738
Nagy szemtelenség lenne konkrét megoldást kérni? :-)

A jelölőnégyzetek C53:C82 ben vannak, és a T53:T82-re kellene hivatkozniuk.

Leslee
Előzmény: Törölt nick (11734)
Redlac Creative Commons License 2010.05.05 0 0 11737
Köszönöm az ötletet, kipróbálom.

Nem kell rosszra gondolni:-)

A munkahelyünkön sok ember használ több táblázatot, melyek bizonyos szempontok (értékek-határok) alapján végez műveleteket.
Ezek a szempontok fognak változni (a vezetőség döntése alapján) egy meghatározott időpontban.
Azt szerettem volna, ha elkészítem a táblázatokat, akkor a változáskor nem kell mindenkitől visszaszedni, hogy a szempontokat átállítsam.

Ha hackelni szeretnék, akkor olyan jellegű fórumon kérdeznék;-).


Üdv:

Leslee

Előzmény: Törölt nick (11733)
SQLkerdes Creative Commons License 2010.05.05 0 0 11736
Ha jól értem a kérdést, akkor a LINEST függvény a válasz.
Előzmény: bbjj (11735)
bbjj Creative Commons License 2010.05.05 0 0 11735
Sziasztok!

Egy kolléga kérdezte tőlem, hogy hogyan tud deriválni az Excellel.
Milyen bővítmény kell esetleg hozzá?
Tovább passzolnám a kérdést Nektek, a profiknak.
Törölt nick Creative Commons License 2010.05.04 0 0 11734
Jelölőnégyzetek csatolt celláját makróval is be lehet állítani.
Előzmény: Redlac (11725)
Törölt nick Creative Commons License 2010.05.04 0 0 11733
egyébként számomra valamilyen "rosszakarást" sejtet a kérdés
Előzmény: SQLkerdes (11731)
Törölt nick Creative Commons License 2010.05.04 0 0 11732
>" mint egy időzített bomba"
Előzmény: SQLkerdes (11731)
SQLkerdes Creative Commons License 2010.05.04 0 0 11731
Most meghalsz?
Rossz hangulatban vagyunk?
Előzmény: Törölt nick (11730)
Törölt nick Creative Commons License 2010.05.04 0 0 11730
simán
exit sub-al ki tudsz lépni egy eljátrásból pl egy dátumvizsgálat után.

pl.:

Sub werwer()
Dim q As Date, w As Date, y As Date
q = Now()
y = "2010.05.04"
If q = y Then Exit Sub Else MsgBox "Most meghalsz"
End Sub
Előzmény: Redlac (11727)
SQLkerdes Creative Commons License 2010.05.04 0 0 11729
Én azt gondolnám, hogy ha az OpenWorkbook eseményhez rendeled hozzá, az egészet beleteszed egy IF-be ami kiértékeli az időt akkor pont ez történik.

Az egyetlen kérdés az az, hogy kell-e azzal törődni, hogy a makro csak egyszer fusson le, ne pedig az adott dátum utáni megnyitásokkor mindíg, mert az lehet macerás...
Előzmény: Redlac (11727)
SQLkerdes Creative Commons License 2010.05.04 0 0 11728
Csak az időpont alapján kell párosítani a két adatot?
A néhány másodperces eltérés bármilyen előjelű lehet?
Előzmény: Törölt nick (11726)
Redlac Creative Commons License 2010.05.04 0 0 11727
Üdv Mindenkinek!

Szerintetek meg lehet-e oldani, hogy egy makró csak egy bizonyos dátumig legyen futtatható.
Tehát, mondjuk 2010.06.01-től már ne működjön, de addig igen.

Illetve egy bizonyos makró, adott dátum után működjön, mint egy időzített bomba :-)

Leslee
Törölt nick Creative Commons License 2010.05.04 0 0 11726

Erről lenne szó. Tehát a meglévő, HR értékekhez kellene párosítani a magasságértékeket.

Ki lehetne válogatni azokat a magasságértékeket, amelyek ugyanazon időpontokban kerültek rögzítésre, mint a HR étékek? Bizonyára akadna ilyen és a hiányzó időpontokhoz interpolációval behelyettesíthetőek lennének az értékek?

Vagy úgy, hogy azokat, amelyek csak egy másodperccel térnek el, be lehet helyettesíteni a kívánt idpontra, hiszen egy másodperc alatt úgysem változott jelentős mértékben a magasság?
Előzmény: Törölt nick (11723)
Redlac Creative Commons License 2010.05.04 0 0 11725
Más:

Sok jelölőnégyzet cellahivatkozását lehet-e egyszerűbben, mint egyenként elkészíteni? A húzva másol nem működik :-(
Redlac Creative Commons License 2010.05.04 0 0 11724
Igen, ilyesmire gondoltam én is.
Egy gomb, mely visszamásolja a rejtett helyről az eredeti képleteket.
De majd 200 cellában kellene a hivatkozásokat abszolúttá tenni (az F4-es ismerem), és azt gondoltam, hátha van valami egyszerűbb.

Esetleg a $-ozásnak van valami trükkje, amit sok cellára lehetne alkalmazni?
Előzmény: szkripnyik (11721)
Törölt nick Creative Commons License 2010.05.04 0 0 11723
arra közben rájöttem, hogy át lehet váltani "excel" időre az unix időt a köv. módon:

=A2/(60*60*24)+"1970.1.1"

és így már frankó időoszlopaim vannak, de az alapproblémára továbbra sem találok egyszerű megoldást.. :((
Előzmény: Törölt nick (11722)
Törölt nick Creative Commons License 2010.05.04 0 0 11722
Sziasztok! A gondom a következő:
Két különböző mérőműszerből származó adatokat próbálok összefésülni Excelben.

1: Szívfrekvencia adatoszlop
2: Magasság adatoszlop

Mindkét adatoszlophoz tartozik egy-egy idő adatoszlop. (hogy MIKOR történt az adot paraméter részadat rögzítése) A gond az, hogy konvertálások sorozata után eljutottam odáig, hogy a formátumok tökéletesen megegyezőek, egységesen „unix” időben (pl. „1272104400” jelenti a „2010.04.24. 10:20:00Z” időpontot) van mindkét idő adatoszlop, de nem azonos időpontokban történt az adatok rögzítése a két különböző műszerrel: a szívfrekvenciát következetesen 5 másodpercenként rögzítette a mérőműszer, de a másik a magasságot össze-vissza. Így a kb. másfél órás mérés során keletkezett 1614 db szívfrekvencia adat és 3610 db magasság adat. (pontosan ugyanakkor, a fenti példában említett időpontban indul mindkét adatoszlop.) Ahogy nézem, az Excel nem igazán tud ezzel az időformátummal mit kezdeni, képtelen más formátumra váltani.

A magasságértékeket lehetne átlagolni, interpolálni, összevonni, mert az a paraméter lineáris, szóval a szívfrekvencia oszlophoz kellene igazítani a magasságértékeket, amelyekből jóval több van, de teljesen össze-vissza időpontokból származnak, nincs minden 5 másodpercenkénti szívfrekvencia értékhez egyértelműen hozzárendelhető magasságérték.

A két paramétert szeretném grafikusan is ábrázolni, egyazon grafikonban, két y tengellyel a két oldalán, az idő függvényében (x tg.).

Megoldható ez a feladat?
szkripnyik Creative Commons License 2010.05.04 0 0 11721
Másik (szintén rejtett) és READ-ONLY oszlopban tárolni az eredeti képletet, és szükség esetén onnan visszaállítani akár makróval, akér irányítptt beillesztéssel!!!

(sajnos a gondolatolvasó programot még nem írták meg és a gondolatolvasó programozót sem szülték még meg)
Előzmény: Redlac (11720)
Redlac Creative Commons License 2010.05.04 0 0 11720
Üdv Mindenkinek!

Van egy oszlopom, melyben a cellákban rejtett képletek vannak. Azért, mert van olyan eset, hogy a képlet adja az eredményt, de van úgy, hogy a felhasználó átírhatja.

Azonban, ha valaki del-t nyom a rejtett képletet tartalmazó cellán, a képlet törlődik.De elképzelhető, hgy a már manuálisan módosított adatot szeretné képletre visszaállítani.
Lehetséges-e egy gombbal alaphelyzetre visszaállítani az oszlop tartalmát?
Az oszlop mondjuk: B53:b200

Leslee
Redlac Creative Commons License 2010.05.04 0 0 11719
Köszi az ötleteket, de az a helyzet, hogy az időpont bevitelnél, minden egyes cellánál előfordulhat, hogy adott időpont az már a következő nap lenne.

Végül is összeraktam rá valamit :-)

Ezen a pipálás a háttérben hozzáad 1-et az értékhez, így jelölve, hogy az már másnap.



Leslee
Előzmény: Jozsef (11718)
Jozsef Creative Commons License 2010.05.02 0 0 11718
Az a helyzet, hogy ha csak sima időpontot veszel fel, akkor is teljes dátumnak kezeli. pl. ha 23:00 írsz be, ez 1900.01.01. 23:00 jelent. Sorry, ez van.
Ami még ötletem lenne, hogy állítsd át az oszlop cellaformátumát szövegre, ide viszed be az óra:percet, és egy mellette lévő oszlopban összerakod a helyes dátumot.
Itt egy megoldás:
Előzmény: Redlac (11717)
Redlac Creative Commons License 2010.05.02 0 0 11717
Köszi, de...

Ez a megoldás kicsit macerás, hogy minden esetben, minden cellánál a teljes dátumot beírjam.

Elvileg ez a "megsúgás" lenne jó, de hogy a túrós tésztában mondom meg egyszerűen az excelnek, hogy egy bevitt adat már holnap.

Gondoltam arra,hogy esetleg egy-egy gombot teszek minden beviteli cella mellé, amit megnyomva egy makró mondja meg a cellában lévő értéknek, hogy ő már másnap.

Kicsit bonyolult, mert olyan felhasználóknak kell kitölteni, akik elől lapvédelem van beállítva. Tehát csak adatfeltöltés és esetleg gombnyomogatás jöhet szóba :-)
Előzmény: Jozsef (11716)
Jozsef Creative Commons License 2010.05.02 0 0 11716
Add meg hozzá a dátumot is. pl. 2010.05.02. 23:50,..., 2010.05.03. 00:00
Előzmény: Redlac (11714)
szkripnyik Creative Commons License 2010.05.02 0 0 11715
Meg kéne "súgni" az EXCEL-nek, hogy az már "holnap", tehát a szám értéke számértékre formázva már nagyobb 1-nél!
Előzmény: Redlac (11714)
Redlac Creative Commons License 2010.05.02 0 0 11714

Üdv Mindenkinek!

 

Egy kis időpontos anomáliában kérnék segítséget.

Adottak egymás után időpontok:

21:05

20:50

21:00

20:55

 

Ha az Excellel sorba rendezem őket, és arra vagyok kíváncsi, hogy hány perc a különbség köztük, akkor a megoldás 5 perc lesz.

 

De mi van akkor, ha az időpontok:

00:10

23:50

00:00

00:05

23:55

 

Ebben az esetben a nekem megfelelő megoldás a következő sorrend lenne:

23:50

23:55

00:00

00:05

00:10

És a megoldás megint csak 5 perc lesz.

 

Ehelyett azonban az Excel ezt alkotja:

00:00

00:05

00:10

23:50

23:55

A közöttük lévő perc meg 5 és 1400 valamennyi lesz (a 00:10 és 23:50 között)

 

Szerintetek van-e megoldás arra, hogy az általam helyesnek tartott sorrendet állítsa be. Hogyan tudnám "megmagyarázni" az Excelnek, hogy az az időpont folytatólagos?

 

 

Köszönöm:

 

Leslee

Törölt nick Creative Commons License 2010.04.29 0 0 11709
Köszönöm, elraktározom ezt is :-)
Előzmény: Törölt nick (11708)
Törölt nick Creative Commons License 2010.04.29 0 0 11708
Egyszer egy Excel tudortól az alábbi tanácsot kaptam:
32 bites op. rendszeren a 32 bites integer műveletek a leggyorsabbak. Ennek az az oka, hogy minden más integer típust a művelet előtt 32 bitesre kell konvertálni, a művelet után meg vissza.
A dolog Excel vonatkozása az, hogy hacsak nincs különösebb okod eltérni ettől a szabálytól, akkor minden egész típusú változót Long-nak érdemes deklarálni. (VBA-ban ez a 32 bites egész.) Ha Byte-ot vagy Integer-t használsz, amikor arra nincs igazán szükség, csak a programod futását lassítod.
Előzmény: Törölt nick (11705)
Törölt nick Creative Commons License 2010.04.29 0 0 11707
Ja, itt pedig csak simán hasra ütöttem... ;-)
Előzmény: SQLkerdes (11706)
SQLkerdes Creative Commons License 2010.04.29 0 0 11706
Function BackslashHelye(s As String) As Byte

Én a fenti Byte-ra gondoltam.
Előzmény: Törölt nick (11705)
Törölt nick Creative Commons License 2010.04.29 0 0 11705
Először az "i" változót byte típusnak adtam meg, de a rutin "run-time error '6' - overflow" hibaüzenettel elszállt. Ezért lett integer.
Előzmény: SQLkerdes (11704)
SQLkerdes Creative Commons License 2010.04.29 0 0 11704
Mondjuk lehet, hogy Boraka már eleve bekalkulálta, hogy XP (v. W7) alatt mekkora lehet a leghosszabb elérési út, mi meg itt égünk a szűklátókörű, excel-központú nézeteinkkel :-)

Egyébként ha jól látom, akkor a kérdés egy file elérési útvonala a file neve nélkül. Nem lehet, h. ezt simán ki lehet nyerni és nem kell a backslash-ekkel kóvbojkodni?
Potenciális esete annak, amikor lehet, h. nem a jó problémát oldjuk meg.
Előzmény: szkripnyik (11703)
szkripnyik Creative Commons License 2010.04.29 0 0 11703
Már a 2003-s EXCEL-ben is lehet több ezer karakteres string egy cellában.

1000! egy 2368 számjegyű szám és string formában simán elfér egy cellában.
Előzmény: SQLkerdes (11702)
SQLkerdes Creative Commons License 2010.04.29 0 0 11702
Lehet egy Byte tipus túl szűk a problémának.
2007-ben már simán lehet akár 256 karakter is egy cellában.
Előzmény: Törölt nick (11695)
SQLkerdes Creative Commons License 2010.04.29 0 0 11701
Fórum motor mondjon le!
Kihagyta a backflash. Szóval a képlet helyesen:

=MAX((IF(MID(A1,ROW(A1:INDIRECT("A"&LEN(A1))),1)="\",1,0)*ROW(A1:INDIRECT("A"&LEN(A1)))))
Előzmény: SQLkerdes (11700)
SQLkerdes Creative Commons License 2010.04.29 0 0 11700
Itt a probléma megoldása beépített excel függvényekkel:
Feltételezés:
- a kiértékelendő szöveg az A1 cellában van
- az utolsó -t keressük.

Függvény:
=MAX((IF(MID(A1,ROW(A1:INDIRECT("A"&LEN(A1))),1)="",1,0)*ROW(A1:INDIRECT("A"&LEN(A1)))))

A függvény bevitelét NEM ENTER-rel, hanem SHIFT+ENTER rel kell lezárni. Ha jól csináltad akkor az excel kapcsos zárójelbe rakja a függvényt a shift+enter után.

Ha magyar exceled van:
- max = max
- if = ha
- mid = (nem tudom)
- row = sor
- indirect = indirekt
- len = (nem tudom)

Lehet, hogy a te változatodban a függvényben lévő vesszőket pontosvesszőkre kell kicserélni, kisérletezz.

Törölt nick Creative Commons License 2010.04.29 0 0 11699
"Lehet-e egyszerűbben?"

Ilyen kérdéshez amúgy nem árt mellékelned azt, amid van, különben honnan fogjuk tudni, hogy mi az, aminél egyszerűbb megoldást keresel...?
Előzmény: Gavriel (11691)
Törölt nick Creative Commons License 2010.04.29 0 0 11698
Ez is igaz.
Előzmény: Törölt nick (11697)
Törölt nick Creative Commons License 2010.04.29 0 0 11697
Tiszta igaz, de a saját mindig jobb ;-)
Előzmény: Törölt nick (11696)
Törölt nick Creative Commons License 2010.04.28 0 0 11696
Nem vitatom a megoldás jóságát, de talán így egyszerűbb:

S = "C:\elso_konyvtar\masodik_konyvtar\.......x-ik_konyvtar\file_name.xls"
BackslashHelye = InStrRev(S, "\")

Az InStrRev függvény (ha jól tudom) a 2002-es verziótól fölfelé érhető el VBA-ból.
Előzmény: Törölt nick (11695)
Törölt nick Creative Commons License 2010.04.28 0 0 11695
Na, most én tettem egy backslash-t, szóval:

Function BackslashHelye(s As String) As Byte
Dim i As Integer

For i = Len(s) To 1 Step -1
If Mid(s, i, 1) = "\" Then
BackslashHelye = i
Exit For
End If
Next i

End Function
Előzmény: Törölt nick (11694)
Törölt nick Creative Commons License 2010.04.28 0 0 11694
Mit szólnál ehhez?

Function BackslashHelye(s As String) As Byte
Dim i As Integer

For i = Len(s) To 1 Step -1
If Mid(s, i, 1) = "" Then
BackslashHelye = i
Exit For
End If
Next i

End Function

Sub tesz()

MsgBox BackslashHelye("C:\elso_konyvtar\masodik_konyvtar\.......x-ik_konyvtar\file_name.xls")

End Sub
Előzmény: Gavriel (11691)
Törölt nick Creative Commons License 2010.04.28 0 0 11693

A példába tegyél be mindenhova kettő backslash-t abból egy már látszani is fog

 

C:\elso_konyvtar\masodik_konyvtar\.......x-ik_konyvtar\file_name.xls.

Előzmény: Gavriel (11691)
SQLkerdes Creative Commons License 2010.04.28 0 0 11692
Öööö, én nem látok bolddal kiemelt backslash-t.
Rosszul nézek valamit?
Előzmény: Gavriel (11691)
szkripnyik Creative Commons License 2010.04.28 0 0 11690
Ez a lekérdezés egy nagyobb EXCEL kivágott része.

Tegnap a "nagy" EXCEL-ben ez a lekérdezés már el sem indult, a hibát sem találtam, azért vágtam ki ezt az eljárást és két lapot egy kicsi másikba.

Most annyit tettem, hogy a "Puffer" lapot kézzel töröltem és visszatettem és egyből működött! Tehát tényleg ott tárolt mégis valamilyen felesleges és lassító információt!
Előzmény: Törölt nick (11689)
Törölt nick Creative Commons License 2010.04.28 0 0 11689
Brutál :)
Előzmény: szkripnyik (11688)
szkripnyik Creative Commons License 2010.04.28 0 0 11688
Volt több óra is (4-5), de másfél minimum!
Nem tudom, mennyi függ (függhet) a "túloldali" szervertől.
Előzmény: Törölt nick (11687)
Törölt nick Creative Commons License 2010.04.28 0 0 11687
Korábban mennyi volt?
Előzmény: szkripnyik (11686)
szkripnyik Creative Commons License 2010.04.28 0 0 11686
Futásidő: 0:15:33!!!!!!!!! (Azaz 15 perc 33 másodperc)
Szuper, köszönöm!
Ezek szerint tényleg a munkalapon gyűlik valami szemét, ami lassít!
Előzmény: Törölt nick (11683)
szkripnyik Creative Commons License 2010.04.28 0 0 11685
Úgy tünik, ez a nyerő!

Mást se látok, mint az állapotsorban "csatlakozás a web-re", időnként sóhaj: "Kész"
(Ekkor törli a puffer munkalapját és zicher ist zicher menti az egészet)
Előzmény: Törölt nick (11683)
szkripnyik Creative Commons License 2010.04.28 0 0 11684
Mindenkinek köszönöm a jó tanácsokat, ötleteket.
Egyébként 64bites dual-processzoros gépen használja a CPU 50%-t...
Ezért futtattam 2 hete is részletekben a programot, a részek között kilépve az EXCEL-ből és vissza. Akkor ment, biztosan törlődtek olyan munkaterületek, adatok, amik a lassulást okozzák.
Törölt nick Creative Commons License 2010.04.28 0 0 11683
Leteszteltem 4000 URL sorral. Már 1000-nél ugyanúgy belassul, mint az eredeti, akkor is, ha törlöm a QueryTable objektumokat. És a makró másodszori futtatásánál már az első lekérdezés is tök lassú.
De mégis a QT-k körül kell, hogy legyen az ok. Azt tapasztaltam, hogy ha törlöm a Puffer munkalapot, aztán létrehozok egy újat, akkor ismét gyorsan megy a lekérdezés. Ezért betettem a kódba egy olyan részt, ami 100 lekérdezésenként törli a Puffer munkalapot, és létrehoz egy újat. Ezt futtatva nem észleltem lassulást 1200 URL után sem.

For szkind = 2 To 1200
If szkind Mod 100 = 0 Then
Application.DisplayAlerts = False
ws3.Delete
Set ws3 = Worksheets.Add
ws3.Name = "Puffer"
Application.DisplayAlerts = True
End If

QueryString = ws4.Cells(szkind, 8).Value ''Itt van a lekérdezendő oldal URL címe
If QueryString = "" Then Exit For
ws3.Range("A1:E50").Delete ''Puffer törlése
Előzmény: SQLkerdes (11682)
SQLkerdes Creative Commons License 2010.04.28 0 0 11682
Akkor nem tudom most mi van.
Előzmény: Törölt nick (11680)
SQLkerdes Creative Commons License 2010.04.28 0 0 11681
Köszönöm!
Előzmény: Törölt nick (11679)
Törölt nick Creative Commons License 2010.04.28 0 0 11680
"Most lefuttattam a query-ket és kiirattam a w3.querytables.count - ot, de minden esetben csak egy volt.
Szóval lehet, hogy mégis törli a querytable-ket (-öket?) a cella törlés."


Lehet. Én meg ezt csináltam (lásd ábra, piros keret), és a 27 URL-en a kódot háromszor végigfuttatva ezt kaptam (lásd ábra, kék keret).

Előzmény: SQLkerdes (11676)
Törölt nick Creative Commons License 2010.04.28 0 0 11679
"Árulja már el nekem valaki mikor kell = jelet használni, meg mikor := jelet!"

Amennyire én tudom:
:= jelet akkor használsz, amikor egy függvény hívásakor a paraméternek értéket adsz. Pl.
With ws3.QueryTables.Add(Connection:="URL;" & QueryString, Destination:=ws3.Range(hova))

A VBA-ban a függvényeknek több paramétere is lehet. Ha a függvény hívásakor ezeket a függvényfejlécében deklarált sorrendben adod meg, akkor nem kell kiírni a paraméterek nevét, hanem elegendő csak az értékeket, vesszővel elválasztva. De a VBA lehetőséget ad arra, hogy a paramétereket tetszőleges sorrendben add meg. Ekkor azonban ki kell írni a paraméter nevét, hogy a fordító helyesen értelmezni tudja. Ekkor kell a :=
Az alábbi két kódsor funkcionálisan egyenértékű, de jól látható a paraméterek megadásában a különbség:

Set Z = Range("A:A").Find("d", , xlValues, xlWhole, , , True)

Set Z = Range("A:A").Find(what:="d", lookat:=xlWhole, MatchCase:=True, LookIn:=xlValues)

MegjegyzéseK:
1) A fenti szövegben a "függvény" szó kicserélhető "metódus" vagy "utasítás" szavakra, és a leírtak ugyanúgy érvényesek lesznek.
2) A leírtak nem csak a beépített, hanem a saját függvényekre és szubrutinokra is érvényesek
(3) := használatos még értékadáskor Delphiben és Turbo Pascalban, de gondolom, ez most irreleváns.)
Előzmény: SQLkerdes (11678)
SQLkerdes Creative Commons License 2010.04.28 0 0 11678
Más kérdés:

Árulja már el nekem valaki mikor kell = jelet használni, meg mikor := jelet!

Állandóan megszívom a dolgot és bár kisérletezéses alapon 50% esélyem van a sikerre, azért szeretnék szofisztikáltabban hozzáállni a kódjaimhoz.
SQLkerdes Creative Commons License 2010.04.28 0 0 11677
Az egyetlen amit nem kellene megcsinálni 3000-szer az a hova definiálása (A1).
De nem gondolom, hogy ez szúrja szíven a kódot...
Előzmény: Törölt nick (11674)
SQLkerdes Creative Commons License 2010.04.28 0 0 11676
Most lefuttattam a query-ket és kiirattam a w3.querytables.count - ot, de minden esetben csak egy volt.
Szóval lehet, hogy mégis törli a querytable-ket (-öket?) a cella törlés.

Egyébként az ötlet zseniális, én is arra gyanakodtam, hogy valami szép lassan de biztosan felemészti a memóriát.

Nem lehet, hogy a refresh-nek valami lassító hatása?

Mi van a főlapon? Ha ott vannak számítások a pufferből átvett adatokkal (sum, avg, miegymás) akkor annak a folyamatos update-elése lehet odacsap.
Programilag vedd le a számolások-at és csak a futás végén állítsd vissza.
Screenupdate-tel ugyanez.
Előzmény: Törölt nick (11675)
Törölt nick Creative Commons License 2010.04.28 0 0 11675
Nem biztos, hogy ettől lassul, de tény, hogy a ciklusod folyamatosan nyitja meg az újabb és újabb QueryTable objektumokat. Ezek nem törlődnek a cellatartalommal.
Viszont az is igaz, hogy ha ettől lassul, akkor a makró többszöri futtatása során egyre jobban belassul, ami az első címeknél ugyanúgy jelentkezik, mint az utolsóknál. Ilyesmire nem panaszkodtál, de ennek talán az az oka, hogy ezek az üres QueryTable-k törlődnek a munkafüzet bezárásakor. Mindenesetre érdemes megpróbálni betenni a kódba az alábbi vastagított sorokat:

A legelejére:
Dim aktsor As Integer, oszl As Integer
Dim szkind As Integer, l As Long, j As Long 'ezt csak a teljesség kedvéért
Dim QT As QueryTable 'ezt a probléma megoldása érdekében


A végére:

Next l
ws4.Cells(szkind, 15).Value = Time()
For Each QT In ws3.QueryTables
QT.Delete
Next


Next szkind

Előzmény: szkripnyik (11672)
Törölt nick Creative Commons License 2010.04.27 0 0 11674
Azért a lassúság ebben az esetben lehet optimális is, mert egy cirka 3000 lépéses for ciklusba van rakva az egymásba ágyazott for ciklus, meg egy URL lehívás.
Én azt vizsgálnám meg, hogy egyáltalán kellenek e ezek a for ciklusok, nem lehet e mással helyettesíteni...
(Pl ahol az értékeket másolgatod az egyik helyről a másikra a ciklusban, nem lehet e copy/paste kóddal helyettesíteni)

Megnézném azt is, hogy mi az, ami mégsem kell a ciklusba, hanem kívülre lehet rakni.

(pl. muszáj e az URL-t 3000x lehívnia - bár valszeg nem véletlenül raktad oda... ezt nem tudom.)



Előzmény: szkripnyik (11668)
SQLkerdes Creative Commons License 2010.04.27 0 0 11673
Azért én még a screenupdate-et meg a számolásokat letiltanám amig a query feltölti a Folap-ot.
Láttam már extrém lassulát ilyenektől!
Előzmény: szkripnyik (11672)

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