- Akciófigyelő: Humble Games Bundle - Nightdive FPS Remasters
- Call of Duty: Modern Warfare III - Új szezon, újabb ingyenes hétvége jön
- Hunt: Showdown - Jön az engine csere, befutnak az újgenerációs verziók
- Steamre tart a Crime Boss: Rockay City
- The Witcher - Befutott a TV sorozat folytatásának első rövid kedvcsinálója
- PlayStation 5
- Arena Breakout: Infinite
- Call of Duty: Modern Warfare III (2023)
- Deadlock - Kiszivárgott néhány kép a Valve Overwatch klónjából
- Genshin Impact (PC, PS4, Android, iOS)
- PlayStation 3
- Marvel Snap
- Stellar Blade
- EAFC 24
- The Witcher - Befutott a TV sorozat folytatásának első rövid kedvcsinálója
-
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
-
csferke
senior tag
szumha képlet nem lett volna egyszerűbb?
Talán igen. De mivel a képletek előre be vannak írva a össz 12 hónaphoz és ha nincs értékelhető adat akkor hibajelzést ír a mezőbe.
Ez a tömbképlet azt is vizsgálja, hogy van-e értékelhető adat és ha nincs akkor üresen hagyja a mezőt.Tehát továbbra is várok 1 megoldást tőletek.
köszi
-
Teejay83
tag
A munkanap: 7:30-15:50-ig tart és hétfőtől péntekig
Próbálgattam elég sok mindennel pl. az ÖSSZ.MUNKANAP.INTL fügvénnyel is de nem nagyon akart összejönni
Ha jól sejtem akkor itt a dátum és idő formátum sem mindegy mert a 15:00 az az excelnek ugyan az mint a 3 óra ha jól vettem észre.Köszönöm
[ Szerkesztve ]
DPS Hungary- szoftverrobot fejlesztés-online marketing támogatás-rendszerek bővítése,korszerűsítése-digitalizáció-IT biztonsági tanácsadás | www.onlineasszisztens.com | www.dpshungary.eu |
-
wednesday
őstag
Köszi.
De ha feltételes formázásba keresem "X"-et szövegkérnt tartalazza, akkor csak adott cellát színezi be, amiben X található. Nekem az lenne jó, ha a teljes sort kiszínezné pl: 6 cellát függetelenül, hogy mi talható benne.
Ez a verzió is tetszik sőt, jobban hangzik, csak valahogy tudom ki bővíteni a feltételes formázást ezzel a plusz feltétellel?
[ Szerkesztve ]
-
dm1970
tag
Szia!
Köszi, de ez így számomra egy kicsit értelmezhetetlen.
Konkretizálom a kérdésem. Van egy ilyen képletem az első oszlopban:
=+SZUM('C:\Dokumentumok\Elszámolás\2018\01\[Órák201801.xlsx]nyomtatható'!$E$7:$AI$7)/8,
a másodikban ez szerepelne:
=+SZUM('C:\Dokumentumok\Elszámolás\2018\02\[Órák201802.xlsx]nyomtatható'!$E$7:$AI$7)/8,
hogy az elérési utat, s a fájl nevet ne kelljen minden hónapban átírnom, ezért szeretnék egy segédsort megadni, ami alapján a képletet jobbra másolva, rendre változik az elérési út és a használandó fájl neve is.Az Fferi50 köszi Neked is által említett indirekt függvényre közben én is rátaláltam, de mivel a lekérdezendő fájlok megnyitása is szükséges, így az sajnos nem járható út.
Valószínűleg a keresgélés ideje alatt, már kézzel átírogattam volna a dolgokat, de hajt a tudásvágy , hátha van rá megoldás.
-
Mutt
aktív tag
Szia,
2 pontosítást hadd tegyek:
1. Makrómentesen is meg lehet oldani, Excel 4.0 GET.CELL függvénnyel. A névkezelőben létre kell hozni az alábbi képletet:
=GET.CELL(38;Sheet1!A1)
A 38-as kód a függvényben a cella kitöltését nézi, ha automatikus akkor 0-t ad vissza.Egy segédoszlopban így kell használni:
=NemSzines
Nem szabad megadni cella hivatkozást a képletben, mert mindig relatív hivatkozást fog használni.Mivel csak az adatot tartalmazó cellák érdekelik a kérdezőt, ezért a segédoszlopban egy
=HA(A1<>"";NemSzines;"")
csak akkor íratjuk ki a cella háttérszínét amikor van adat benne.Ezek után már csak meg kell számolni a 0-kat a segédoszloban.
2. A megadott makrót szintén finomítani kell mert az üres cellákat is megszámolja, amelyre gondolom nincs szükség.
Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean = False, Optional SkipEmptyCells As Boolean = False)
Dim rCell As Range
Dim lCol As Long
Dim blEmptyCell As Boolean
Dim vResult
lCol = rColor.Interior.ColorIndex
If SUM = True Then
For Each rCell In rRange
If SkipEmptyCells Then
blEmptyCell = Not IsEmpty(rCell)
Else
blEmptyCell = True
End If
If rCell.Interior.ColorIndex = lCol And blEmptyCell Then
vResult = WorksheetFunction.SUM(rCell, vResult)
End If
Next rCell
Else
For Each rCell In rRange
If SkipEmptyCells Then
blEmptyCell = Not IsEmpty(rCell)
Else
blEmptyCell = True
End If
If rCell.Interior.ColorIndex = lCol And blEmptyCell Then
vResult = 1 + vResult
End If
Next rCell
End If
ColorFunction = vResult
End FunctionHasználata: =ColorFunction(cella amelynek a szinét keressük; vizsgálandó tartomány; ÖSSZEG vagy DARAB kell?;Kell az üres cella?)
A kérdező esetében:
=ColorFunction($E$1;A1:A43;FALSE;TRUE)
, ahol E1 cella nincs formázva, A1:A43 az átnézendó tartomány, FALSE mert darab kell és TRUE mert nem érdekelnek az üres mezők.üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Fferi50
őstag
Szia!
Pontosabban a képlet
=szum($E$4:$E$8)<=480
ehhez kell beállítani a piros hátteret. Amikor a képlet eredménye igaz, akkor érvényesül a hozzá kapcsolódó háttérszín. A feltételes formázás hatóköre is ugyanaz a tartomány.
Mivel nem sztenderd módon van meghatározva, hány sornak kell lennie (2-10 is akár), ezért sajnos minden tartományra külön kell meghatározni a formázást.Üdv.
-
lappy
őstag
Private Sub CommandButton1_Click()
Dim objTargetWorksheet As Worksheet
If (TextBox1.Value = "John" And TextBox2.Value = "234") _
Or (TextBox1.Value = "Amy" And TextBox2.Value = "345") _
Or (TextBox1.Value = "Paul" And TextBox2.Value = "456") Then
Me.Hide: Application.Visible = True
For Each objTargetWorksheet In ActiveWorkbook.Worksheets
If objTargetWorksheet.Name = TextBox1.Value Then
objTargetWorksheet.Unprotect Password:=12345
Else
objTargetWorksheet.Protect Password:=12345, DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
Next
Else
MsgBox "Please input the right user name and the right password"
End If
End Sub
Private Sub CommandButton2_Click()
ThisWorkbook.Application.Quit
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ThisWorkbook.Application.Quit
End SubEz a kód már majdnem jó!
Csak annyi a probléma hogy itt munkalapokat enged, de nekem csak sor kellene
Pl.:
John csak a 1-2. sort látja
Amy csak 1-3. sort látja
Paul csak 1-4 sort látja
Admin az összes sort látjaBámulatos hol tart már a tudomány!
-
Mutt
aktív tag
Szia,
Ha a felhasználó hozzáfér egy munkalaphoz, akkor már nehezen lehet leszabályozni hogy melyik sorhoz férjen hozzá. Talán az lehetne egy megoldás, hogy mindig az első 2 sorba írnád bele a felhasználóra tartozó adatokat egy másik helyről és a Worksheet_SelectionChange eseménnyel próbálnád meg leblokkolni hogy ne mászkáljon el.
Én inkább egy másik megoldást javaslok, ami kicsit bolondbiztosabb és bonyolultabb is.
Userform-ot, amin keresztül a beléptetjük a felhasználót és megjelenítjük az adott sor adatait, amit ott tud módosítani és visszamenteni az eredeti lapra.
Az előnye ennek, hogy mindegyik lapot el tudod rejteni (akár VeryHidden-ként), így középszintű Excel felhasználóktól is megtudod védeni az adatokat.
Egy csontvázat mutatok be, ami alapján el tudsz indulni.
1. A fájlodban van két munkalap, az egyiken vannak az adatok, a másikon pedig a felhasználói azonosítók és jelszavak. Ezen lapokat nyugodtan elrejtheted.
2. VBA-ban szúrj be egy formot és kezd el rá dobálni az alábbi vezérlőket:
- egy combobox a felhasználói neveknek (ezzel egy legördülő listát lehet csinálni)
- egy textbox kell a jelszóhoz,
- 2 gomb a belépéshez és kilépéshez a programból.Lehet még felrakni labeleket, hogy tudjuk mi mire való, illetve én tettem fel egy pluszat is ahova ki lehet írni a sikeres belépés vagy a hibás felhasználó üzeneteket.
3. Legyen pár globális változónk, hogy tudjuk rájuk minden helyen gyorsan hivatkozni.
Option Explicit
Dim wsUsers As Worksheet, wsData As Worksheet, lastrowUsers As Long, lastrowData As Long
Dim activeRow As Long 'control which row should be displayedA wsUsers és WsData egy változó lesz azon munkalapokhoz ahol vannak az adatok és a felhasználók, illetve megjegyezzük hogy ezen lapokon hol vannak az utolsó sorok.
Az activeRow pedig mindig mutatni fog arra a sorra, ami a belépett felhasználóhoz van rendelve.4. A Userform indulásával feltöltjük a username comboboxot, aminek én a cbUserName azonosítót adtam.
Beállítjuk a többi változót.Private Sub UserForm_Initialize()
Dim i As Long
Const UserSheet = "Users" 'worksheet name with user ids, passwords etc
Const DataSheet = "Data" 'worksheet name with actual data
Set wsData = Worksheets(DataSheet) 'assign data sheet to a variable
Set wsUsers = Worksheets(UserSheet) 'assign user id sheet to a variable
lastrowData = wsData.Range("A" & Rows.Count).End(xlUp).Row 'find the last row on data sheet
lastrowUsers = wsUsers.Range("A" & Rows.Count).End(xlUp).Row 'find the last row on user sheet
'load valid users to username controlbox
For i = 2 To lastrowUsers
Me.cbUserName.AddItem wsUsers.Range("A" & i)
Next i
End Sub5. Ha van felhasználói név és jelszó megadva, akkor lehet csak belépni. Ehhez én figyelem ennek a két doboznak (cbUserName -ről már írtam, a jelszó pedig a txPassword textbox-ban van) a change eseményét nézem, de lehetne az AfterUpdate-t is. A lényeg, hogy a form indulásakor a Login nevű gomb inaktív (ez az alapértelemezett értéke) és csak akkor lesz kattintható ha van név és jelszó megadva.
Private Sub cbUserName_Change()
'if both username and password is filled then enable login button
If cbUserName <> "" And txPassword <> "*" Then
btLogin.Enabled = True
lbComment.Visible = False
End If
End Sub
Private Sub txPassword_Change()
'if both username and password is filled then enable login button
If cbUserName <> "" And txPassword <> "*" Then
btLogin.Enabled = True
lbComment.Visible = False
End If
End Sub6. Ha kattintanak a Login gombra, akkor megnézzük hogy a megadott felhasználó és jelszópáros egyezik-e a menttettel. Ha igen, akkor
- van egy hely (LoginComment) ahova kiírjuk hogy sikeres a belépés
- megkeressük hogy a felhasználóhoz melyik sorban van adat rendelve és az activeRow változóba ezt beállítjuk,
- láthatóvá tesszük azokat a vezérlőket, amelyekben megjelenítjük a felhasználóhoz tartozó adatokat .Ehhez a formra felvittem még pár mezőt, így néz ki a teljes form:
Hibás belépésnél lényegében csak kiírjuk a hibát és töröljük a megadott jelszót.
Private Sub btLogin_Click()
Dim cell As Range
Dim i As Long
For Each cell In wsUsers.Range("A2:A" & lastrowUsers)
'find the selected username on user id sheet
If UCase(cell) = UCase(cbUserName) Then
'if password matches then print out a notification and display the data
If cell.Offset(, 1) = txPassword Then
lbComment = "Successful login"
lbComment.Visible = True
txPassword = "*" 'password is visible on the form, so after a valid login hide it
btSave.Visible = True 'make visible the save button
'find the correct line for the selected user on data sheet
If UCase(cbUserName) = "ADMIN" Then
activeRow = 2
spinRecord.Visible = True
spinRecord.Min = activeRow
spinRecord.Max = lastrowData
Else
For i = 2 To lastrowData
If UCase(wsData.Range("A" & i)) = UCase(cbUserName) Then
activeRow = i
End If
Next i
End If
Call DisplayData
Else
'wrong password was given
lbComment = "Invalid username or password"
lbComment.Visible = True
txPassword = "*"
End If
End If
Next cell
End Sub7. A cancel (kilépés) gombnak egyszerű az eseménye, bezárja a formot.
Private Sub btCancel_Click()
Unload Me
End Sub8. A felhasználóhoz rendelt adatok megjelenítésére csináltam egy külön szubrutint, DisplayData névvel, Ez most nagyon minimalista.
Sub DisplayData()
With wsData
If Len(.Cells(activeRow, 2)) > 0 Then
txRecord1 = .Cells(activeRow, 2)
Else
txRecord1 = ""
End If
If Len(.Cells(activeRow, 3)) > 0 Then
txRecord2 = .Cells(activeRow, 3)
Else
txRecord2 = ""
End If
If Len(.Cells(activeRow, 4)) > 0 Then
txRecord3 = .Cells(activeRow, 4)
Else
txRecord3 = ""
End If
End With
End Sub9. Ha a felhasználó átírja a formon az adatot, akkor a Save gombbal visszaírjuk a munkalapra.
Private Sub btSave_Click()
With wsData
.Cells(activeRow, 2) = txRecord1
.Cells(activeRow, 3) = txRecord2
.Cells(activeRow, 4) = txRecord3
End With
End Sub10. Végül az ADMIN-ra kell egy kicsit rágyúrni, mivel ő látja az összes adatot.
Neki az a megoldás, hogy van egy görgető sáv (én most a spinbutton vezérlőt használom, a spinRecord nevet adtam neki), amin tud lépkedni az egyes mezők között. Ezt a görgető sávot a belépéskor teszem láthatóvá neki és beállítom hogy a 2-es sortól (1-esben a fejléc van), csak az utolsóig mehet. A léptetést a vezérlő change eseménye oldja meg, mert módosítja az activeRow értéket és egyből meghívja a DisplayData-t.Private Sub spinRecord_Change()
activeRow = spinRecord.Value
Call DisplayData
End SubA végeredmény így néz ki Admin-al belépve:
A UserForm-nak nagy előnye, hogy áttekinthető formában tálalni a felhasználó felé azokat az adatokat amiket te választasz ki, illetve ha sok adatot kell bekérni akkor ott is tud segíteni, mert mentés előtt tudsz validálást csinálni.
Ha akarod akkor automatikusan indíthatóvá teheted.
Private Sub Workbook_Open()
MainForm.Show
End Subüdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
allein
addikt
F oszlopban található a csomag elnevezése - tartalmazhat több fél terméket. Feltételezzük van benne Termék1, Termék2 és Termék3. Termékeknek van különálló súlya, ez kell nekem. És a végeredmény a következő: - az F oszlopban található minden csomagnak a súlya. Nem tudom érthető-e ahogyan leírtam.
http://phmegbizhatosag.atw.hu/phtabla.php?nev=allein
-
allein
addikt
Az F oszlopban a csomag neve és a tartalma van ami lehet: Termék1, Termék2, Termék3. De lehet csak Termék1 Termék2, stb.
Az M, N, O oszlopban látjuk mennyi van az adott termékből az adott csomagban. Tudom a termék súlyát, 5 termékünk van. Nem tudom hogyan fogjak neki, nagyon nem megy az excel
[ Szerkesztve ]
http://phmegbizhatosag.atw.hu/phtabla.php?nev=allein
-
atyca
senior tag
Nagyon köszi!
Ez így nevenként szűr, és másol a megfelelő névhez a másik lapon?
Kerestem benne valami változót (így másodjára), de nem láttam...
Jó itt lenni Uraim, és Hölgyeim!
Ha nem lennék túl az 5. x-en (nem kicsit kiégve), akkor biztos foglalkoznék ezzel az excel varázslattal egy picit behatóbban is.
De már megérte itt lenni, mert ezt a dátumozós dolgot megtanultam.
Másnak ez semmi, nekem sikerélmény.
Köszönöm még egyszer mindenkinek!
u.i:Jövök még...Win11 Pro/64, MI TV Stick, Kodi 20.2 (többi az adatlapomon)
-
mesm
újonc
Van a színes táblázat., ennek E7 cellájában lévő adat (ezek a másik tábla B oszlopában is vannak) és a E19 cellában lévő adat segítségével kellne megtalálni a a másik táblában lévő adatok küzül az O oszlopban azt a számot ami nagyobb mint a színes tábla E19 értéke és a B oszlopban lévő adat megegyezik a színes tábla E7-ben lévő adattal. Ha ezt megtalálta, akkor a C oszlopban lévő adatot kellene beleírnia színes tábla E23 ba. Innen megy a többi keresés FKERES-el
-
-
gepelek
kezdő
Én úgy csináltam de egy másik táblából, szóval ahol nem azonos az érték azt hogy lehet másképp kiszűrni? Tehát van 2 oszlop ahol most tele van azonos értékkel, de biztos lehet eltérés, mert másik táblázatban más érték lehet. Tehát úgy mint egy szűrésnél az azonos cellákat bejelölni egy színnel.
[ Szerkesztve ]
-
wednesday
őstag
Köszi szépen.
Ezzel remélem kezdhetek valamit. Egyelőre szenvedek ezzel a feltételes másolással.
Valami ilyesmi kéne.
Ha megvan a dátum név kombó, akkor a név alatti adatokat addig másolja amíg egy újabb dátum névhez nem ér (az már egy másik csoport). Bár ez az addig másolja sem állja meg a helyét, hiszen egyelőre fix 6 helyem van. Ha 5-nél több van új adatlapra kerülne. Például munka3 és 7-12ig, munka4 13-18 stb. Nem kell olyan sok. ugyanazon név és dátum.Vagy megoldom, hogy addig generálja a sorokat az űrlapon amíg szükséges.
[ Szerkesztve ]
-
Mutt
aktív tag
Szia,
Munkafüzet felépítésének védelme
Azonban pár perces Google search-el egy kezdő is ki tudja ütni ezen védelmeket. Ne várj csodát.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
makoss
addikt
Ilyen beállítás nincs.
A file (angolul van) nincs beállítás, ott Outlook, Onedrive, World, Exel, Powerpoint, Onenote stb van.
Ez online exel táblázat.[ Szerkesztve ]
Külföldről nem rendelek semmit, csak itthoni boltból! Vagy újat, vagy semmit! "A kötözködés a bunkóság melegágya!"
-
makoss
addikt
Annyit már sikerült kiderítenem, hogy a függőleges táblázat betűjére kell kattintani és az a sáv besötétül táblázat fejlécében található "DATA" azon belül "Data validation" azon belül "Settings" azon belül "Allow" azon belül "List" azután a függőleges sávot kimásolni valahogy asszem Ctrl+C, utánna Ctrl+V tovább nem tudom...
Külföldről nem rendelek semmit, csak itthoni boltból! Vagy újat, vagy semmit! "A kötözködés a bunkóság melegágya!"
-
makoss
addikt
Na az jó ha nállad rendben működik, de nállam szerintem ki van kapcsolva, a pontos menete kéne hogyan kell beállítani, 1× mutatták, de eltenném, vagy felírnám, mert sok időt lehetne megspórólni vele.
Külföldről nem rendelek semmit, csak itthoni boltból! Vagy újat, vagy semmit! "A kötözködés a bunkóság melegágya!"
-
escsé
tag
At 'abc' lehet 'abcde' is, sőt egy esetben kettővel több. Ezek szerint nem lesz jó a JOBB függvény.
Közben felvetődött bennem, hogy talán egyszerre megoldható lehet a következő:Ez van most:
=HA(DARABTELI(I117;"*OP.2*");"a";"A")
szeretném:
ha "*OP.2*", akkor 'a'
ha "*OP.0,4*", akkor 'A'
ha üres a cella, akkor üres[ Szerkesztve ]
-
oke
senior tag
Valami képlet megoldásra lenne szükségem, a célérték és a kiindulási érték is változó egyébként.
Az 1 db biztos nem jó.Manuálisan, próbálkozással meg tudom oldani, csak sok lenne így kb 100x megcsimálni.
Próbálgatásra ez az eredmény:
Minta: 100 db --> ennek átlaga 120, azaz összeszorozva 100*120=12000
A 140-es átlaghoz +50 db minta kell, azaz 100+50 minta--> 150*120=21000 -->21000/150=140 -
friccccc
tag
megcsináltam tökéletesen működik, ha kézzel írom be, A1re értéket, de amint VBA val változtatok értéket már nm számolja :S (olyan mintha amit a VBA változtat nm venné észre) tudnál esetleg segíteni?
A VBA ban a változtatást a "Private Sub Worksheet_Calculate()" alatt adatom ki.
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Alpha Laptopszerviz Kft.
Város: Pécs