- Magisk
- Az iPhone 15 frissítésgaranciát, a 16 szép rendereket kapott
- Hivatalos képen a Samsung hajlíthatók
- Milyen okostelefont vegyek?
- Okosóra és okoskiegészítő topik
- iPhone topik
- Megérkezett a Google Pixel 7 és 7 Pro
- Samsung Galaxy Z Fold3 5G - foldi evolúció
- Samsung Galaxy Z Fold5 - toldozás-foldozás
- Nem lesz idén Nothing Phone (3)
Hirdetés
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
PC-s demót kap a The Alters
gp A teljes kiadás már konzolokon is elérhető lesz majd, a próbaverziót azonban csak Steamen és Microsoft Store-ban érjük majd el.
-
Az iPhone 15 frissítésgaranciát, a 16 szép rendereket kapott
ma Sokáig hallgatott az Apple a frissítésekről, most viszont megtudtuk, mennyit garantál.
-
Mobilarena
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
-
p5quser
tag
Sziasztok!
Újfent a segítségetekre szorulnék. Van egy sablon munkafüzet, amit ha megnyitok az bekér egy "adat" excel táblát megnyitásra.
Hogyan tudom beállítani, hogy a megnyitott adat munkafüzet nevére globálisan hivatkozhassak a sablon füzetben?
Túrtam a neten egy ilyet;Private Sub Workbook_Open()
Dim stdb As Workbook
Dim stnm As String
stnm = Application.GetOpenFilename
If stnm <> "" Then
Workbooks.Open stnm
End If
End Subami a Thisworkbookban lapít. Egy régebbi itteni megoldást követve, modulba raktam ezeket is;
Public stdb As Workbook
Public stnm As StringAz adat file az stdb. Az sablon első munkalapján lévő makró viszont run-time 13-mal elhasal (type mismatch) és ez a sor sárgul be;
Workbooks(stnm).Sheets(1).Range("A1:B" & Rows.Count).AutoFilter field:=2, Criteria1:="*" & TextBox2.Value & "*"
Ha az stnm helyére beírom idézőjelekkel az adat file teljes nevét kiterjesztéssel, teszi a dolgát, csak hát a kényelem, ugye...
Előre is köszönöm! -
p5quser
tag
válasz Pakliman #40634 üzenetére
@Fferi50 Nagyon köszönöm a segítséget! Ja, igen, a path nélküli, kiterjesztéses névvel működött rendesen.
@Pakliman Neked is köszönöm a segítséget, hibátlanul teszi így már a dolgát. A "helyben érvényesítés" lehetett a gond, mert előtte próbáltam stdb-ként hivatkozni rá, de akkor obj.var. not set-tel hasalt el.
Mégegyszer köszönöm mindkettőtöknek!
[ Szerkesztve ]
-
p5quser
tag
Ezt még jegyzőkönyvön kívűl kérdezném;
Létezik olyan keresés funkció (akár excelben akár egyéb programban) ami mondjuk párosítani tudja pl. a "Tartalék akkumlátor mobiltelefonhoz" kifejezést a "Tartalk mobil akku"-val?
Szándékos az -é betű hiánya, a rendszeres elütések miatt. Azonkívűl felcserélődnek a jelzők, rövidítéseket alkalmaznak, stb.
Úgy értem, létezik-e olyan keresés, ami mondjuk összeveti két oszlopban lévő, soronként 2-3 szóban lévő betűk egymás utáni sorrendjét és a legtöbb betűvel megegyezőt adja vissza?
Nem tudom érthető-e, talán a példából ki lehet hámozni, mi is a nyomorom. Sajnos több helyről érkeznek az adatok és szép magyar nyelvünknek (valamint virsliujjú kollégáimnak) hála, mesebeli kombinációk születnek egyazon témára.
A fenti példa is ezért született, hogy két monitoron egyszerre tudjam "közösíteni", két szűrővel a párszáz soros listákat.
Szóval létezik ilyen, vagy várjak a mesterséges intelligenciára? -
p5quser
tag
Sziasztok!
Nem tudjátok véletlenül miért nem működik a 2016 Excelben a Ctrl-Shift-Page Down, több munkalap kijelölésénél? Több gépen is próbáltam, pár napja, hete.
Előre is köszi! -
p5quser
tag
Sziasztok!
Nem jövök rá mi lehet a baj ezzel a pár hónappal ezelőtt még működő scripttel.
Az első munkalap első oszlopában lévő dátumokra nevezte át a munkalapokat. Néha beszúrtak munkalapokat a dátumosok elé, azért kérdez rá hogy honnan kezdje.
Most viszont "subscript out of range"-dzsel hibára fut. Ha csak az index számot beírom az inputbox helyére, akkor is. Azon a munkalapon futtatom, amelyiken az A1:A31 range van.
Előre is köszönöm!Sub RenameSheets()
Dim c As Range
Dim J As Integer
J = Sheets(InputBox("Melyik laptól kezdjem?")).Index - 1 'Kezdő sheet -1
For Each c In Range("A1:A31")
J = J + 1
If Sheets(J).Name = "" Then J = J + 1
Sheets(J).Name = c.Text
Next c
End Sub
-
p5quser
tag
-
p5quser
tag
Sziasztok!
Van egy combobox change-em és ennek az értékétől függően meg kéne változtasson egy modulban egy sort, ami egy "call"-ra fut le.
A 11:-gyel jelölt sort kellene átírni. (igazából csak a képlet végére beírni a "*1,27"-et)Sub RESET_SZLAZO()
With Sheets(1)
.TextBox1.Text = ""
.TextBox2.Text = ""
.TextBox3.Text = ""
End With
Range("A2:C31, H20, H23").ClearContents
11: Range("D2:D31").FormulaR1C1 = _
"=(IFERROR(VLOOKUP(RC[-3],cikkek!C[-3]:C[5],R1C7,0),0))*R5C8"
Range("G5").Value = ""
Range("B38").Value = ""
ActiveSheet.PageSetup.CenterHeader = ""
ActiveSheet.PageSetup.LeftHeader = ""
Range("A2").Select
End Sub
Előre is köszönöm![ Szerkesztve ]
-
p5quser
tag
válasz Delila_1 #43911 üzenetére
Igen, bocsi, pongyolán fogalmaztam. Szóval hogy egy eme modulon kívűli comboboxban határoznám meg ezt képletet. Ha áfás megjelenítés kell, akkor módosítja ezt (és csak ezt) a sort.
Lehet ezt így, egyátalán? Bele lehet írni egy makróval egy másik modul, másik makrójának egy sorába? Vagy lemódosítani egy adott, cimkével jelölt sort?
Köszönöm! -
-
p5quser
tag
válasz Delila_1 #43917 üzenetére
Köszönöm, a végén így néz ki. A címkét azért raktam oda előzőleg, mert azt hittem így könnyebb lesz megmutatni a módosító scriptnek hogy mit keressen. De okafogyottá vált.(#43919) Fferi50
Van erről valami irodalom? Nem baj ha angol. Néha jól jött volna, függetlenül a jelen helyzettől. Ugyan mindig sikerült megkerülni a problémát, de biztos gyorsabb lehet "röptében" átírni a scriptet. (bár ezt így leírva, világos lett az árnyoldala is)
Neked is köszönöm a választ! -
p5quser
tag
Sziasztok!
Ismét előtérbe került egy korábbi nyomorom, amivel kapcsolatban egy mai guglizás felcsillantotta a reményt.
A varázsszó a "Split". Az alábbi kódsorokkal egész tűrhető eredményeket kaptam. Ő azt csinálja, hogy végigmegy a G2:G180 range-en és minden ott található megnevezést feldarabol "space"-enként, majd ezek első és második darabkáját (joker karakterekkel) megkeresi a "B" oszlopban.
Ezután visszaadja a talált egyezést, ill. a mellette lévő adatot. Mint egy feltuningolt FKERES. Gyanítom nagyban javulna a találati arány, ha a 3. darabkát is be tudnám szőni a keresésbe (a "cik" akár 4-5 részes is lehet), de elakadtam.
Azt még meg tudtam oldani, hogy ha egy darabkás a keresendő, akkor adja vissza azt, de azt már nem, hogy ha csak két darabkás, akkor is. V9-cel elszáll, mihelyst megpróbálom az "spl(2)"-t is beleszőni a keresésbe.
Ha esetleg valaki látja azt amit én nem, megköszönném... :)Sub keresgelos()
With Sheets(1)
Dim cil As Range, tci As Range
Set cil = .Range("G2:G180")
For Each cik In cil.Cells
spl = Split(cik)
Set tci = .Range("B:B").Find(what:=spl(0) & "*" & spl(1), LookIn:=xlFormulas)
If spl(1) = "" Then
Set tci = .Range("B:B").Find(what:=spl(0) & "*", LookIn:=xlFormulas)
End If
On Error Resume Next
.Cells(cik.Row, 8).Value = tci
.Cells(cik.Row, 9).Value = tci.Offset(0, 1).Value
Next
End With
End Sub[ Szerkesztve ]
-
p5quser
tag
Sziasztok!
Mellékelném a nyomorom;Nem jöttem rá, hogyan tudom jobbról az első előfordulásnál lévő "(" karaktertől jobbra lévő teljes szöveget kiszedni B1-be. Persze nem 4 sorról lenne szó. Zárójeles részek többször is szerepelnek (lásd 2. sor), ezért a szövegből oszlopok-módszer macerás. Formula lenne jó.
Előre is köszönöm! -
p5quser
tag
Sziasztok!
Ismét a segítségetek kérném vba-ban.
Egy range egyesített cellákat tartalmaz, benne szöveges és numerikus tartalommal. Ezt kellene átmásolnom egy másik munkalapra, de már az üres cellák nélkül.
Gondolom egy kétdimenziós tömbbe kéne ezt a range-et beleborítani, majd az üres értékek nélkül az újraméretezett tömböt a másik munkalapra kiírni.
Mellékelek egy ábrát is a nyűgömről.
Persze ettől kicsit bonyolultabb és több a tartalom, de csak oszlopok vannak egyesítve, sorok nem. Tehát az A1:F3 -mat kéne A9:C11 -be kiírnom. Egy automatizált feladat része lenne, szóval csak vba jöhet szóba.
Előre is köszönöm! -
p5quser
tag
válasz Apollo17hu #45602 üzenetére
Én is így tudom, de pár sortól pár száz sorig változik a range és az oszlopok is 1-37 ig vannak 7 felé osztva, nem egyenlő mértékben. Szóval a nagyobb listánál már belassulna a másolgatás. Ezért gondoltam a tömbösítésre. Úgy olvastam, sokat dobna a gyorsaságon.
-
p5quser
tag
válasz Delila_1 #45604 üzenetére
Köszönöm!
Ő vele az a bajom, hogy mindig munka2 lap utolsó sorától kéne kezdődnie az új értékeknek és ha behelyettesítem az utolsó sor számát, minden értéket ugyanabba a sorba ír a munka2 lapon. Nomeg persze a másolando range is változó hosszúságú, bár ugyanattól a ponttól kezdődik mindig (A10).[ Szerkesztve ]
-
p5quser
tag
Sziasztok!
Boldog Új Évet Nektek!
Az alábbi kódrészlet lefutása kb. 30 másodperc és másfél perc között ingadozik, teljes mértékben az adott gép teljesítményétől függően.CikkTomb = Sheets(1).Range("A1:A" & Sheets(1).UsedRange.Rows.Count).Value
TetelTomb = Range(Cells(lr, 1), Cells(nlr, 3)).Value
For i = 1 To UBound(TetelTomb, 1)
cs = Application.Match(TetelTomb(i, 1), CikkTomb(), False)
Sheets(1).Cells(cs, 3) = Sheets(1).Cells(cs, 3) - TetelTomb(i, 3)
Next i
Készletet kezel, formból, adott sorrendben.
A cikktömb a tesztnél ~62 000 soros, a tételtömb pedig 100.
Teljesen reális ideig szöszmötöl vele, vagy lehet esetleg faragni belőle?
Előre is köszönöm! -
p5quser
tag
Sziasztok!
Ezzel mit tudok kezdeni?
Combobox_para (Sajnos animált GIF-et nem enged beszúrni)
Office 365-ön és 2016-on ugyanúgy előjön.
Előre is köszönöm! -
p5quser
tag
Sajnos nem. Már párszor töröltem és újrakreáltam a comboboxot, default fonttal, színnel, mérettel, de ha több gépen használják, meghülyül egy idő után. A tulajdonságainál rögzítettem a méretarányát és a helyét (nem mozog a cellákkal). Mindegy hogy csak O365-tel használják vagy csak 2016-tal. 2016-tal kreálva ugyanez. Ja, és a textbox is ugyanez. Szóval passz.
Köszi![ Szerkesztve ]
-
p5quser
tag
válasz Fferi50 #45834 üzenetére
Szia!
Nincs alatta adatérvényesítés és ActiveX a combo.
Természetesen kimásolva csak azt a munkalapot megszűnik a hiba igaz, most csak egy gépen tudom kipróbálni. Gyanítom egyben lenne jó látni, szóval most kimetszem az érzékeny adatokat a használt file-ból és egyben felrakom.
Köszi! -
p5quser
tag
válasz Fferi50 #45834 üzenetére
Róla lenne szó.
Nincs benne turpisság.
A "szamlazott" és a "konyv" lapon mászik el csúnyán kattintásra a combo. Valamint a "cikkek" lapon a cikkcsoport keresője.
Előre is köszönöm! -
-
p5quser
tag
Sziasztok!
EgyUserForm_Initialize()
alatt meg lehet határozni egy olyan változót amit mondjuk egyComboBox_Change()
-ben tudok felhasználni?
Természetesen ugyanazon UserFormon belül. Vagy ha nem ott, akkor hol? MindenUserForm.Show
-nál változik az érték és csak a UserFormon belül lenne használva ez a változó.
Előre is köszönöm! -
p5quser
tag
válasz Delila_1 #45972 üzenetére
Szia!
Köszi a választ! Elsiklottam dolgok felett.
AComboBox_Change()
így néz ki;Private Sub ComboBox1_Change()
Dim i As Long
For i = 1 To Application.WorksheetFunction.CountA(Sheets(1).Range("B:B"))
If LCase(Left(Sheets(1).Cells(i, 2), 1)) = Me.ComboBox1 And Me.ComboBox1 <> vbNullString Then
Me.ComboBox1.AddItem Sheets(1).Cells(i, 2)
End If
Next i
Me.ComboBox1.DropDown
End Sub
Ő egy "auto suggestion" combobox, mindig a "B" oszlopból húzza be az ajánlott nevet. Ez egy 3xxx soros lista, amit a duplázások elkerülése végett ír ki. De - gondolom - minden módosításnál újraszámolja a cellákat. Lassabb gépeken (hdd) körülményes. Ha a userform incializálásakor megszámoltatnám vele, talán gördülékenyebb lenne. Ha aApplication.WorksheetFunction.CountA(Sheets(1).Range("B:B")) -t
deklarálnám és utána már csak behúznám, az segítene? -
p5quser
tag
válasz Delila_1 #45974 üzenetére
Szia!
Elrontottam az előbb, most néztem meg újra hogy mit írtam.
Szóval hogy nem a duplikálás kizárása a cél, hanem pont az ellenkezője.
Ital standoló, de ugyanaz a nevű ital többféle kiszerelésben létezhet.
De leltárkor az összkészlet kell literben. Pl:
narancslé 5l 12db 60l
narancslé 2l 7db 14l
A végén egy szumha húzza egybe, de nem baj ha visszakereshető hogy milyen kiszereléseket leltároztak. Ezért kell az auto suggest, hogy ha nincs adott kiszerelés, akkor ugyanazon a néven legyen eltárolva, de más kiszerelésben. Mindez persze többféle itallal, sokféle kiszerelésben.
De akkor a userform incializálásnál nem lehet deklarálni olyan változót, amit a userformon belül bárhol alkalmazhatok?
Köszi a választ! -
p5quser
tag
Sziasztok!
Volna ez a kód;For Each cb In ActiveSheet.OLEObjects
If TypeName(cb.Object) = "CheckBox" And cb.Object.Value = True Then
cbi = "TextBox" & Right(cb.Name, 1)
With OLEObjects(cbi)
.Activate
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Next cb
Ő megkeresi melyik Activex checkbox van kipipálva és az ahhoz számozott Activex textboxot aktiválja.
A.SelStart
-nál viszont elhasal "438"-cal. Ha azOLEObjects(cbi)
helyére beírom hogyTextBox8
, akkor rendben lefut. Azért nem értem, mert az.Acivate
még lefut és látszik is a villogó kurzor a textboxban.
Hogyan kéne kijelölnöm a szöveget, vagy hogyan kéne hivatkoznom a textboxra?
Elöre is köszönöm! -
p5quser
tag
Üdv!
Köszi a választ!
Sajnos set-tel is ugyanaddig jut - az.Activate
-ig - majd 438.#46254Fferi50
Neked is köszi a választ! A tömbösítésnél viszont a textboxba beírt szöveget húzza be objektumnévnek. Feltéve ha így gondoltad;Dim tbtomb(8)
tbtomb(1) = ActiveSheet.TextBox1
tbtomb(2) = ActiveSheet.TextBox2
tbtomb(3) = ActiveSheet.TextBox3
tbtomb(4) = ActiveSheet.TextBox4
tbtomb(5) = ActiveSheet.TextBox5
tbtomb(6) = ActiveSheet.TextBox6
tbtomb(7) = ActiveSheet.TextBox7
tbtomb(8) = ActiveSheet.TextBox8
For Each cb In ActiveSheet.OLEObjects
If TypeName(cb.Object) = "CheckBox" And cb.Object.Value = True Then
cbi = Right(cb.Name, 1)
With tbtomb(cbi)
.Activate
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Next cb
De már ott tartok, hogy nem érdekel a selection része, mivel a textboxot aktiválja és odaugrik, onnantól majd kitörlik a benne lévő szöveget. Csak elegánsabb lett volna úgy.
Mégegyszer köszönöm a válaszaitokat! -
p5quser
tag
válasz Fferi50 #46254 üzenetére
"meg kell kerülni a problémát"
Nagyon jó tanács! Ha esetleg más is kerülőutakra kényszerül, iderakom.For Each cb In ActiveSheet.OLEObjects
If TypeName(cb.Object) = "CheckBox" And cb.Object.Value = True Then
cbi = "TextBox" & Right(cb.Name, 1)
OLEObjects(cbi).Activate
Application.SendKeys ("^a")
End If
Next cb
Így már kijelöli a teljes szöveget a textboxban és egyből lehet beírni a következő szöveget, de nem tűnik el rögtön az előző szöveg. -
p5quser
tag
Sziasztok!
VBA-ban azt hogyan lehet leírni - minél egyszerűbben - hogy;HA valami = 2 VAGY valami = 3 ÉS valaki neve = juszuf VAGY valaki neve = huan AKKOR
?
Szóval olyasmit szeretnék végeredménynek hogy pl;2, huan = true
3, huan = true
3, juszuf = true
2, juszuf = true
1, juszuf = false
3, otto = false
Remélem érthető (és megoldható VBA-ban) amit szeretnék.
GondolomSelect Case
lesz a barátom, csak lehet hogyjuszuf
éshuan
mellé beugrik mégwong
is, ill. az alkalom is lehet7
a2
és3
mellett.
Ennek függvényében gondolom nagyon elnyúlna aCase
.
Előre is köszönöm! -
p5quser
tag
Sziasztok!
Ugyan google sheets, de hátha...
Egy filter függvény által kinyert sort transzponálnék egy oszlopba, de úgy, hogy a filter első két oszlopát (transzponálva, sorát) kihagynám.
Lehet ezt így, egyáltalán? Most egy segédsorral oldom meg, aminek meghatározott területét transzponálom, de elegánsabb lenne anélkül.
Előre is köszönöm! -
p5quser
tag
válasz Fire/SOUL/CD #49062 üzenetére
"Milyen filter függvényről van szó?"
A google sheets FILTER függvénye. Jó kis cucc cellaérték alapú lekérdezésekhez.=FILTER(raw_data!A:V;raw_data!A:A=X2;raw_data!B:B=W2)
Ebből az A:V oszloptól tartó sort akartam transzponálni, de csak a C:V oszlopokat. Viszont a szűrési feltételek pont a "lecsípendő" oszlopban vannak, szóval úgy hiszem szükséges a segédsor. -
p5quser
tag
Üdv!
Talán törleszthetek a fórumba azért, amit eddig kaptam itt.
Szóval hasonló területen szerzett tapasztalataim révén EZ LESZ a legegyszerűbb megoldásod. Szerintem.
GDrive kompatibilis, tudtok egyszerre (célszerű külön sheeten) dolgozni rajta. Csak annyit mondj a kollégáknak hogy ne írjanak a színes cellákba.
A sum lapra vigyétek fel a tételeket mértékegységekkel (nem árt), onnantól kezdve csak azt lehet a pult_1, _2, stb-be beírni felvitelkor.
Átírhatjátok a sheet nevét, elvileg leköveti a képletekben is. Ha kérdés van, írj ide.
Üdv! -
p5quser
tag
válasz Delila_1 #51195 üzenetére
Úgy látszik nem elég a dioptria.
"A forrás kiértékelése jelenleg hibát okoz...."
Emiatt ragadtam billentyűt. Mi lehet a nyűgje? A névkezelőben ott vannak.
2021 office ltsc.
Ja igen; ha B1-be akarom érvényesíteni INDIREKTTEL, akkor dobja a hibát.
Bőven ráér ebéd után.[ Szerkesztve ]
Új hozzászólás Aktív témák
- STEEL BOX! - EEP Eisenbahn.exe 3 & 4 Steel BOX
- Eladó PC Játékok Bontott és Bontatlan csomagolásban.
- Windows Server 2016, 2019, 2022 Standard, Datacenter, Essentials termékkulcsok - MEGA akció!
- Vírusirtó, Antivirus, VPN licenckulcsok - kedvezményes ajánlatok (frissítve: 2024. 05. 01.)
- AVATAR: Frontiers of Pandora
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen