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.
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [bb0t:] Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [sziku69:] Szólánc.
- [Re:] [antikomcsi:] Való Világ: A piszkos 12 - VV12 - Való Világ 12
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [Sub-ZeRo:] Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- [Re:] Gurulunk, WAZE?!
- [Re:] [Szevam:] Érzelmi magabiztosság/biztonság - miért megyünk sokan külföldre valójában?
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Téma összefoglaló
- Utoljára frissítve: 2023-11-13 08:31:56
LOGOUT.hu
Hozzászólások
Fferi50
őstag
Szia!
Esetleg próbáld ki az alábbi képletet egy segédoszlopban:=DÁTUM(ÉV(A1);HÓNAP(A1);NAP(A1))
Ha működik, végighúzod az oszlopon, majd másolás - irányított beillesztés értéket a segédoszlopra. Utána átmásolhatod az eredeti helyre, segédoszlopot törölheted.
Üdv.
lcdtv
aktív tag
esetleg a keresés majd ugorjon arra a sorra ahol megtalálta kérdésre valaki? [link]
Delila_1
Topikgazda
Else
Cells(Rng.Row, "D").Select
[ 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.
Fferi50
őstag
Szia!
39049. hszt láttad?
Üdv.
lcdtv
aktív tag
uhhh. nem bocsánat nem vettem észre.köszönöm
dellfanboy
senior tag
van olyan beallitas excelben ami:
- mindig az elso sorra mutat? jelen esetben ha legorgetek, a150. sorra es elmentem, akkor amikor ujbol megnyitom a file-t a 150. sor fel mint default.
Azt szeretnem ha mindig az elso sorok latszodnanak.
- kizarja hogy adott cellaba mas excel file-bol linkeljek adatot. csak ertekek, vagy excel fv szerepelhet. ilyen letezik?
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
Delila_1
Topikgazda
Állj a megjelenítendő (cím)sor alá, majd kattints a Nézet | Panelek rögzítése menüpontra.
Mit szeretnél még megjeleníteni a hivatkozásban?
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
oke
senior tag
Köszönöm szépen, működik, nagy segítség volt!
ccs2929
senior tag
Sziasztok!
Nem vagyok Excel guru, biztos leírtátok már a megoldást 100x is, de most nincs időm visszaolvasni, segítsetek kérlek:
2 különböző programból exportálok ki Excelbe partnertörzset, amit egy 3. programba kellene beimportálnom. Vannak a partnerek közt átfedések, és nem szeretném, ha az új programunkba duplázva lennének a partnerek.
A kérdésem az lenne, hogy megoldható-e, hogy sorokat összehasonlítsunk legalább 2 oszlop figyelembe vételével és az azonosokat valamilyen módon kiemeljük, pld. színnel, az sem lenne baj, ha különböző színnel.
Mondjuk a név oszlop és az adószám oszlop lenne ami alapján egyezőségeket kellene keresni.
Előre is köszönet.
Flickr: http://goo.gl/V53ntj Ha korrekt volt az üzlet,akkor várom az értékelést!
garga01
senior tag
Szia!
Van szebb megoldás is, de hirtelen így csinálnám:
Berakok egy segédoszlopot, ahol ÖSSZEFŰZ függvénnyel összerakom a két azonosítót, majd az így létrejött teljes oszlopon Feltételes formázás->Cellakijelölési szabályok-> Ismétlődő értékek... majd ok. Így pirossal színezi ahol duplikátum van. Persze ha van plusz szóköz, stb. akkor már nem működik.
Az áram alatt lévő alkatrész ugyan úgy néz ki, mint amelyik nincs áram alatt..... csak más a fogása!
kopogo
tag
Sziasztok!
1 kérdés az excel naplóza valahol hogy kik mikor módosítottak benne és hányszor?
köszönöm
thomas50.000
csendes tag
Sziasztok!
Az lenne még a problémám, hogy a whatsmycolor függvény sajnos nem frissíti önmagát.
Ezt valahogy meglehetne oldani, hogy automatikusan, amint szín változás történik a cellában, ő rögtön változtassa a számot is?
Function whatsmycolor(melyikcella) As Long
whatsmycolor = [melyikcella].Interior.Color
End Function
A válaszokat előre is köszönöm!
lappy
őstag
Megosztott munkafüzetnél van lehetőség, visszaállításra nincs lehetőség
Bámulatos hol tart már a tudomány!
Agostino
addikt
sziasztok
olyan cikket keresek vagy leírást, ahol rá tudnék jönni a következőre: kellene egy darab diagram három értékből. kettő értéket szeretnék halmozott oszlopban, mellette a harmadik értéket egy sima oszlopban. tehát mondjuk alma és körte 20 db 30 db, ezek együtt egy oszlopban, két színnel, mellette banán egyetlen oszlopban, egy színnel. nem tudom mennyire voltam érthető : ) próbáltam keresni megoldást, de szerintem rossz keresőszavakat használok.
hey friend listen, i know the world is scary right now but its gonna get way worse
Mutt
aktív tag
Szia,
"...whatsmycolor függvény sajnos nem frissíti önmagát...."
A tippem azt lett volna, hogy elég egy Application.Volatile parancsot tenni az UDF-be, de az Excel-ben a cella szinének megváltozásakor nincs esemény indítás, azért ez sem megoldás.
A legjobb megoldás, hogy azon munkalap selectionchange eseményéhez, ahol használod a függvényt rendelsz egy Application.CalculateFull parancsot.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CalculateFull
End Sub
Ennek a hátránya ugyebár, hogy MINDEN értéket újraszámol a munkalapon ami lassabbá teszi a műkődést.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
Mutt
aktív tag
Szia,
"...sorokat összehasonlítsunk legalább 2 oszlop figyelembe vételével és az azonosokat valamilyen módon kiemeljük, pld. színnel..""
Ilyen esetre, használható a DARABHATÖBB (COUNTIFS) függvény, amely megszámolja hogy a feltételként megadott érték a kiválasztott oszlopban hányszor szerepel.
pl. A-oszlopban név, G-oszlopban adószám, és van fejléced, akkor
=DARABHATÖBB(A:A;A2;G:G;G2) megmondja hogy adott névvel és adószámmal hány találatod van a második sorban lévő partnerre, ezt csak le kell húznod és megkapod az eredményt az összes cégre.
Feltételes formázásban is lehet használni.
üdv
ps. A névre való keresés nem olyan biztos megoldás, mert lehet hogy az egyik rendszerben használtak ékezeteket vagy rovidítéseket és a másikban nem. Az adószámnál pedig bonyodalmat az okozhat, ha EU-s változatban vagy magyar formátumban került felvitelre az adószám.
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
Mutt
aktív tag
Szia,
Ha a képen látható módon rendezed az adatodat, akkor megkapod a kívánt eredményt.
Lépések:
1. Kijelölöd az adattartományod, majd grafikon beszúrásakor kiválasztod a halmozott oszlop diagrammot.
2. Excel próbál okos lenni és 3 oszlopot tesz egymás mellé, de te kattints a sorok/oszlopok felcserélésére.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
qpakcovboy
őstag
Nagyon fura dolog történt az egyik táblázatommal, szerintem véletlenül átkapcsoltam valamit és most nem tudom visszaállítani.
Az a hibajelenség, hogy ctrl+c; ctrl+v módon másolok egy képletet. A másolás sikerül, de azt az eredményt írja be a cellába, amit másoltam és nem azt ami jó lenne. Ha rámegyek a cellára és nyomok egy entert, akkor utána átjavítja a jó eredményre.
ny.janos
tag
A képletek menüben a számolási beállítások alatt állítsd automatikusra az értéket (minden bizonnyal manuális a beállításod).
ccs2929
senior tag
Köszönöm neked is, és Mutt-nak is. A napokban kipróbálom majd mindegyik megoldást, tudom, hogy a névben, meg az adószámban is lehet eltérés, szóval nem 100%-os az eredmény, de azért így biztosan jóval kisebb lesz a duplikáltak aránya.
Flickr: http://goo.gl/V53ntj Ha korrekt volt az üzlet,akkor várom az értékelést!
qpakcovboy
őstag
Nagyon köszönöm!
szricsi_0917
tag
Sziasztok
Egy kis segítséget szeretnék kérni makróval kapcsolatban. Van egy minta táblázatom aminek az egyik munkalapján két oszlop van az első cikkszámok a mellette lévő pedig azok elnevezése.
A kérdés, hogy van egy mappa amiben nagyon sok excel fájl van de mind azonos felépítésű de csak az egyik munkalapja érdekel. Azt szeretném, hogy minden fájlnak nyissa meg az adott munkalapját majd a minta tábla alapján keresse meg a cikkszámokat és ahol egyezést talál ott írja felül a mellette lévő oszlopban az elnevezést
Agostino
addikt
szia
tökéletes, köszönöm! : ))
hey friend listen, i know the world is scary right now but its gonna get way worse
gepelek
kezdő
Hali!
Azt szeretném kérdezni, hogy lehet azt megoldani, hogy FKERES-el bepörgetni az adatokat egy oszlopba, úgy hogy abban lévő oszlopban ne írja felül ahol érték van.
Köszönöm!
Üdv!
Azt szeretném megoldani hogy ha az A1 cellában 1-es szám van akkor mellé a B1 cellába automatikusan kerüljön beírásra hogy "szép"
Ha az A2 cellában egy 2-es szám szerepel akkor a B2 cellába automatikusan kerüljön bele hogy "csúnya"
Ha az A3 cellában egy 3-as szerepel akkor pedig automatikusan kerüljön a B3 cellába hogy "kedves"
Ezt meg lehet oldani?
[ Szerkesztve ]
20 éve a Prohardveren
Agostino
addikt
B1 cellába: =HA(A1=1;"szép")
B2 cellába: =HA(A2=2;"csúnya")
B3 cellába: =HA(A3=3;"kedves")
?
hey friend listen, i know the world is scary right now but its gonna get way worse
ny.janos
tag
Szia!
Kapcsold be az autoszűrőt és az adott oszlopban csak az üres cellákra szűrj. Írd be a képletet, majd a cella jobb alsó sarkával másold le a táblázat utolsó soráig. Az elrejtett (adatokat tartalmazó) soraidat így nem írod felül.
kopogo
tag
1 kérdés
ezt szeretném írni egy cellába 06-18 hogyan lehet?
így sikerült
.06-18 illetve 06-18, vessző és pont nélkül ?
Megvan szöveg formátum a cellára.
tárgytalan
[ Szerkesztve ]
lappy
őstag
Osszefuzve is lehet a harom ha függvénnyel
Ha(a1="1";szép;ha(a1="2";csúnya;ha(a1="3" ;kedves;" ")
[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
dellfanboy
senior tag
Mutt
aktív tag
Szia,
Az ikonkészlettel nem fog menni, ezt a kerülő megoldást javaslom.
1. Keress egy olyan betűkészletet, amelyben van a neked tetsző pipa és kereszt. pl. a Wingdings betűtípusokban vannak ilyenek.
Én a "HoloLens MDL2 Assets" betűtípust használom, mert abban egyszerűbbek ezek az ikonok.
Egy cellába rakd be a két ikont (Symbol -> Insert), hogy onnan ki tudd másolni, mert sokszor olyan karakterhez vannak ezek rendelve amelyeket billentyűzetről nehéz bevinni.
2. Az adatsorod mellé kell egy segédoszlop, ebben a képlet ennyi:
=IF(vmiadat=0;pipaikon;keresztikon)
3. Most már csak színformázást kell adnod ehhez a tartományhoz.
A példában zöld illetve piros hátteret és fehér betűszínt választottam.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
Mutt
aktív tag
Szia,
Másik megoldás, hogy aposztróffal kezded az adatsort. Az Excel minden ilyen bevitelt szövegként fog kezelni.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
Mutt
aktív tag
Szia,
Nézd meg előbb, hogy Power Query-vel meg tudod-e csinálni a kért feladatot.
Javaslom, hogy a Power Query segítségével "fűzd" össze a sok fájlt és arra már lehet FKERES/VLOOKUP.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
Mutt
aktív tag
Sziasztok,
Érdemes megnézni, pár Excel MVP háziversenyét a Youtube-on.
Mr. Excel inkább a tartalomra (ami nagyon érdekes) ment rá, mint a látványra/megoldásra. A lányok vizuálisan szép megoldásokat adtak, Mike Girvin képletei még mindig ütősek, Oz szerintem gyenge volt. Nálam Jon Acampor volt a legjobb, mert egy interaktív dashboard alapjait mutatta be.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
kutga
nagyúr
Hölgyek/Urak!
Van két excel táblám egyedi tételszámokkal és a hozzájuk kapcsolódó egységárakkal.
Az elsőben referencia árak szerepelnek, a másodikban ugyanezen tételekhez tartozó konkrét árajánlatok. Azt kellene igazolnom, hogy a másodikban szereplő árak azonosak vagy kedvezőbbek az elsőben szereplőnél (a referenciánál).
Elkezdtem egyenként bepötyögni őket de így elég nehézkes. Nincs erre valami automatikus megoldás? Az egyedi tételszámok mindkét táblában azonosak.
Let the Zone take me if I am.
dellfanboy
senior tag
egyedi tetelszamok Fkeres egymas melle, majd kov oszlopban osszehasonlitod a ket arat
@Mutt koszi
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
kutga
nagyúr
Köszi meg is csináltam. Érdekes hogy pár tételnél rossz értéket ad, azokat kézzel javítottam.
Let the Zone take me if I am.
dellfanboy
senior tag
nem kellene rossz erteked adnia. lecsekkoltad 1-2 jonak tuno szamitasnal hogy okes-e? ha igen azt tudom elkepzelni hogy az egyedi azonosito formatuma nem mindig u.a.
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
ny.janos
tag
Ha az FKERES függvény utolsó paramétere HAMIS (vagy 0), akkor nem adhat rossz értéket.
kutga
nagyúr
Lehet. 1-2 tételnél van csak, majd megnézem őket. A többi kb száz darab okés.
Let the Zone take me if I am.
lappy
őstag
Sziasztok!
Olyan segítség kellene nekem hogy van egy munkalap. A munkalapon adatok szerepelnek. Azt szeretném, hogy amikor megnyitom a munkafüzetet akkor kér egy felhasználói nevet és kódot (ebből lenne vagy 30 db). Amikor beüti a kódját akkor az hozzárendeli egy adott sorhoz amiben a neve szerepel és az adatait tudja változtatni. De a többi felhasználó adatait nem látja!
Viszont van egy fejléc (1 sor) amit minden esetben lát.
Bámulatos hol tart már a tudomány!
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 Sub
Ez 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átja
Bámulatos hol tart már a tudomány!
RAiN91
őstag
Sziasztok
Egy munkafüzetben 0:00:00 - 0:30:00-ig vannak idő formátumban adatok. Elvileg másodpercenként, de van hogy ez nem jön össze, ilyenkor hibás a képlet ha hiányzik az adott adat. Példaként hiányzik a 0:04:00 időpont.
Azt szeretném megcsinálni, hogy ha hiányzik (erre van függvényem, tudom, hogy hol hiányzik), akkor az ahhoz legközelebbi időpontot írja át 0:04:00 -ra (. 0:03:59)-et cserélje ki.
Van erre valami egyszerű megoldás, akár VBA-ban?
Köszönöm!
-KP-
addikt
Üdv,
https://data-bass.com/systems
Ezeket az adatokat importáltam be excelbe. Szeretnék 2-3 sort csinálni, amit összehasonlításra használnék. Semmi másra nincs szükségem, csak egy legördülő menüből kiválasztani, melyik sor adatait mutassa, hogy egymás alatt lássak 2-3 típust, mert a 126 sort lehetetlen átlátni egybe. Ezt milyen elemmel, milyen trükkel tudnám megcsinálni?
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 displayed
A 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 Sub
5. 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 Sub
6. 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 Sub
7. A cancel (kilépés) gombnak egyszerű az eseménye, bezárja a formot.
Private Sub btCancel_Click()
Unload Me
End Sub
8. 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 Sub
9. 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 Sub
10. 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 Sub
A 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
Mutt
aktív tag
Szia,
A-oszlopban vannak az eredeti idők, B-ben pedig a lenti képlet a legközelebbi percet fogja visszaadni:=TÖBBSZ.KEREKÍT(A2;1/1440)
MROUND angolul a függvény neve, Az 1/1440 pedig 1 percet jelent (mivel 1 napban 24 óra van és minden órában 60 perc).
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
Mutt
aktív tag
Szia,
Legördülő menüt az Adatok -> Érvényesítés opcióval tudsz csinálni.
Megjelenítésben az INDEX és HOL.VAN páros kell. A HOL.VAN megmondja, hogy a kiválasztott elem hányadik sorban van az eredeti táblázatban és az INDEX pedig egy tartományból a megadott sor és oszlop elemét tudja visszaadni.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
lappy
őstag
Köszönöm
megalkotom, tesztelem és ha vmi nem megy akkor majd keresnélek (ha lehet privátban is- adatok , stb, tartalommal)
Bámulatos hol tart már a tudomány!
-KP-
addikt
köszi, ha lesz időm, akkor majd próbálkozok vele.
mdk01
addikt
Sziasztok, feltételes formázásnál meglehet olyat adni, hogy soronként figyelje a cellákat és szinezzen?
Gondolok itt olyanra hogy, pl.ha B1>0 akkor A1 cella legyen zölddel kitöltött és ez így megy tovább, ha B2>0 akkor A2 legyen zölddek kötöltött.
Ez így megy folyamatosan.
A B oszlopba képlet számolja az összeget, oda nem írnék be semmit. Köszönöm