- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- GoodSpeed: ASUS ROG STRIX B650E-F GAMING WIFI - Memory Context Restory (MCR)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- sziku69: Fűzzük össze a szavakat :)
-
GAMEPOD.hu
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
-
eszgé100
őstag
válasz Fferi50 #44543 üzenetére
vegyesen vannak excel és word fájlok is, nagy része excel fájl (kb. 60) és 4-5 word dokumentum összesen.
Ahogy láthatod, a sok guglizás olyan kódot eredményez, mintha Gyűrűk urát fordítanék Google Translate-tel.A fenti példa azt mutatja, hogy Excelben lenyomok egy Buttont, ami a háttérben megnyitja a Word alkalmazást, abban egy Word dokumentumot, és lefuttatja a benne levő makrókat, majd az Excel 1 másodperc várakozás után bezárja a Wordot alkamazást, nem ment semmit, végén Excel nyitvamarad.
kipróbáltam, nem kell a CreateObject("Excel.Application") simán Application.Wait elég a várakozáshoz.
"Én egy alap Excelt használnék"
Magyarul ha jól értelmezem, akkor kell csinálni egyetlen .xlsm fájlt, benne Print(xy.xls) makrókat, a változó fájlnevekkel, nyomtatási területekkel és oldalbeállításokkal beállításokkal? Elvileg csak a makrók futtatásához kell megnyitni a fájlokat, ha azokban vannak elmentve, nyomtatáshoz nem, így megsprórolom a fájlok külön megnyitogatását is, ugye?
"-Meddig tart a játék? -Amíg mindenkinek ki nem verik a fogát..."
-
Rayner
őstag
Sziasztok!
Olyan kérdésem lenne, hogy adott A oszlopban 10000 érték (1 szám 1 cella)
van mondjuk C oszlopban 200 cikkszám amik szerepelnek "A" oszlopban.
Szeretném "kiszedni" A oszlopból a 200 cikkszámot. Vagy leszűrni megjelölni.Erre tud nekem adni valaki megoldást?
Üdv,
-
Fferi50
őstag
válasz jackal79 #44553 üzenetére
Szia!
Ne az aktuális kijelölést, hanem a munkalapot válaszd ki.
A szabály szerkesztésében pedig az A1 írd át G24-re, mindkét szabályban. Elképzelhető, hogy esetleg ezt 2x kell megcsinálnod, hogy rendben legyen, mivel nem abszolut címzés van a képletben, ha más sort látsz, nyugodtan szerkeszd ismételten.
Ezt kell látnod az eredményben:
Azért szerintem nem kellene a teljes sorokat kijelölni, mert az egyrészt indokolatlanul megnöveli a fájl méretét, másrészt nem hiszem, hogy 16ezer+ napot szeretnél látni.
Próbáld az indokolt nagyságú területet kijelölni az érvényességben.
Üdv. -
Fferi50
őstag
válasz eszgé100 #44552 üzenetére
Szia!
A CreateObject egy új Excel példány hoz létre, ami teljesen szükségtelen.
"így megsprórolom a fájlok külön megnyitogatását is, ugye?"
Ezt nem gondolnám, mert hogyan tudná akkor beállítani a megfelelő értékeket a nyomtatáshoz? Kívülről ez nem megy.
Viszont nem kell minden fájlba beírni a makrókat, elég a "főfájlba betenni", ott pedig a makróban a beállításokat igazíthatod az éppen nyomtatni kívánt dokumentumhoz pl. a neve alapján. Tehát ez az egy makró szépen megnyitogatja amit kell, beállítja amit kell és kinyomtatja ahogyan kell. Azt is meg lehet vizsgálni, hogy melyik területen nyitották meg és ahhoz igazítani a nyomtatandó/nyomtatható fájlok listáját.
Üdv. -
MT90
csendes tag
Üdv!
Segítséget szeretnék kérni! 2016-os Excelt használok.
Úgy lett "megbeszélve", hogy a jelenléti ív Excel fájlban legyen.
A munkafüzet első munkalapján van maga a jelenléti és még ugyanabban a fájlban a második munkalapon vannak az emberek névsora, legyenek mondjuk 1000-en.
Hogy lehet a személynévhez úgy beilleszteni ezt az 1000 fős listát, hogy meglegyen az 1000 oldal, mondjuk egymás alatt és egy kattintással ki lehessen mindenkiét nyomtatni?
Az egyszerűsítés miatt nem kézzel kellene beírni a neveket, nem is begépelni egyesével, se szűrővel kattintgatni (vagy ilyesmi).
Köszönöm a segítséget.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Ezt úgy kell érteni, hogy az első munkalapon van 1000 név és havonta külön fájlban mindenki abban írja a jelenlétit 28-30-31 oszlopban?
Miért kell külön-külön személyenként kinyomtatni? Papíralapon fogják kitölteni? 1000 lapot nyomtatni?
" nem kézzel kellene beírni a neveket, nem is begépelni egyesével, se szűrővel kattintgatni (vagy ilyesmi)."
Akkor valaki odavarázsolja azokat? Mert az Excel nem gondolatolvasó.
Üdv.[ Szerkesztve ]
-
peacefroggg
friss újonc
válasz Fferi50 #44548 üzenetére
Szia!
Most, hogy már működik, úgy szeretném továbbfejleszteni a dolgot, hogy ha a usernek másik azonosítója van, akkor az alapján is tudjon keresni.
Az eddigi képlet:=INDEX(Database!$A$2:$K$3884,MATCH($D$7,Database!$C$2:$C$3884,0),4)
Itt ugye a D7 mezőbe kellett írni az azonosítót, de ha valakinek másik van, akkor a D10-be kell beírnia a számot, ami a Database fül B oszlopában fog keresni. A képlet megvan:
=INDEX(Database!$A$2:$K$3884,MATCH($D$10,Database!$B$2:$B$3884,0),4)Az kellene nekem, hogy a user használhassa kedve szerint a D7 vagy D10 mezőket, de az eredmény ettől függetlenül ugyanabban mezőben jelenjen meg. Gondolom a két képletet egy cellába kéne hozni, csak nem tudom hogyan.
Ebben tudnál segíteni?
Köszönöm! -
Fferi50
őstag
válasz peacefroggg #44560 üzenetére
Szia!
Tételezzük fel, hogy nincs csak régi azonosítója, ekkor a D7 cella maradjon üres.
Ebben az esetben a D7 cellát vizsgáljuk:=HA(D7="";D9-es keresés;D7-es keresés)
(nem írom végig a képletet...)
Kicsit a hibázásra is gondolva:=HA(D7="";HA(D9="";"NINCS AZONOSÍTÓ";D9-es keresés);D7-es keresés)
Üdv.
-
sedyke
tag
Sziasztok!
Van egy excel fájlom, amiben sok-sok termék költésgszámítás szerepel az elmúlt évekből különböző munkafüzetekben termékcsoportonként.
Pár évvel ezelőtt szerettem volna egy oldalt, ahol a termékkód és a végső ár listázva van. Anno ehhez itt kaptam segítséget macro formájában.
Sajnos észrevettem, hogy már nem minden termék kerül felsorolásra. Tudnátok tanácsot adni, hogy mi lehet a gond? Én magam nem tudok macrokat írni, csak futtatni.Sub termeklistas()
Dim sh As Worksheet, ws As Worksheet, xx As Integer, yy As Integer
Set ws = Sheets("AUTODATA")
yy = 1
For Each sh In Worksheets
xx = 1
If sh.Name <> ws.Name Then
Do While True
If sh.Cells(xx, "B").Value = "" Then Exit Do
ws.Cells(yy, "N").Value = sh.Cells(xx, "B").Value
ws.Cells(yy, "O").Value = sh.Name & "!"
ws.Cells(yy, "P").Value = xx - 1
xx = xx + 51
yy = yy + 1
Loop
End If
Next
End SubLényegében az 'N' oszlopban vannak felsorolva a termékkódok, 'O' oszlopban a munkafüzet neve és 'P' oszlopban a termékkód sorszámát kellene mutatnia (-1 mert a egy másik oszlopban képlettel kikeresem az árát).
Lehetséges, hogy már túl sok munkafüzet vagy adat szerepel a fájban?
Előre is nagyon köszönöm a segítséget! Szép napot kívánok! -
Fferi50
őstag
válasz D@reeo #44564 üzenetére
Szia!
Alapvetően az a probléma, hogy az Excel a dátumokat másként kezeli, mint ahogyan mi gondolnánk. Pl. 2020.06 lehet akár szöveg is - ami dátumnak néz ki, de lehet hogy a cellában dátum van, csak éppen éééé.hh a beállított formátum. A dátumot pedig számként használja az Excel és nem lehet szöveggel hasonlítani. Az Összefűz eredménye pedig szöveg.
A dátum voltát ellenőrizheted, ha a cella formátumát számra vagy általánosra állítod. Ha semmi nem változik, akkor szöveg van benne, egyébként számot fogsz kapni.
Ebben az esetben az összefűzés helyett dátumfüggvénnyel dátummá kell alakítani a feltételed is, hogy olyan legyen mint a dátum oszlopban levő érték.
Üdv. -
bucihost
senior tag
Sziasztok!
Találtam egy kódot, amit ökéletesen működik. Viszont, néha az oldal "hibát dob" ahonnan a képeket kérném le mert gondolom egyszerre sok a lekérdezést.
Hogyan lehetne késlelteni a lekérdezért, hogy 1-1- kép között várjon mondjuk 2-3 másodpercet?
Sub URLPictureInsert()
Dim Pshp As Shape
Dim xRg As Range
Dim xCol As Long
On Error Resume Next
Application.ScreenUpdating = False
Set rng = ActiveSheet.Range("C2:C90")
For Each cell In rng
filenam = cell
ActiveSheet.Pictures.Insert(filenam).Select
Set Pshp = Selection.ShapeRange.Item(1)
If Pshp Is Nothing Then GoTo lab
xCol = cell.Column + 1
Set xRg = Cells(cell.Row, xCol)
With Pshp
.LockAspectRatio = msoFalse
If .Width > xRg.Width Then .Width = xRg.Width * 2 / 3
If .Height > xRg.Height Then .Height = xRg.Height * 2 / 3
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
End With
lab:
Set Pshp = Nothing
Range("A2").Select
Next
Application.ScreenUpdating = True
End Sub[ Szerkesztve ]
-
marec1122
senior tag
Sziasztok!
Van egy táblázatom, aminek az írása le van jelszavazva. Olvasásra meg lehet nyitni. Valaki esetleg meg tudja mondni, hogy a jelszó birtokában hogyan lehet törölni végleg a jelszót? Tehát indításkor ne kérjen semmit egyből lehessen szerkeszteni. Előre is köszi
Csak megfontoltan :D "Öregember nem gyorsvonat!" John McClane
-
eszgé100
őstag
válasz bucihost #44571 üzenetére
esetleg a lekereseket betehetned egy ciklusba, ahol minden ciklus vegen var 2-3 masodpercet, mieleott elinditja a kovetkezot. Aztan finomhangolhatod is, hogy pl ne minden lekeres kozott varjon, hanem mondjuk minden 5.-nel
"-Meddig tart a játék? -Amíg mindenkinek ki nem verik a fogát..."
-
zsolti_20
senior tag
Szép napot emberek! Úgy érzem a következő feladatokhoz már kevés vagyok, mert a VBA tudásom nem elég hozzá. 3 problémával állok szemben remélhetőleg van valaki aki tud ezekben segíteni, mert sajnos én itt elakadtam.
1. Van két excel fájlom, szeretném az egyikből átemelni az információkat a másikba, aztán ha még törlődne a fájl az lenne a legjobb. Pl A1:A10 cellák másolása sheet2 lapról a másik excel file sheet4 lapjára a B2 : B11 cellába.
2.Sheet1 oldalon van 4 oszlopban es kb 2-3 ezer sorban információ. Szeretném törölni azokat a sorokat amik tartalmazzák a sheet2 A1 cellától lefelé található információkat. Itt akár lehet 30 sornyi adat is.
3. Szeretnék .txt fájlt importálni excel fileba. A .txt fileban vesszővel (,) vannak elválasztva az adatok.
1 sor 4 oszlopból áll.
Itt lehetséges olyat, hogy ha az adott sor már letzik akkor ne emelje át?
Illetve a másolás végén törlődjön a file.
Tudom elég sok minden, valószínűleg több adatra is lesz szükség ezekkel kapcsolatban, de azokat bármikor tudom pótolni ha kellene még. Aki tud ezekben segíteni szivesen meghálálnám egy kis sör vagy kávé pénzzel. Ki, mit szeret. -
eszgé100
őstag
válasz zsolti_20 #44578 üzenetére
Szia, csak az elsőre van ötletem, mert épp most csinálok hasonlót
Public Sub CopyThenDelete()
Workbooks.Open "Z:\Excel\egyik.xlsm"
Workbooks("egyik.xlsm").Worksheets("Sheet2").Range("A1:A10").copy Workbooks("másik.xlsm").Worksheets("Sheet4").Range("B2")
Workbooks("egyik.xlsm").Close SaveChanges:=False
Kill "Z:\Excel\egyik.xlsm"
End Sub
a makrót a másik.xlsm-ből kell indítani. Workbooks.open... sor nem kell, ha már alapból is nyitva van az egyik.xlsm munkafüzet.
Kill-el vigyázz, mert véglegesen töröl, nem a lomtárba. Biztonság kedvéért csinálj biztonsági mentéseket az érintett fájlokról[ Szerkesztve ]
"-Meddig tart a játék? -Amíg mindenkinek ki nem verik a fogát..."
-
Delila_1
Topikgazda
válasz zsolti_20 #44578 üzenetére
Nem volt pontos a leírás a 2. feladatnál. Ha az első lapról azokat a sorokat kell törölnöd, ahol az A oszlop értéke megtalálható a második lap A oszlopában, akkor a lenti makró megoldja.
Sub KettesFeladat()
Dim sor As Long, usor As Long
usor = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
For sor = usor To 1 Step -1
If Application.WorksheetFunction.CountIf(Sheets("Sheet2").Columns(1), Sheets("Sheet1").Cells(sor, 1)) > 0 Then
Sheets("Sheet1").Rows(sor).Delete
End If
Next
End Sub[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Telda
addikt
Sziasztok!
Van nekem egy SAP Excel makróm. A .vbs fájlt az SAP-ból inditom.
Elvileg ezek a sorok határozzák meg hogy honnan vegye az adatokat.Dim objExcel
Dim objSheet, intRow, i
Set objExcel = GetObject(,"Excel.Application")
Set objSheet = objExcel.ActiveWorkbook.ActiveSheet
Így mindig az aktív Excel táblát nézi.
Nem értek hozzá, de nem lehetne neki valami konkrét fájl nevet, vagy elérési utat megadni? -
Fferi50
őstag
Szia!
ASet objSheet = objExcel.ActiveWorkbook.ActiveSheet
sor helyettSet objSheet = objExcel.Workbooks.Open("fájl neve elérési úttal").Sheets("munkalap neve")
ha nincs megnyitva a fájl, ha meg van nyitva, akkorSet objSheet = objExcel.Workbooks("fájlneve").Sheets("munkalap neve")
Természetesen a nevek lehetnek szöveg típusú változók is.
Üdv. -
Heavyrain
őstag
Sziasztok,
Lehet egyszerűen megválaszolható a kérdésem, lehet összetett de mindenesetre előre is köszönöm a segítséget!
Szituáció:Nagyon leegyszerűsítve, van két munkalap. Munka1 és Munka2. Táblázatok vannak mindkettőn.
Munka2: Külső forrásból ide jönnek az adatok. Néha ~10000 sor, néha ~5000, folyamatosan változik.
Munka1: Munka1 A oszlopában kéne megjelennie a Munka2 A oszlopának.
Probléma:
Ha Ctrl+Enter-el hivatkozok Munka1 A oszlopában a Munka2 A teljes oszlopára akkor persze az 5-10ezer adatot tartalmazó cella megjelenik de alatta megpróbálja képlettel kitölteni az A oszlop összes celláját amitől összeomlás közeli állapotba kerül az excel fájl a leterheltség miatt. A valóságban van sok munkalap és lefagyna az egész.Lehetséges megoldás: Ha a Munka2 A oszlopában 5872 cella van akkor csak 5872 cellát szeretnék átmásolni és nem szeretném, hogy megvizsgálja és képlettel kitöltse a teljes oszlopot. Ugyanakkor ha az 5872 megváltozik 9000-re akkor meg pontosan annyit másoljon át. Természetesen képlettel szeretném megoldani nem manuálisan. Van erre valami trükk?
-
-
Telda
addikt
Sziasztok!
A munkahelyi gépen a 2013-as Office le lett cserélve 365-re. Az lenne a gondom, hogy van egy régi .xla bővítményem, amit hiába adok hozzá a bővítményekhez nem jelenik meg a menüben.
Valami kompatibilitási gond lehet? Találkozott már valaki ilyennel? -
#PeTeY#
tag
Sziasztok!
Sajnos egyáltalán nem értek az excel-hez, és most van előttem egy táblázat, amit az egyik oszlop szerint sorba kellene rendeznem. Az oszlopban XZszám formátumban vannak értékek, azaz XY1, XY2, XY101, stb. Ha most sorba teszem, akkor ugye XY1, XY101, XY2 a sorrend. Szeretném kiegészíteni az értékeket, hogy a fix XY után négy jegyűek legyenek a számok, és a hiányzó részeket feltöltse nullával: XY0001, XY0002, XY0101...
Hogyan tudom ezt megcsinálni? Előre is nagyon köszönöm. -
Fferi50
őstag
válasz #PeTeY# #44587 üzenetére
Szia!
Egy segédoszlop első cellájába tedd bele ezt a képletet:=BAL(A1;2) & JOBB("0000" & JOBB(A1;HOSSZ(A1)-2);4)
A1 helyébe tedd azt a cellát, amelyben az oszlopod kezdődik és vele egy sorban legyen a képlet.
Ezután a képletet végighúzod az oszlopon lefelé, ameddig adataid vannak.
A segédoszlop adatokat tartalmazó celláit kijelölöd - másolás - majd ugyanide irányított beillesztés értéket.
Ezután a segédoszlop adatait átmásolhatod az eredeti oszlopodba. A segédoszlop törölhető.Üdv.
[ Szerkesztve ]
-
Morphy
csendes tag
Sziasztok!
Segítségre volna szükségem:
Van egy napi szinten használt file.
Egy ügyfél adatbázisban végez szűréseket. Egy gombot megnyomva leszüri azokat a sorokat amik az idei évre vonatkoznak, illetve üressek az adott oszlopban. Az egyik napról a másikra kiállt Run-time Error '1004'-re Rage osztály AutoFilter metódusa hibás problémával.ActiveSheet.ListObjects("adatbazis").Range.AutoFilter Field:=3, Criteria1:= _
Array("="), Operator:=xlFilterValues, Criteria2:=Array(0, "01/01/2020")Megnéztem a itt a fórumon, hogy volt-e hasonló eset és be is kapcsoltam a bővítményeknél az Analisys-el kezdődőket, de sajnos nem változott. Youtube-on is néztem megoldásokat, de azok alapján a fenti sorokben sem lehet probléma.
Mi az amin változtatnom kellene?
Előre is köszönöm segítségeteket!
-
Delila_1
Topikgazda
válasz Morphy #44590 üzenetére
Próbáld így
ActiveSheet.ListObjects("adatbazis").Range.AutoFilter Field:=3, Criteria1:= _
Array("="), Operator:=xlFilterValues, Criteria2:=Array(0, "12/31/2020")Esetleg a saját dátumformáddal.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
Morphy
csendes tag
válasz Fferi50 #44595 üzenetére
Igen, megnéztem a formátum is egyezik.
Csak azt nem értem még mindig, hogy a felvett makrót sem futtatja le, ugyanerre kiáll.
Illetve ha a reset gombot (ami megjeleíti a rejtett cellákat is) nyomok, szintén kiáll bizonyos esetekben ugyanerre a hibára.
ActiveSheet.ShowAllData
[ Szerkesztve ]
-
Fferi50
őstag
válasz Morphy #44596 üzenetére
Szia!
Sajnos a dátumok kezelése ezen a területen borzasztó az Excelben. Esetleg egy részletet, mondjuk csak addig az oszlopig, amiben a dátum van, fel tudnád tenni valahová. Természetesen az érzékeny adatok nélkül és elég lenne kb. 50 sor is.
Tennék még egy próbát a helyedben: Átmásolnám az adatokat és megnézném, hogy az új helyen mi történik.
Nekem ezzel a formával, amit mutattam, működik.
Üdv.[ Szerkesztve ]
-
Delila_1
Topikgazda
válasz Morphy #44598 üzenetére
Ahogy FFeri is írta, elég gyalázatos az Excel dátum-kezelése.
Próbáld meg, hogy szélesre veszed az oszlopot, akkor a dátumok jobbra igazítva jelennek meg, az esetleges szövegként megadottak balra.Összeállítottam egy ilyen vegyes (A) oszlopot, majd egy (B) segédoszlopban felszoroztam 1-gyel minden tagját. Érdekes módon a szövegeseket is számmá alakította a szorzás, és a B oszlop dátumkénti formázása valódi dátumot csinált mindegyikből. A szűrés is megfelelően működött.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
spe88
senior tag
Sziasztok!
Anno átvettem egy Google Sheet template-et, amit már olyan szinten áthekkeltem, hogy köze nincs az eredetihez, viszont pár dolgot nem engedélyez a tábla: rejtélyes módon, ha egy fv.-t módosítani akarok, akkor felugrik egy pop up ablak, ami biztos, hogy makróból jön, azzal a szöveggel, hogy ezt nem tudja értelmezni, ne így csináljam blabla. De a szöveg nem a Google Sheet sajátja, hanem "kézzel" beleírt. Hol lehet ezeket törölni? A teljes háttérben való ellenőrzést szeretném törölni, mert már semmi nem úgy működik, csak ezeket valahogy megjegyezte. Nem nagyon vágom, gondolom a scriptek közt kéne, hogy legyen, de nemigen találtam semmit.
Köszönöm
[ Szerkesztve ]
Spóroljunk! Kerül, amibe kerül!
Új hozzászólás Aktív témák
- EA Sports WRC '23
- Milyen belső merevlemezt vegyek?
- Autós topik
- Skoda, VW, Audi, Seat topik
- exHWSW - Értünk mindenhez IS
- Kupon kunyeráló
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Politika
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Lakáshitel, lakásvásárlás
- További aktív témák...
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen