- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Socket AM4
- Internet Rádió építése (hardver), és programozása
- VR topik
- Soundbar, soundplate, hangprojektor
- Amlogic S905, S912 processzoros készülékek
- Bluetooth hangszórók
- Eldurvul a Nova Lake-kel az Intel-féle hibrid dizájn
- Milyen billentyűzetet vegyek?
- Fujifilm X
-
PROHARDVER!
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #28647 üzenetére
De ha így próbálod meghatározni az utolsó sort az is működhet.
Sub beilleszt()
holavege = Range("A" & Rows.Count).End(xlUp).Row
Worksheets("Munka1").Range("A" & holavege).PasteSpecial Paste:=xlPasteAll
End SubEz persze csak akkor működik, ha a Beillesztési pont mindig az A oszlop legutolsó cellájában van.
-
elttiL
senior tag
válasz
m.zmrzlina #28643 üzenetére
Köszönöm. De nekem hibát ad. Vélhetően azért, mert VB-hez nem konyítok. Kicsit sem.
Töküres táblában próbáltam ki, munkalap neve Munka1, A oszlopba akárhova beírva amire keresnénk, de elhasal a
holavege = Selection.Find(What:="beillesztési pont", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row
sornál. Run-time error '91': Object variable or With block variable not set
Nyilván érti az aki ebben mozog, sajna én nem. -
tam@s
tag
válasz
m.zmrzlina #28623 üzenetére
Nagyon szépen köszönöm, de sz még mindig megakadok vele valahogy, kérnék még egy kis segítséget.
Átalakítottam a makródat a következőképpen:Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row >= 4 And Target.Row <= 11 ThenIf Target.Column = 2 Then
On Error Resume Next
Cells(Target.Row, 4).Value = Cells(Target.Row, 2).Value / 1.044
Cells(Target.Row, 6).Value = Cells(Target.Row, 2).Value / Cells(Target.Row, 5)ElseIf Target.Column = 4 Then
On Error Resume Next
Cells(Target.Row, 2).Value = Cells(Target.Row, 4).Value * 1.044
Cells(Target.Row, 6).Value = Cells(Target.Row, 2).Value / Cells(Target.Row, 5)ElseIf Target.Column = 6 Then
On Error Resume Next
Cells(Target.Row, 2).Value = Cells(Target.Row, 6).Value * Cells(Target.Row, 5)
Cells(Target.Row, 4).Value = Cells(Target.Row, 2).Value / 1.044End If
End IfEnd Sub
Végtelen loopba kerülök...
A táblázatról:
8 termk egymás alatt
2 oszlop a nagyker ár
4 oszlop a termelői ár
5 oszlop azt mutatja, hogy egy dobozban hány tabletta van
6 oszlop az egy tablettára jutó nagyker ár ----> itt a gond, mert ha ezt is beleírom, akkor visszaírja a nagyker árat, és lefagy.
Innen még lenne 5 oszlop, amit oda vissza kellene írni, de csak addig megy, amíg vissza nem számoltatok egy olyan cellát, amelyik szerepel a "ElseIf Target.Column = XX" feltételnél, és akkor vége.Nem lehet valahogy leállítani, hogy ne számolja újra, hanem csak azt, ami az adott IF részfeltételben van?
Bocs, ha nem voltam szakszerű, közgazdász vagyok, ez a 2. makró életemben...
Köszi minden segítséget előre is!
Üdv.:
Tamás -
tam@s
tag
válasz
m.zmrzlina #28618 üzenetére
Nagyon szépen köszönöm, holnap brillírozok a munkahelyemen vele, bár a főnököm szerintem nem is érti, hogy miért probléma ez...
Van ötleted esetleg, hogy ezt át tudom-e alakítani 10 db egymás alatti termékre? Tehát 3. sor, 4. sor...12. sor?
Átírom a makrót már ez alapján, csupán elméletileg kérdezem, ha egyszer szükségem lesz rá.Óriási segítség, tényleg köszönöm!
Üdv.:
Tamás -
Claude Leon
senior tag
válasz
m.zmrzlina #28566 üzenetére
Detto.
(#28569) Fferi50: Próbáltam már azt is.
Olvastam rá megoldást: üres fülre ármásolva (óvatosságból csak szöveget) már számoltak a képletek.
(volt közte sima szum is, az is ugyanúgy viselkedett, csak nem szúrtam ki korábban)Közben kezd derengeni, hogy van valami képletkiíró módja a táblázatnak, csak nem találom, hogyan tudnám ezt kapcsolgatni.
Utálatos ez a megmondom, hogy mit szeretnél tempó. -
spe88
senior tag
válasz
m.zmrzlina #28450 üzenetére
Ismerem, csak ebből táplálkozik tovább egy halom képlet és a lényeg az, hogy amikor az Excel elkezdi a számolást, akkor ne kelljen makrót futtató gombokat nyomgatni, szűrést álíltgatni stb., mert a kollégák nagy részének fogalma sincs erről!
Ha ezt a szűrést lehet automatizálni makrógomb nyomogatások nélkül, vagy hogy ki kéne keresni a menüsorból, akkor OK!De hogyan?
Ez lenne a kérdés!
-
Delila_1
veterán
válasz
m.zmrzlina #28292 üzenetére
"nagyobb hajlam van arra, hogy kitaláld a hiányzó peremfeltételeket"
Talán azért, mert úgy gondolom, a kérdezőt elbizonytalaníthatja a sok újabb kérdés. Nem szeretnék senkiből kisebbségi érzést kiváltani, inkább 3× válaszolok.
Szerencsére ezen a fórumon nem macerálják az emberek egymást, de van olyan hely, ahol porig aláznak mindenkit, aki kérdez.
-
Delila_1
veterán
válasz
m.zmrzlina #28287 üzenetére
De haragszom az n-edik átírás után, csak nem nagyon. Abból indulok ki, hogy aki kérdez, ebben a témában nem olyan profi, mint valami másban, amiben viszont én nem vagyok jártas, és amiben nem tudnék egy tisztességes, lényegretörő kérdést feltenni – ha szükségem lenne rá.
Vajh' a lényegretörőt a hamarosan megjelenő új helyesírási szótár szerint így kell írni?
-
Snoop-y
veterán
válasz
m.zmrzlina #28287 üzenetére
Ha jol latom akkor az szoveges megjegyzes ( ezert hasznaltam concatenate fuggvenyt )
Leirasban J es K oszloprol van szo es mindket lapon az A oszlopon van amire keresunk szoval this should do the trick
Ha van egyeb kriterium akkor az az info hianyzik teljesen. De majd emberunk megmondja a tutitHjam kozben az en bajomra mar kitalaltam a megoldast nem kell rajta porognie senkinek:
Az elso ures cellat keresem meg az adott oldalon es azt a sort ki is torlom szepen.
Iderakom hatha masnak is hasznos:
Sub Rowdel()
'Step 1: Declare Your Variables.
Dim LastRow As Long
'Step 2: Capture the last used row number.
LastRow = Cells(Rows.Count, 2).End(xlUp).Row
'Step 3: Select the next row down
Cells(LastRow, 1).Offset(1, 0).EntireRow.Delete
End Sub -
Snoop-y
veterán
válasz
m.zmrzlina #28285 üzenetére
Na jol van nalam mukodik rendesen az alabbi
Munka sheeten vannak a gyumik amiket keresunk
Alma
korte
barack
banangyumolcsok sheeten vannak az A oszlopban a gyumolcsok amiket keresunk ismet
AAlma
korte
barack
bananJ es K oszlopban pedig a jellemzoik
=CONCATENATE((VLOOKUP(A2,gyumolcsok!A:K,10,0))," ",(VLOOKUP(A2,gyumolcsok!A:K,11,0)))
-
Snoop-y
veterán
válasz
m.zmrzlina #28282 üzenetére
De neki mind a ketto oszlopbol kell az ertek ha jol ertem ez meg csak egyiket adja. Vagy mar nagyon pentek van es en nem ertem
-
Thrawnad
senior tag
válasz
m.zmrzlina #28003 üzenetére
Az be van, de attól még nem külön ablakban vannak, csak a tálcán látszanak.
Thrawnad
-
Musuz
csendes tag
válasz
m.zmrzlina #28003 üzenetére
Köszönöm,megnézem
egyébként a munkalapon végezhető műveletekhez és a hozzájuk tartozó stratégiákhoz fűződő leírásról van szó kezdőknek!
-
Fferi50
Topikgazda
válasz
m.zmrzlina #27432 üzenetére
Szia!
"nem is értem, hogy került oda"
Kismanók előszeretettel bombázzák a programozók sorait, valamelyik poénkodó lélek vezethette a kezedet...További sok jól működő makrót!
-
Fferi50
Topikgazda
válasz
m.zmrzlina #27430 üzenetére
Szia!
Rendben, ezzel nincs is probléma, de akkor a ws_Kabelo már a wb_Temp egy munkalapja.
Tehát elég a ws_Kabelo.Range hivatkozás (a wb_Temp.ws_Kabelo.Range helyett).
A dőlten írt rész a munkafüzet maga és ahhoz hivatkoznád meg a ws_Kabelo munkalap objektumot (tulajdonságot), ilyen tulajdonsága viszont a munkafüzeteknek nincs. Egyszerűen "túldimenzionáltad" az objektumod elérhetőségét.
Mivel már külön objektumként definiáltad a ws_Kabelo munkalapot, ez tartalmazza saját magára nézve a wb_Temp munkafüzetből eredő összes tulajdonságot, nem kell neki hozzáírni, hogy annak része, tudja magáról.
Ha megnézed a ws_Kabelo.Parent tulajdonságát, ott a wb_Temp munkafüzetet tudod azonosítani.
Hiszen így hoztad létre: set ws_Kabelo=wb_Temp.Worksheets("kabelo")Üdv.
(Remélem, sikerült érthetően fogalmazni.) -
Fferi50
Topikgazda
válasz
m.zmrzlina #27423 üzenetére
Szia!
A kérdés az szerintem, hogy mi a wb_Temp és a ws_Kabelo? Milyen objektumok (ránézésre munkafüzet és munkalap kellene legyen (nyilván set wb_Temp = munkafüzet és set ws_Kabelo=munkalap - de melyik munkafüzetben?).
A munkafüzetnek nincs szerintem ws_Kabelo tulajdonsága...,csak Worksheet vagy Sheet tulajdonsága.Vagy set ws_Kabelo=wb_Temp.Sheets(1) és akkor ws_Kabelo.Range a hivatkozás, vagy
wb_Temp.Sheets(1).Range a hivatkozás.Én ezt gondolom problémásnak.
Üdv.
-
lappy
őstag
válasz
m.zmrzlina #27426 üzenetére
Szia!
Nézd meg ezt hátha segít -
Delila_1
veterán
válasz
m.zmrzlina #27423 üzenetére
Függvénnyel nagyon egyszerű lenne. A két adat A, ill. B oszlopban van.
C-> =ha(trim(a2)=trim(b2);0;1)
D1=szum(c:c), ez megadja az eltérések számát -
Fferi50
Topikgazda
válasz
m.zmrzlina #26810 üzenetére
Szia!
Az xml -t megnézve 8 oszlop (A:H) összes cellájának jónéhány paramétere van benne (csak az értéke nincs éppen...)
Üdv.
-
Delila_1
veterán
válasz
m.zmrzlina #26810 üzenetére
A küldött füzetben lévő lap látszólag teljesen üres volt.
Nem én segítettem, magadtól jöttél rá, hogy a C oszlopban van valami rendellenesség.
-
Delila_1
veterán
válasz
m.zmrzlina #26808 üzenetére
Volt egyszer egy ilyen túlméretes fájlom, ott a Ctrl+nyilakkal sikerült megtalálnom a hibás cellát. 2000 körüli sorszámnál a első 1000-ben valahol állt meg a Ctrl+le A1-ből indítva. Egy halom különleges karakter volt a cellában. Fogalmam sincs, hogy kerültek oda, de a kitörlésük után nem volt baj.
Míg ott voltak, a függvények nem látták az alatta lévő sorokat.
-
Delila_1
veterán
válasz
m.zmrzlina #26805 üzenetére
Hogy jöttél rá, hogy a C oszlop a bibis?
-
Delila_1
veterán
válasz
m.zmrzlina #26805 üzenetére
Az 5,34 MB helyett.
-
Delila_1
veterán
válasz
m.zmrzlina #26803 üzenetére
Irányított ugrással (Ctrl+g) az utolsó cellát a H1048457-nek írja. A DARAB és DARAB2 függvény viszont az
A1:H1048457 tartományban nulla darabszámot ad. -
m.zmrzlina
senior tag
válasz
m.zmrzlina #26802 üzenetére
Ezekbe a munkafüzetekbe előszeretettel illesztenek be webes felületről esetleg pdf-ből Ctrl+C-Ctrl+V-vel kisebb nagyobb adatmennyiségeket.
-
Fferi50
Topikgazda
válasz
m.zmrzlina #26798 üzenetére
Szia!
"Ha egy adott munkalapot kitörlök a munkafüzetből akkor a fájl 300kB körüli lesz."
Valószínűleg az "adott munkalapon" levő adatok,körülmények okozzák a méret változását.
Ha a fájl kiterjesztését átírod zip -re, akkor megnézheted, mely fájlok mérete milyen az adott munkafüzetben tömörítve (mivel a formátum tömörített mentést tartalmaz), illetve milyen a szerkezete.
Visszaírva a kiterjsztést, ismét meg tudja nyitni az excel. De én azért mindig egy másolaton szoktam ezt a műveletet elvégezni.Üdv.
-
Delila_1
veterán
válasz
m.zmrzlina #26798 üzenetére
Azon a lapon lehet valami disznóság, amelyiknek a törlése normál méretűvé tette a füzetedet.
Próbálj meg egy új lapot felvenni, a hibás lapról értékként beilleszteni az adatokat ide, majd törlöd a rossz lapot.
Hátha...
-
Delila_1
veterán
válasz
m.zmrzlina #26374 üzenetére
On Error Resume Next
Workbooks.Open Filename:="Elérési_út\FájlNeveKiterjesztéssel" -
Agostino
addikt
válasz
m.zmrzlina #25729 üzenetére
üdv
kicsit visszakanyarodva ide. az miért van, hogy a folyamat egy idő után leáll type mismatch-el? error 13. emiatt aztán nem is fejezi be a műveletet. egy része a feladatnak elkészül, a másik nem
-
Agostino
addikt
válasz
m.zmrzlina #25729 üzenetére
szia
köszi szépen, rövidesen megnézem. egyébként ilyesmiket hol tudok tanulni? gondolom ez annyira nem összetett dolog és viszonylag hamar összerakható : ) bár lehetséges, hogy rosszul gondolom
-
4m
újonc
válasz
m.zmrzlina #25545 üzenetére
úgy lesz "30", hogy vagy azt írom,
hogy "3000" vagy azt,
hogy "30," -
4m
újonc
válasz
m.zmrzlina #25545 üzenetére
Szia,
"Általános"
-
pirit28
csendes tag
válasz
m.zmrzlina #25473 üzenetére
Szia !
Pontatlan, információhiányos volt a kérésem ezért kibővítettem file-t.#25418-hsz-ban volt egy kérésem a *-al elválasztott számok szétszedésében.
Nagyon profin sikerült is ezt a problémát megoldani.
A szétszedéshez használt táblázatból az adatok másolását követően ,amit a Tábla fül A oszlop alatt a található számok igazolnak ,csak úgy végezhető el a szétbontás,hogy az oszlopban levő számokat számmá konvertálom.Viszont mivel ezeket az adatokat percenként kell másolni, ezért a percenként végrehajtandó -
pirit28
csendes tag
válasz
m.zmrzlina #25471 üzenetére
-
pirit28
csendes tag
válasz
m.zmrzlina #25469 üzenetére
Sziasztok !
Újra itt vagyok.Feltöltöttem egy file-t, hátha többet segít a probléma megoldásában.
Az a baj hogy a nem számformátumú számok ,nem azt az értéket tükrözik ami látszik.Ezt szeretném reformálni.
[link]
Köszönöm -
Fferi50
Topikgazda
válasz
m.zmrzlina #25466 üzenetére
Nálad az igazság!
-
Fferi50
Topikgazda
válasz
m.zmrzlina #25464 üzenetére
Szia!
Az első csak "illusztráció" volt a működésre. (De az is csak annyiszor kell lefusson, ahány gyümölcsneved van és nem az egész tartomány cellaszámának megfelelően.)
Üdv.
-
Fferi50
Topikgazda
válasz
m.zmrzlina #25461 üzenetére
Látom, közben Te is megtaláltad a megoldókulcsot. Csak még fűztem hozzá némi egyéb dolgot.
Üdv.
-
Fferi50
Topikgazda
válasz
m.zmrzlina #25459 üzenetére
Szia!
A VBA-ban a nevek nem úgy működnek, mint a munkalapon. A names("név").referstorange mutat a név által meghatározott területre, a names("név").refersto pedig az adott névhez tartozó terület címét adja meg.
Tehát ezt a sor részt:
Workbooks("forrásadatok.xlsx").Names("gyümölcsök")ki kell egészíteni:
Workbooks("forrásadatok.xlsx").Names("gyümölcsök").referstorange
Másrészt, sokkal gyorsabb, ha a range.replace tulajdonságát használod:
wsKabelo.Range("C2:C129").replace what:="ALMA",replacement:=1,lookat:=xlwhole
ami az egész tartományban kicseréli az ALMA szót az 1 számra.
A javított makró pedig a Gyümölcsök tartományon megy végig - és kicseréli az első oszlopban található gyümölcsneveket a második oszlopban található számokra:
Set rng_gyümölcsök = Workbooks("forrásadatok.xlsx").Names("gyümölcsök").referstorange
Set wsKabelo = ActiveSheet
for each cl in rng_gyümölcsök.columns(1).cells
wsKabelo.range("C2:C129").replace what:=cl.value,replacement:=cl.offset(0,1).value, lookat:=xlwhole
nextEgyébként annyit javaslok még, hogy ne használj ékezetes karaktereket a makrókban és a neveknél, mert ebben az esetben nem hordozható a munkafüzeted, más (pl.angol) környezetben hibásan /vagy nem működik.
Üdv.
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #25459 üzenetére
Ha az objektumváltozót a következőképpen deklarálom akkor megy:
Set rng_gyümölcsök = Workbooks("forrásadatok.xlsx").Names("gyümölcsök").RefersToRange
Set wsKabelo = ActiveSheet
For Each rngCella In wsKabelo.Range("C2:C129")
If rngCella.Value <> "" Then
rngCella.Value = Application.WorksheetFunction.VLookup(rngCella.Value, rng_gyümölcsök, 2, 0)
End If
Next -
Fferi50
Topikgazda
válasz
m.zmrzlina #25355 üzenetére
Szia!
Ismét az a felesleges select. Sokkal egyszerübb:
Application.DisplayAlerts = False
Sheets("leotom").Delete
Application.DisplayAlerts = TrueÜdv.
-
alfa20
senior tag
válasz
m.zmrzlina #25355 üzenetére
Köszi! ez igy tökéletes lesz.
-
Musuz
csendes tag
válasz
m.zmrzlina #25247 üzenetére
-
Musuz
csendes tag
válasz
m.zmrzlina #25245 üzenetére
Köszönöm
-
gdodi
csendes tag
válasz
m.zmrzlina #25204 üzenetére
Még kidolgozás alatt van az egész elképzelés, több szempontból kell adatokat kigyűjteni több táblázatba. Erre szükségem is van, és szeretném megtanulni is ezt a programozást. Jelenleg ennyi az egész:
Sub Makró00()
'
' Makró00 Makró
''
Rows("1:1").Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Range("A1").Select
ActiveSheet.PasteSheets("tmp").Select
Dim eleje As Long
Dim vege As Long
eleje = 2
vege = Cells(1, 9) + 1
Worksheets("tmp").Rows(eleje & ":" & vege).Copy Destination:=Worksheets("Munka2").Rows(eleje & ":" & vege)
Worksheets("tmp").Rows(eleje & ":" & vege).Delete Shift:=xlUp' A munkalap formázása és átnevezése
Sheets("Munka2").Select
Columns("A").Select
Columns("A").EntireColumn.AutoFit
Columns("G:L").Select
Selection.Delete Shift:=xlToLeft
Sheets("Munka2").Select
Sheets("Munka2").Name = "00"
Range("A1").SelectEnd Sub
Ezt szeretném még tovább bővíteni. Remélem menni fog.
Ha mégsem menne, megint segítségért folyamodok.
-
gdodi
csendes tag
válasz
m.zmrzlina #25201 üzenetére
Tökéletes!
Erre volt szükségem, ez már nekem is kezelhető, be tudtam illeszteni oda, ahol szükségem volt rá.
Nagyon köszönöm!!! -
gdodi
csendes tag
válasz
m.zmrzlina #25201 üzenetére
Köszönöm a segítséget, kipróbálom!
Egy hivatkozott cellából veszek egy számlált változót. -
Delila_1
veterán
válasz
m.zmrzlina #24651 üzenetére
A munkamappa változó az aktuális könyvtár nevét tartalmazza a lenti első sor után. Megjeleníti a fastruktúrát az aktuális mappából indulva, onnan navigálhatsz máshova.
Set munkamappa = Application.FileDialog(msoFileDialogFolderPicker)
With munkamappa
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
strMunkamappa = .SelectedItems(1)
End WithA következő sorokban a kiválasztott mappa neve az strMunkamappa változóba kerül, erre a mappára váltasz át a mappa kiválasztását követő ChDir strMunkamappa sorral. Innen nyitod meg sorban az xls kiterjesztésű fájlokat.
Az msoFileDialogFolderPicker, mint a neve is mutatja, egy párbeszéd ablak, ahol kedvedre navigálhatsz.
-
Delila_1
veterán
válasz
m.zmrzlina #24647 üzenetére
A munkamappát szövegként szoktam megadni. Utvonal="C:\mm\nn\"
Mikor a TC-ben látsz egy mappát, a dupla pontra kattintva a fölötte lévő mappába jutsz, az egy pont 8az nem látszik, de van), a főkönyvtárba visz.
Az FN egy változó, a fájlnevet olvassa be a megnyitott mappából.
A false letiltja az aktív fájl mentését. Ezt akkor alkalmazzuk, mikor egy mappából rendre behívjuk az ott lévő fájlokat, adatokat nyerünk ki belőlük, majd mentés nélkül bezárjuk őket.
-
retesz147
addikt
válasz
m.zmrzlina #24643 üzenetére
Köszi! Működik!
-
retesz147
addikt
válasz
m.zmrzlina #24640 üzenetére
Köszi, de nem tölti fel nullával, hanem value-val...
-
#75376384
törölt tag
válasz
m.zmrzlina #24630 üzenetére
sajnos nem segített. cirka 4000 sornyi szövegem van és onnan kell kiemelni. így átnyálazva örökkévalóság lenne és a hibázás lehetősége is ott van. :/
-
#75376384
törölt tag
válasz
m.zmrzlina #24628 üzenetére
én nem tudom mi van velem, hogy nem tudok gépelni.
egyébként ennyire nem misztifikáltam túl a dolgot.
olyan makikat kerestem, akik egy filmet háromszor is kivettek. mivel a "névsort" az én értelmezésemben a kölcsönzés ideje definiálja, így aszerint adnék választ is, de nem találtam rá megfelelő szűrőt.
-
#75376384
törölt tag
válasz
m.zmrzlina #24626 üzenetére
ha úgy nézzük növekvő. vagyis a legelső időpont a legrégebbi kivétel.
-
daniatx
csendes tag
válasz
m.zmrzlina #24613 üzenetére
Az első részével kissé komplikált módon meg vagyok, 6 órás munka volt. Teljesen új téma nekünk a makrókészítés. A diagram készítőssel viszont sehogy sem jutok előbbre. Egyébként holnap van a határidő
-
Fferi50
Topikgazda
válasz
m.zmrzlina #24556 üzenetére
Szia!
Talán két dolgot lehet tenni.
1. Ha megnyitod az adott fájlt (munkafüzetet), akkor a workbook.path tulajdonság csak az elérési útvonalat adja meg.
2.Érdemes megnézni szerintem a filesystemobject objektumot.Üdv.
-
Jarod1
veterán
válasz
m.zmrzlina #24542 üzenetére
Köszi!
-
tombar
senior tag
válasz
m.zmrzlina #24490 üzenetére
köszönöm szépen
-
Fferi50
Topikgazda
válasz
m.zmrzlina #24490 üzenetére
Szia!
Akkor már miért nem így:
Range("A1:G1").Copy destination:=Worksheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1)
Nem kell hozzá utána semmi.
Üdv
-
Fferi50
Topikgazda
válasz
m.zmrzlina #24485 üzenetére
Bocs, közben megláttam a privát üzit.
-
Fferi50
Topikgazda
válasz
m.zmrzlina #24482 üzenetére
Szia!
Csak még egy kérdés: Akkor is belassul, ha a másik munkafüzet üres, vagy csak akkor, ha adatok vannak abban is?
Esetleg egy "közzétehető" mintát meg lehetne nézni (nyilván az érzékeny adatok nélkül)? Mert akkor talán tudunk válaszolni.
Meg lehet még próbálkozni az eseménykezelés letiltásával - az is tud problémát okozni, ha minden egyes cella változásánál "elszalad" az eseménykezelésbe, még akkor is, ha egyébként ott nem kell neki semmit csinálni.
Elébe egy Application.Enableevents=false, utána egy Application.Enableevents=true.
Nem tudom, a képernyőfrissítést ki szoktad-e kapcsolni. (Application.ScreenUpdating)Üdv.
-
Fferi50
Topikgazda
válasz
m.zmrzlina #24477 üzenetére
Szia!
Az előző hozzászólásomban (24479) írtam: " Ebben az esetben bontsd részekre a műveletet", természetesen nem a műveletet kell részekre bontani, hanem a tartományt kell kisebb "adagokban" számítani.
Másrészt, ha csak a végén van # jel, akkor a
selection.replace what:="#",replacement:=""
parancs megoldja az eltüntetését.Üdv.
-
Fferi50
Topikgazda
válasz
m.zmrzlina #24477 üzenetére
Szia!
Esetleg próbáld ki a következőt:
a=selection.value
for xx=1 to ubound(a,1)
for yy=1 to ubound(a,2)
if a(xx,yy)<>"" then a(xx,yy)=left(a(xx,yy),len(a(xx,yy))-1)
next
next
selection.value=a1.Ha biztosan nincs üres cella, akkor az if feltételt kihagyhatod.
2.A selection helyett inkább használj konkrét tartomány címet - ez működik akkor is, ha az adott munkalap nem aktív.
Sheets("Munka1").range("A1:B20").value
3.Ez csak akkor működik, ha a tartományod összefüggő.Azért lehet gyorsabb, mert itt a memóriában vannak az adatok, az "a" tömbben.
Elképzelhető, hogy out of memory hibát kapsz, de talán 35000 sornál még nem (persze attól is függ, hány oszlopod van). Ebben az esetben bontsd részekre a műveletet, még úgy is gyorsabbnak kell lennie.Üdv.
-
excelfan
újonc
válasz
m.zmrzlina #24453 üzenetére
Nem pont fkeresel megírva, de a lényeget azt hiszem ki tudod venni, tégy vele egy próbát:
=SZUM('D:\2-es.xlsx'!szamok)
Persze az elérési útvonalat, hivatkozást jobb ha nem kézzel gépeled, hanem Wyll által írt módon a hivatkozott munkalap is meg van nyitva képlet szerkesztéskor, és ott jelölöd ki a hivatkozott részeket.... -
slashing
senior tag
válasz
m.zmrzlina #24472 üzenetére
Nálam ez most megoldotta szerencsére, az elején kikapcsolom az adatok újrakalkulálását majd a végén vissza.
Az a makró ami 0,8 másodperc alatt futott le alapállapotban az a másik fájl megnyitása után 32 másodpercig futott
miután beraktam a kalkuláció kikapcsolást kicsit lassult csak 0,97-1 másodpercre. Tekintve azt hogy annak a fájlnak muszáj nyitva lennie így most roppant boldog vagyok mert 10-esével(10 külön fájl) kell beimportálni az adatokat ami azt eredményezte volna hogy a 10 másodperc helyett több mint 5 percig dolgozott volna
továbbá a mai példából kiindulva ezt meg kellett csinálnom ma vagy 15ször így lett volna vagy másfél óra malmozás
amúgy én is tuti valamit elcsesztem itt már.... ez kvázi az első makrós projectem amihez lassan nekem is folyamatábra kell hogy átlássam
-
Delila_1
veterán
válasz
m.zmrzlina #24458 üzenetére
Törléssel?
-
Delila_1
veterán
válasz
m.zmrzlina #24455 üzenetére
Szerintem töröld a nevet, és újra vidd be.
-
Wyll
őstag
válasz
m.zmrzlina #24455 üzenetére
Akkor sorry, nem találkoztam még ilyennel, hogy miért tiltódik le a névkezelés...
-
Wyll
őstag
válasz
m.zmrzlina #24453 üzenetére
Az elnevezett tartományokkal nagyon vigyázz, amennyiben nem kizárólag abszolút ($-os) hivatkozás(oka)t tartalmaznak!
Amúgy semmi különbség nincs ahhoz képest, mint ahogy a saját munkalapon csinálnád:
írod szépen a képletet, majd amikor kell a másik munkafüzet, átkattintasz rá, F3, kijelölöd a nevet, enter, majd visszakattintasz a függvényedhez, és írod szépen tovább.Szintaktikailag ugyanúgy kell írni, mintha egy cellahivatkozás lenne, nem kell idézőjel meg semmi, a másik file neve persze itt is szögletes zárólejben van, ahogy mindig.
Amúgy meg google. -
Kojaszan
újonc
válasz
m.zmrzlina #24451 üzenetére
Okés, köszi, megnézem!
Legyen szép napod -
Kojaszan
újonc
válasz
m.zmrzlina #24449 üzenetére
Na igen, de mire jó ez?
Mármint mihez lehet használni?
Bocsi, nem vagyok épp egy nagy guru, viszont kíváncsi annál inkább
-
gyu84
tag
válasz
m.zmrzlina #24326 üzenetére
@ (#24325) Delila_1
@ (#24326) m.zmrzlinaKöszönöm szépen mindkettőtöknek, működött!
-
soundsthu
csendes tag
válasz
m.zmrzlina #24322 üzenetére
Egy adott hónap munkalapjait szeretném kinyomtatni, egyetlen kattintással, úgy hogy minden lapon más dátum szerepeljen. (Valamikor utólag kell kinyomtatni, valamikor pedig előre a munkalapokat az aktuális dátumhoz képest.)
-
Bunken
tag
válasz
m.zmrzlina #24317 üzenetére
Jó volt az első megoldás is. Mindkettővel ugyan azok az eredmények jöttek ki.
-
Bunken
tag
válasz
m.zmrzlina #24317 üzenetére
Akkor majd újra fogom csinálni.
Az egyik oszloppal megnézem ha nem stimmel az első eredményekkel akkor újracsinálom az egészet.
Köszi, hogy szóltál. -
Bunken
tag
válasz
m.zmrzlina #24314 üzenetére
Sikerült megoldani a dolgot!
Minden oszlopot kijelöltem és a cellabeállításoknal beállítottam, hogy Szám és úgy már minden jó volt.Ezer köszi a segítségért!
-
Bunken
tag
válasz
m.zmrzlina #24314 üzenetére
A darabteli nem működik jól. De majd megpróbálom amit írtál.
-
Bunken
tag
válasz
m.zmrzlina #24312 üzenetére
5 oszlopom van ebből 3-nál tökéletesen működött a darabteli képlet is meg a szűrés is de a másik két oszloppal nem akarja az igazságot.
Azért köszi szépen ez is nagy segítség volt.
A másik két oszlopot meg majd holnap átnyálazom manuálisan. -
Bunken
tag
válasz
m.zmrzlina #24310 üzenetére
Köszi a választ!
Megpróbáltam de nem igazán jött be. 2013 Professional Plus-t használok (ha ez jelent valamit)
Bemásoltam a képletet a B1-be és végig lehúztam, de már két egyforma szám mellett más számot hozott ki. Ennek ellenére elkezdtem a szűrést de nem minden olyan mint ahogy leírtad.
Ahogy rámentem az Egyéni szűrőre ez a kis ablak jött be:Egyedi rekordot nem is láttam sehol, meg Listatartományt, Szűrőtartományt sem.
-
hülyegyerek
addikt
válasz
m.zmrzlina #24307 üzenetére
Jelszavas, úgyhogy sajnos nem nyitja meg. VBA Project a neve.
-
hülyegyerek
addikt
válasz
m.zmrzlina #24305 üzenetére
Nagyon láma leszek, de azt hogy kell ?
-
LordVader80
őstag
válasz
m.zmrzlina #24265 üzenetére
Rosszul fogalmaztam, pont a cellaértékre kell, hogy figyeljen, ami változhat. A számok pedig nem soronként növekednek, hanem pl:
1
1
1
2
3
3
4
4
és így tovább. A számok képletekkel jönnek. Az 1-3 számokhoz szeretnék egy színt rendelni, a 4-7-ig egy másikat, és így tovább egészen 197-200-ig. Csak lusta vagyok ennyi feltételes formázást bevinni, meg nem is tudom, 50-et lehet-e egy cellára. -
ritterkrisz
tag
válasz
m.zmrzlina #24243 üzenetére
Annyi probléma merült még fel, hogy ezt a szöveget egybe fűzi. Nem lehet beállítani, hogy az összefűzött cellák között maradjon szóköz?
-
lacy86
addikt
válasz
m.zmrzlina #24232 üzenetére
Bazz ....
Koszonom szepen!
-
tgumis
tag
válasz
m.zmrzlina #24224 üzenetére
Hálás köszönet èrte. Majd ha asztali gép közelébe jutok lepróbálom. Mégegyszer köszi.
-
m.zmrzlina
senior tag
válasz
m.zmrzlina #24225 üzenetére
Úgy látszik már késő van (vagy már korán)
Set eredmeny = ThisWorkbook.Worksheets("eredmeny")
eredmeny.Range("A1:D" & j).Value = Application.Transpose(tomb)Helyesen:
Vagy minden eredmeny-t átírsz a munkalapod nevére vagy csak az idézőjelben lévőt.
Vagy csinálsz egy eredmeny nevű munkalapot és hagyod az egész makrót a fenébe úgy ahogy van. -
m.zmrzlina
senior tag
válasz
m.zmrzlina #24224 üzenetére
Na szóval:
Itt is kijavítod az "eredmeny"-t a munkalap nevére és ha nem az A:D tartományba akarod kiiratni az eredményt azt is megváltoztathatod (lényeg, hogy 4 oszlopnyi tartományt adj meg)
eredmeny.Range("A1:D" & j).Value = Application.Transpose(tomb) -
tgumis
tag
válasz
m.zmrzlina #24040 üzenetére
müxik csak az utcsó munkalap nem volt kikódolva így amiatt megállt.
KÖSZI KÖSZI KÖSZI
egy délutánnyi időt spóroltál meg nekem. -
tgumis
tag
válasz
m.zmrzlina #24038 üzenetére
szia kösz a kikódolás az működik viszont a lekódolás valamiért nem.
Van valakinek ötlet.
valószínű az active sheet az ami bezavart tegnap -
tgumis
tag
válasz
m.zmrzlina #24035 üzenetére
sajna nem megy:S
-
tgumis
tag
válasz
m.zmrzlina #23926 üzenetére
.
-
PETEE78
senior tag
válasz
m.zmrzlina #23992 üzenetére
tehát pl az 5.sorban található értékek már szerepeltek így egymás után előtte, akkor jelölje x-el az 5.sor végén valahol
-
PETEE78
senior tag
válasz
m.zmrzlina #23992 üzenetére
Igen csak,ha minden kívánt oszlopban van egyezés, akkor rakjon x-et az ismétlődő sor végére, de csak az ismétlődő sor végére kell a jelölés, ahol először megjelent az adathalmaz oda nem kell
-
tgumis
tag
válasz
m.zmrzlina #23926 üzenetére
Ha csak ötlet is de köszönöm. Ès mindenkinek minden segítsègèt köszönöm. Sokat tanultam màr itt tőletek.
Külön köszi Delila -
tgumis
tag
válasz
m.zmrzlina #23920 üzenetére
Kösz ezt olvastam már de közben müxik csak az alején kell emgedélyezni a tratalmat.
Ismét egy kérdés:
Van valaki aki tud egy olyan makrót ami megoldja a problémám.
Van 12 munkafüzetem
mindegyik munkafüzet 64 munkalapból ál.
Én hülye védetté tettem a munkalapokat és elfelejtettem az évszámot úgy megoldani hogy hivatkozzon.
Szóval az első munkalap G7 cellájának értékét kellene behivatkozni mind a 63 munkalap H4 cellájába.
Természetesen védett munkalapok szóval a kikódolásnak is szerepelni kellene a makróban.
légyszí segítsetek -
Fooler89
őstag
válasz
m.zmrzlina #23919 üzenetére
Köszönöm szépen.
-
tgumis
tag
válasz
m.zmrzlina #23912 üzenetére
nem tudok
az egész munkafüzeteMás
lehet olyat excelben is mint a worldben hogy az első oldal álló a második fekvő és az x edik megint álló a nyomtatáskor. -
slashing
senior tag
válasz
m.zmrzlina #23907 üzenetére
A visszafele számolás nem használható sajnos az A1-től számolás az megoldható igaz fordítva terveztem hogy előbb bejönnek az adatok aztán töltöm fel a maradékot de ezt megfordíthatom.
Köszi!
szerk.:
CurrentRegion tuti kiesik olyan b...i nagy és helyenkéntfoghíjashogy tuti rosszul fogja számolni -
m.zmrzlina
senior tag
válasz
m.zmrzlina #23907 üzenetére
Esetleg használd a következőt:
hanyoszlop=Range("A1").CurrentRegion.Columns.Count
Ezzel változóba tudod írni a használt tartomány oszlopainak számát, amit már kedved szerint használhatsz.
-
Dr. Romano
veterán
válasz
m.zmrzlina #23893 üzenetére
Igaz... már kicsit elvesztem, két órája ezt nézem, már fáj a fejem.
Új hozzászólás Aktív témák
Hirdetés
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Sea of Thieves Premium Edition és Egyéb Játékkulcsok.
- Eladó steam/ubisoft/EA/stb. kulcsok Bank/Revolut/Wise (EUR, USD, crypto OK)
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Xiaomi 11T Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Honor Magic6 Lite, Honor Magic6 Pro, Honor Magic7 Lite, Honor Magic7 Pro
- Huawei Nova Y90 128GB, Kártyafüggetlen, 1 Év Garanciával
- Jogtiszta Microsoft Windows / Office / Stb.
- BESZÁMÍTÁS! Lenovo ThinkPad T14 Gen 4 üzleti notebook - i7 1360P 24GB DDR5 RAM 512GB SSD Iris Xe W11
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest