- Poco X6 Pro - ötös alá
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Csak semmi szimmetria: flegma dizájnnal készül a Nothing Phone (3)
- Mobil flották
- Magisk
- Milyen GPS-t vegyek?
- Samsung Galaxy S24 FE - később
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Garmin Forerunner 970 - fogd a pénzt, és fuss!
- A sógorokhoz érkezik a kompakt Vivo X200 FE
-
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
-
Delila_1
veterán
válasz
ben800 #36530 üzenetére
Gyors kérdésre gyors válasz: nem. A szumhatöbb kritériumai ÉS kapcsolatban vannak egymással.
Felvehetsz egy új oszlopot, ahova VAGY-gyal beteszed a két feltételt, és értéket (0; 1) rendelsz hozzá, majd a szumhatöbb függvénnyel erre az oszlopra hivatkozol.
=ha(vagy(a1=1;a1=2);1;0)
-
Delila_1
veterán
válasz
glocker #36527 üzenetére
Sajnos az Excel alkotói túlságosan segítőkészek, ami sok galibát okoz. Például egy felsoroláshoz beírsz 1.1-et, mire azonnal átalakítja kérdés nélkül 01.jan-ra, mert arra tippel, hogy dátumot szerettél volna megadni.
Azért javasoltam a 0000#-os formátumot, mert bár megadod, hogy bizonyos cellák adatait szövegként értelmezze, ha az a fehérnemű van rajta, mégis számértékként rögzíti.
-
Delila_1
veterán
válasz
m.zmrzlina #36465 üzenetére
Set honnanvegye = Application.InputBox("Jelöld ki a kiinduló területet", "Kiinduló terület", , , , , , 8)
Az utolsó paraméter (type, jelen esetben 8) adja meg, hogy területet vár az inputbox, ezért kell az értékadás elején a Set
Különböző típusú adatok bekérésénél az utolsó paraméter:
Type:=0 képlet
Type:=1 szám
Type:=2 szöveg
Type:=4 logikai, true vagy false
Type:=8 cellahivatkozás (range)
Type:=16 hibaérték, mint #érték
Type:=64 tömb érték (array) -
Delila_1
veterán
válasz
ny.erno #36462 üzenetére
A C2-be írd be a lenti képletet, amiben a saját keresett kifejezéseidet adod meg.
=HAHIBA(SZÖVEG.KERES("zöldség";B2);0)+HAHIBA(SZÖVEG.KERES("fehérje";B2);0)+HAHIBA(SZÖVEG.KERES("gabona";B2);0)+HAHIBA(SZÖVEG.KERES("termesztés";B2);0)+HAHIBA(SZÖVEG.KERES("szántóföld";B2);0)
Az eredmény egy szám lesz. Azokban a sorokban, ahol egyik kifejezés sem található meg, ez a szám nulla lesz. Szűrhetsz a C oszlop alapján.
Gondolom, legalább 2007-es verziót használsz, bár a fájl kiterjesztése xls. A "Szövegből oszlopok" menüpont az előző, 2003-as verzióban még nem állt rendelkezésre, mint ahogy a HAHIBA függvény sem.
-
Delila_1
veterán
válasz
kisgyerek983 #36457 üzenetére
Nincs mit.
-
Delila_1
veterán
válasz
kisgyerek983 #36454 üzenetére
Legutóbb itt volt erről szó.
-
Delila_1
veterán
válasz
lenkei83 #36429 üzenetére
Egyszerűbb összehozni, mint elmesélni.
A lényeg, hogy a szűrt listát átmásolod valahova, és ennek az új tartománynak a címét adod meg szöveges értékként a ComboBox RowSource tulajdonságaként.
-
Delila_1
veterán
válasz
Talala #36426 üzenetére
Ezt egy rövid, laphoz rendelt makróval (lásd a Téma összefoglalót) lehet elérni.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target <> "" Then
Cells(Target.Row, "B") = Date
End If
End SubAz If Target.Column = 1 jelzi a makrónak, hogy az első (A) oszlopba írás esetén írja be a dátumot.
Ha nem a B oszlopba akarod íratni, a Cells(Target.Row, "B") = Date sorban a "B" helyére írd a céloszlop betűjelét. -
Delila_1
veterán
válasz
ben800 #36400 üzenetére
Szia!
Sub adatpotlas()
Dim sor As Long, usor As Long, FN As String
Const utvonal = "F:\Mappa1\" '******** 1 ********
Dim Fotabla As Worksheet, WF As WorksheetFunction, talalt As Variant
Set Fotabla = ActiveWorkbook.Sheets(1) '******** 2 ********
Set WF = Application.WorksheetFunction
FN = Dir(utvonal & "*.xlsx", vbNormal)
Do While FN <> ""
Workbooks.Open Filename:=utvonal & FN
Sheets(1).Activate '******** 3 ********
usor = Cells(Rows.Count, 2).End(xlUp).Row
For sor = 2 To usor
If WF.CountIf(Fotabla.Columns(4), Cells(sor, "B")) > 0 Then
talalt = WF.Match(Cells(sor, 2), Fotabla.Columns(4), 0)
If Cells(sor, "F") > "" Then
Fotabla.Range("H" & talalt) = utvonal & " " & FN '******** 4 ********
Fotabla.Range("I" & talalt) = Cells(sor, "F")
End If
End If
Next
ActiveWorkbook.Close False
FN = Dir()
Loop
End SubAz összesítő füzetben másold egy modulba a makrót.
Csillagos sorok:
1. a saját útvonaladat írd az "F:\Mappa1\" helyére
2. ha az összesítő füzetnek nem az első lapjára kell a kigyűjtés, a zárójelbe a valós sorszámot-, vagy idézőjelek közé a lapnevet írd be Set Fotabla = ActiveWorkbook.Sheets("Munka1")
3. a 2-es pont vonatkozik a megnyitott füzetekre is
4. a H oszlopba most találat esetén a találat mappáját és füzetének a nevét írja. Ehelyett lehet Fotabla.Range("H" & talalt) = "Megvan" -
Delila_1
veterán
-
Delila_1
veterán
-
Delila_1
veterán
válasz
maestro87 #36362 üzenetére
Szomorú.
Készíts kimutatást (pivot), ahol a sorcímkékhez az A, értékekhez a B oszlopot teszed be. Az értékmező beállításoknál az utóbbi minimumra legyen állítva.
Ha szükséges, a kimutatásból FKERES (VLOOKUP) függvénnyel az eredeti táblázat minden sorába beírhatod a min. értéket a C oszlopba.
-
Delila_1
veterán
válasz
tzimash #36335 üzenetére
A laphoz rendelve
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$3" Then CommandButton1_Click
End SubSzerk.:
A lap ScrollArea tulajdonságánál megadhatod a bejárható területet: $B$3:$E$3. Csak a 2 kiemelt cellában tud majd mozogni, mert a lapvédelemnél a zárolt cellák kijelölését nem engedélyezed.
A B3 bevitelnél a jobb-, az E3-nál a bal nyilat használd!
-
Delila_1
veterán
válasz
Pakliman #36324 üzenetére
Feltöltök egy fájlt.
A Warning makróThisWorkbook.Close SaveChanges:=True 'False
sora a 40 mp elteltével menti, és bezárja a füzetet.
Ha azt akarod, hogy felelősségre vonják a delikvenst, írd át, legyen a sorThisWorkbook.Close False
Ekkor mentés nélkül záródik be a füzet.
-
Delila_1
veterán
válasz
Ada Wong #36318 üzenetére
Makróval egyszerűen megoldható.
A ThisWorkbookba ezt tedd:
Private Sub Workbook_Open()
Start
End SubEgy modulba pedig:
Sub Start()
Application.OnTime Now + TimeValue("00:00:40"), "Riado" '*********
End SubSub Riado()
Dim v
Beep
Workbooks("Idozito.xls").Activate
v = MsgBox("Használod a füzetet?", vbYesNo + vbQuestion)
If v = vbNo Then
ActiveWorkbook.Save
ActiveWindow.Close
Else
Start
End If
End SubA csillagokkal jelzett sorban állíthatod be, milyen időközönként kelljen ráklikkelnie a renitens dolgozónak. Most 40 mp-enként kapja a felszólítást.
-
Delila_1
veterán
Szia!
A Beszúrás menüben táblázattá alakítod a naplódat, és ebből készíted a diagramot. Ezzel eléred a rugalmas terület-kezelést.
Mivel a táblázattá alakított tartomány új sorai öröklik a fölöttük lévő sorok formátumait (képleteit, érvényesítéseit), az egyes oszlopokra feltételes formátumot tennék az x érték fölötti (alatti) cellák színezésére.
-
Delila_1
veterán
válasz
jackal79 #36282 üzenetére
Nem bonyolult. Megadod, melyik terület adatait kell törölni, például A2:V6000.
A makró ennyi
Sub Torles()
ActiveSheet.Range("A2:V6000").ClearContents
End Subamit modulba mentesz (lásd a Téma összefoglalót).
Állsz azon a lapon, ahol törölni akarsz, Alt + F8-ra megjelennek a makróid, ahol indítod a Torles nevűt.
-
-
Delila_1
veterán
válasz
föccer #36267 üzenetére
A Kr1:Kr4 (kritériumok) változóknál a helyfoglalásnál nem állítottam be a típust (string, double, boolean, date, stb. lehet)
Az adatokat tartalmazó listát táblázattá alakítottam, a neve Adatok.
Sub Szures()
Dim Kr1, Kr2, Kr3, Kr4
Kr1 = Range("L1"): Kr2 = Range("L2"): Kr3 = Range("L3"): Kr4 = Range("L4")
' Inputboxban is bekérheted a szűrő feltételeket
ActiveSheet.Range("Adatok").AutoFilter Field:=1, Criteria1:=Kr1 'A oszlop szűrése
ActiveSheet.Range("Adatok").AutoFilter Field:=3, Criteria1:=Kr2 'C oszlop szűrése
ActiveSheet.Range("Adatok").AutoFilter Field:=5, Criteria1:=Kr3 'E oszlop szűrése
ActiveSheet.Range("Adatok").AutoFilter Field:=6, Criteria1:=Kr4 'F oszlop szűrése
End SubSub Szuro_Reset()
ActiveSheet.Range("Adatok").AutoFilter Field:=1
ActiveSheet.Range("Adatok").AutoFilter Field:=3
ActiveSheet.Range("Adatok").AutoFilter Field:=5
ActiveSheet.Range("Adatok").AutoFilter Field:=6
' Az ActiveSheet.ShowAllData utasításnál minden adat látszik, de
' a szűrő feltételek megmaradnak. Ekkor a sorazonosítók kék színűek
End SubSub Szurt_Oszlop_Masolasa()
Sheets("Munka2").Columns(1).ClearContents 'előző másolat törlése
Range("B1:B" & Range("B1").End(xlDown).Row).Copy Sheets("Munka2").Range("A1")
End SubSub Rejtett_e()
If Rows(7).Hidden = True Then
MsgBox "Rejtett"
Else
MsgBox "Ne rejtett"
End If
End SubSub Szuro_ki_bekapcs()
Range("A1").Select
ActiveCell.CurrentRegion.AutoFilter
End Sub -
Delila_1
veterán
válasz
jackal79 #36257 üzenetére
A cellák egyesítését engedi az Excel, de nem tudja rendesen kezelni, például az általad írt rendezésnél. Nincs más hátra, meg kell szüntetni az egyesítést, és más módszert találni az adatok átlátható megjelenítéséhez.
Az utolsó módosítást csak makróval lehet figyeltetni, viszont feltételes formázással adhatunk feltűnő formázást, ha dátumokat figyeltetünk. Például az A oszlopban vannak dátumok, és itt kell figyelni, hogy régebbiek-e ezek a mai dátumnál 30 nappal. Ekkor a feltételes formázás képlete
=A1<=MA()-30
amihez feltűnő formázást rendelsz.
-
Delila_1
veterán
válasz
Nixon18 #36247 üzenetére
Lehet, hogy nem erre gondolsz, de azért leírom.
Nem szükséges makróval elintézni, egyszerűen megoldható anélkül is.
A különböző tartományoknak nevet adsz.
Az F2:F3 nálam a "kategóriák" névre hallgat.
Fontos, hogy az allisták azt a nevet kapják, amelyik főlista-beli kategóriába tartoznak. A H2:H8 tartomány neve gyümölcs, a J2:J10-é zöldség. A tartományokat táblázattá alakítottam, így bővítéskor, szűkítéskor az elnevetett tartományok rugalmasan követik a sorok számát.
Az elnevezések nevében nem lehet szóköz, és nem szerepelhet önállóan számjegy.Az első érvényesítés a C2 cellában van, a lista forrása: =kategóriák
A D2-es érvényesítésnél a forrás: =INDIREKT(C2) -
Delila_1
veterán
-
Delila_1
veterán
válasz
kvoaksz #36142 üzenetére
Ráállsz egy cellára, amiben az Alt+Enteres sortörés van.
A szerkesztőlécen a 2. sor elejére lépsz, majd Shift + balra nyíllal kijelölöd az elválasztó karaktert, másolás (Ctrl+C). Látszólag semmi nem történik, nem látszik a kijelölés.
Belépsz a Csere funkcióba. A Keresett szövegnél Ctrl+V-vel beillesztetd azt a bizonyos elválasztó karaktert, a Csere erre rovatba meg adsz egy szóközt. Mehet Az összes cseréje.
-
Delila_1
veterán
válasz
attrax #36118 üzenetére
Az érvényesítésben lévő karakterek méretét az Excel állítja be fixen, nem lehet rajta módosítani.
Volt egy olyan eset itt a fórumon, hogy valaki óriásira állította a lapon a betűk méretét, ehhez képest az érvényesítés szövege eltörpült. A lap nagyítását a kérdező kicsire vette, hogy a hatalmas betűk elférjenek a képernyőn. Az óriás karakterek méretét levettem 10-12-esre, a lap nagyítását normálisra állítottam, így az érvényesítés szövege is olvasható lett.
-
Delila_1
veterán
válasz
szente #36099 üzenetére
Másold modulba (lásd Téma összefoglaló) a lenti makrót.
Sub Mi_Nincs()
Dim sor As Long, usor As Long, sor1 As Long
Dim WSKis As Worksheet, WSNagy As Worksheet
Set WSKis = Sheets("Kisker")
Set WSNagy = Sheets("Nagyker")
usor = WSNagy.Range("A" & Rows.Count).End(xlUp).Row
sor1 = WSKis.Range("A" & Rows.Count).End(xlUp).Row + 1
For sor = 2 To usor
If Application.WorksheetFunction.CountIf(WSKis.Columns(1), _
WSNagy.Cells(sor, 1)) = 0 Then
WSKis.Cells(sor1, "A") = WSNagy.Cells(sor, 1)
WSKis.Cells(sor1, "B") = WSNagy.Cells(sor, 2)
sor1 = sor1 + 1
End If
Next
End Sub -
Delila_1
veterán
válasz
total90 #36093 üzenetére
Készítesz az A oszlopról egy másolatot, ezen alkalmazod az "Ismétlődések eltávolítása" funkciót, majd nagyság szerint rendezed ezt az új oszlopot.
Megismétled a fentieket a B oszloppal is. Ezután egyszerű az összehasonlítás.Vagy feltételes formázást adsz az A oszlopra. A képlet =DARABTELI($B:$B;A1)>0,
a B oszlopra pedig =DARABTELI($A:$A;B1)>0 -
Delila_1
veterán
válasz
Mela Kehes #36053 üzenetére
Törölve.
-
Delila_1
veterán
A belinkelt makrót nem eszi meg az Excel. Helyette
Sub CopyHyperlinks()
Dim Innen As Range, Ide As Range, sor As Integer, ujcim As String
On Error Resume Next
Set Innen = Application.InputBox("Jelöld ki a másolandó területet", "Másolandó terület", , , , , , 8)
If Innen Is Nothing Then Exit Sub
Set Ide = Application.InputBox("Jelöld ki a területet, ahova másolni kell", "Ide kell másolni", , , , , , 8)
If Ide Is Nothing Then Exit Sub
For sor = 1 To Innen.Count
If Innen(sor).Hyperlinks.Count = 1 Then
Ide(sor).Hyperlinks.Add Ide(sor), Innen(sor).Hyperlinks(1).Address
ujcim = Chr(64 + sor) & Chr(64 + sor) & Chr(64 + sor)
Ide(sor).Hyperlinks(1).TextToDisplay = ujcim
End If
Next
End SubAz eredeti makró (Excel VBA-hoz igazítva) azonos a Ctrl-c, Ctrl+V-vel. Az általam írt a másolatnak más megjelenő címet ad.
-
Delila_1
veterán
válasz
Mela Kehes #36055 üzenetére
Folytassuk privátban!
-
Delila_1
veterán
válasz
Mela Kehes #36053 üzenetére
Userformon duplaklikk.
-
Delila_1
veterán
válasz
Mela Kehes #36051 üzenetére
Megnyitod a füzetet, amit belinkeltem. Bekéri a jelszót. Add meg a Pál nevet (ez a legrövidebb
).
A Munka4 lap lesz látható.Most Alt + F11-gyel belépsz a VB szerkesztőbe. Bal oldalon kiválasztod a sárga hátterű UserForm1-et, majd jobb oldalon a Belépés gombon egy duplaklikk bevisz a gomb makrójába. Itt írd át a Case utasításokat. Bővítheted az utasítások számát.
-
Delila_1
veterán
válasz
Mela Kehes #36049 üzenetére
Nem módosul, bármelyik változat jó lesz.
-
Delila_1
veterán
válasz
Mela Kehes #36047 üzenetére
FFeri ötlete alapján jelszavas belépést állítottam össze. [link].
Behíváskor indul a UserForm1. A Jelszo nevű TextBoxba beírt érték alapján láthatóvá teszi azt a lapot, amit a jelszó tulajdonosa láthat, a többit elrejti.
-
Delila_1
veterán
válasz
Mela Kehes #36044 üzenetére
Egy kis makró, amit a ThisWorkbook laphoz rendelsz a VB szerkesztőben, megoldja.
Private Sub Workbook_Open()
Dim lapnev As String, lap As Integer
Select Case Environ("Username")
Case "Jancsi"
lapnev = "Munka1"
Case "Juliska"
lapnev = "Munka2"
Case "Péter"
lapnev = "Munka3"
Case "Pál"
lapnev = "Munka4"
End Select
For lap = 1 To Sheets.Count
Sheets(lap).Visible = xlSheetVisible
Next
For lap = 1 To Sheets.Count
If Sheets(lap).Name <> lapnev Then Sheets(lap).Visible = xlSheetVeryHidden
Next
Application.ScreenUpdating = True
End SubA füzet megnyitásakor automatikusan elindul. Az egyes nevekhez (Case "Jancsi") a valódi felhasználó nevét írd be, ahogy a gépe el van nevezve. A lapnev="Munka1" helyére annak a lapnak a nevét add meg, amit a felhasználó láthat.
-
Delila_1
veterán
válasz
lenkei83 #36029 üzenetére
Az L-M oszlopba írja ki az egyes megnevezésekhez tartozó összegeket.
Sub Kigyujtes()
Dim usor As Long
Columns(1).Copy Range("L1")
usor = Range("L" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("L1:L" & usor).RemoveDuplicates Columns:=1
usor = Range("L" & Rows.Count).End(xlUp).Row
Range("M1:M" & usor) = "=sumif(A:A,L1,B:B)"
End Sub -
Delila_1
veterán
Egy segédoszlopban összefűzöd az egyes cellákat valami elválasztó karakterrel (szóköz, alsó kötőjel), olyan sorrendben, ahogy a rendezést szeretnéd látni. A kép szerint az első az idő, második vagy a gép, vagy a TervAzon. A mutatott adatok szerint bármelyik lehet. Akárhány oszlopod adatait is összefűzheted, majd eszerint rendezd a teljes tartományt.
-
Delila_1
veterán
válasz
Evuska #36021 üzenetére
Az első 3 oszlop zárolása után valószínűleg levédted a lapot.
Rendeld a laphoz a lenti makrót (lásd a Téma összefoglalót).Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Protect Password:="Saját_jelszavad", UserInterfaceOnly:=True
If Target.Column = 4 Then Range(Target.Address).Locked = True
End SubA "Saját_jelszavad" helyére írd be az igazi jelszót.
-
Delila_1
veterán
válasz
Sprite75 #36008 üzenetére
Feltettem egy fájlt.
Az R1 cellában választhatod ki az üzletet, az S1-be írja ki a sofőr nevét.A minta szerint átalakíthatod az S1 képletét a saját igényed szerint.
Szerk.: a B1, E1 ... N1 cellákban a sofőr neve legyen, a többi szöveget szövegdobozba, vagy megjegyzésbe írd.
-
Delila_1
veterán
válasz
PerezT #35996 üzenetére
3 helyen, a csillagozott sorokban kell módosítanod a makrót.
Nálam Munka1 a kiinduló lap neve, és Munka2, ahova átrendezve bemásolja az értékeket.A sorIde = 1: oszlopIde = 1 változók értékei adják meg, hogy a 2. lapon hol kezdődjön a tábla, ami itt az A1-es cella sora, és oszlopa.
Sub transz()
Dim sor As Long, usor As Long, sorIde As Long
Dim oszlop As Integer, uoszlop As Integer, oszlopIde As Integer
Sheets("Munka1").Select '***
uoszlop = Cells(1, Columns.Count).End(xlToLeft).Column
usor = Range("A" & Rows.Count).End(xlUp).Row
sorIde = 1: oszlopIde = 1 '***
With Sheets("Munka2") '***
For oszlop = 2 To uoszlop
For sor = 2 To usor
.Cells(sorIde, oszlopIde) = Cells(1, oszlop)
If Cells(sor, oszlop) > "" Then
.Cells(sorIde, oszlopIde + 1) = Cells(sor, 1)
.Cells(sorIde, oszlopIde + 2) = Cells(sor, oszlop)
sorIde = sorIde + 1
End If
Next
Next
End With
End Sub -
Delila_1
veterán
válasz
PerezT #35994 üzenetére
Arra az esetre, ha az első táblázatod az A1 cellában kezdődik, egy makró gyorsan átmásolja a kívánt formába az adataidat. A makrót modulba kell tenned (lásd a Téma összefoglalóban).
Sub transz()
Dim sor As Long, usor As Long, sorIde As Long
Dim oszlop As Integer, uoszlop As Integer, oszlopIde As Integer
uoszlop = Cells(1, Columns.Count).End(xlToLeft).Column
usor = Range("A" & Rows.Count).End(xlUp).Row
sorIde = 1: oszlopIde = 15
For oszlop = 2 To uoszlop
For sor = 2 To usor
Cells(sorIde, oszlopIde) = Cells(1, oszlop)
If Cells(sor, oszlop) > "" Then
Cells(sorIde, oszlopIde + 1) = Cells(sor, 1)
Cells(sorIde, oszlopIde + 2) = Cells(sor, oszlop)
sorIde = sorIde + 1
End If
Next
Next
End Sub
Új hozzászólás Aktív témák
Hirdetés
- AKCIÓ! Apple MacBook PRO 15" 2018 i9 32GB 500GB 560X 4GB notebook garanciával hibátlan működéssel
- Xbox Game Pass Ultimate kedvező áron, egyenesen a Microsoft-tól! - AUTOMATA BOLT
- Telefon felvásárlás!! Samsung Galaxy A70/Samsung Galaxy A71/Samsung Galaxy A72
- Fujitsu USB Port Replicator PR09 docking station (1x5K vagy 2x4K felbontás) (DisplayLink)
- Turbózd fel géped a jövő RAM-jával!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest