-
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
lizakattila #24793 üzenetére
Az A oszlop feltételes formázásának a képlete
=A1/B1<>INT(A1/B1)
-
Delila_1
veterán
válasz
lazlogogola #24765 üzenetére
A DARAB2 függvény jó a szöveget tartalmazó cellák összeszámolásához.
-
Delila_1
veterán
válasz
zoli1962 #24715 üzenetére
Köszönöm a "rangot".
Két makró kell hozzá. Az elsőt a Munka2 laphoz kell rendelned.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then Beiras Target, Target.Row
End SubA második egy modulban legyen.
Sub Beiras(ertek, sor)
Sheets("Munka1").Range("A1") = ertek
If IsNumeric(Sheets("Munka2").Range("C" & sor - 1)) Then _
Sheets("Munka1").Range("A2") = ertek - Sheets("Munka2").Range("C" & sor - 1)
End Sub -
Delila_1
veterán
válasz
Delila_1 #24693 üzenetére
Az előbbi képletek a kiírást követő hét-, ill. hónap összegeit jelenítik meg.
Ahhoz, hogy a hét-, ill. a hónap utolsó cellájában tüntesse fel a fölötte lévő, H oszlopbeli értékek összegét, a két képletet át kell írni.I4 => =HA(K4<>K5;SZUMHA(K:K;K4;H:H);"")
J4=> =HA(L4<>L5;SZUMHA(L:L;L4;H:H);"") -
Delila_1
veterán
válasz
attilaandor #24673 üzenetére
Szívesen.
-
Delila_1
veterán
-
Delila_1
veterán
válasz
attilaandor #24665 üzenetére
A B28 cella képlete: =szorzatösszeg(E2:E22;F2:F22)
Ha az F oszlopban nem százalék formában lennének az értékek, akkor még az egészet osztani kellene 100-zal.Ez a képlet minden sorban az E oszlop aktuális celláját szorozza az F oszlop aktuális értékével – változó értékű százalékkal –, majd a szorzatokat összegzi.
A D28-é egy egyszerű szum: =szum(E2:E22)
-
Delila_1
veterán
válasz
m.zmrzlina #24651 üzenetére
A munkamappa változó az aktuális könyvtár nevét tartalmazza a lenti első sor után. Megjeleníti a fastruktúrát az aktuális mappából indulva, onnan navigálhatsz máshova.
Set munkamappa = Application.FileDialog(msoFileDialogFolderPicker)
With munkamappa
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
strMunkamappa = .SelectedItems(1)
End WithA következő sorokban a kiválasztott mappa neve az strMunkamappa változóba kerül, erre a mappára váltasz át a mappa kiválasztását követő ChDir strMunkamappa sorral. Innen nyitod meg sorban az xls kiterjesztésű fájlokat.
Az msoFileDialogFolderPicker, mint a neve is mutatja, egy párbeszéd ablak, ahol kedvedre navigálhatsz.
-
Delila_1
veterán
válasz
m.zmrzlina #24647 üzenetére
A munkamappát szövegként szoktam megadni. Utvonal="C:\mm\nn\"
Mikor a TC-ben látsz egy mappát, a dupla pontra kattintva a fölötte lévő mappába jutsz, az egy pont 8az nem látszik, de van), a főkönyvtárba visz.
Az FN egy változó, a fájlnevet olvassa be a megnyitott mappából.
A false letiltja az aktív fájl mentését. Ezt akkor alkalmazzuk, mikor egy mappából rendre behívjuk az ott lévő fájlokat, adatokat nyerünk ki belőlük, majd mentés nélkül bezárjuk őket.
-
Delila_1
veterán
válasz
DrojDtroll #24597 üzenetére
Szivi.
-
Delila_1
veterán
válasz
DrojDtroll #24588 üzenetére
2010-es előtti verzióban nem enged más lapra hivatkozni a feltételes formázás, de egy segédoszloppal meg lehet oldani a színezést.
A Munka2 pl. a G1-ben legyen a képlet =Munka1!A1. Ezt lemásolod, ameddig kell. Ezen a lapon az A1 feltételes formázásának a képlete: =$G1=1, és itt adod meg a színt.
-
Delila_1
veterán
válasz
firemanus82 #24570 üzenetére
Nosza!
-
Delila_1
veterán
válasz
firemanus82 #24568 üzenetére
Azért tettem a txt után alsó kötőjelet.
-
Delila_1
veterán
válasz
firemanus82 #24566 üzenetére
Kijelölöd a szövegdobozt, és a szerkesztőléc bal oldalán lévő mezőbe beírod a rövid nevet, Enter.
-
Delila_1
veterán
válasz
firemanus82 #24564 üzenetére
Örülök neki, szívesen.
-
Delila_1
veterán
válasz
firemanus82 #24559 üzenetére
Két dolgot változtatnék a helyedben. Az első, hogy diagramok helyett szövegdobozokat tennék a második lapra, azokba tölteném fel a képeket. A másik, hogy 2 makróval hajtatnám végre a feladatot (másképp nem megy).
Slashing változatánál maradva a képek nevét a 4. sorba viszem be.Az eseménykezelő makrók csak a saját lapjukon tudnak dolgozni, nem hajlandóak a másik lapon ügyködni. Meg lehet hívni viszont egy nem laphoz rendelt, hanem modulba helyezett másik makrót, átadva annak az értékeket.
Az első lap, amibe a képek nevét viszem be, nálam Munka1 névre hallgat, a másik Munka2-re, a szövegdobozok txt_1, txt_2, ... txt_6 nevűek.
Laphoz:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Row = 4 Then
Kepek Target.Column, Target
Target.Select
End If
Application.ScreenUpdating = True
End SubModulba:
Sub Kepek(oszlop, nev)
Sheets("Munka2").Select
Select Case oszlop
Case 2
ActiveSheet.Shapes("txt_1").Select
Case 3
ActiveSheet.Shapes("txt_2").Select
Case 4
ActiveSheet.Shapes("txt_3").Select
Case 5
ActiveSheet.Shapes("txt_4").Select
Case 6
ActiveSheet.Shapes("txt_5").Select
Case 7
ActiveSheet.Shapes("txt_6").Select
End Select
Selection.ShapeRange.Fill.UserPicture "C:\Almappa\Al_Almappa\" & nev & ".jpg"
Sheets("Munka1").Select
End Sub -
Delila_1
veterán
Másik megoldás a kilistázásra.
J1-től beírod a listázandó mappák útvonalát. Pl. J1-be C:\Főmappa\,
J2-be C:\Főmappa\Almappa1\, J3-be C:\Főmappa\Almappa1\Al-Almappa\, stb.Sub MappaLista()
Dim utvonal As String, sor As Long, FN As String, sorMappa As Integer
sor = 1: sorMappa = 1
Do While Cells(sorMappa, 10) <> ""
utvonal = Cells(sorMappa, 10)
ChDir utvonal
FN = Dir(utvonal)
Do While FN <> ""
Cells(sor, 1) = FN
sor = sor + 1
FN = Dir()
Loop
sorMappa = sorMappa + 1
Loop
End Sub -
Delila_1
veterán
válasz
anonymus89 #24489 üzenetére
A makró a könyvtárból egyenként behívja a másolandó fájlokat, másol a makrót tartalmazó füzetbe, majd bezárja a másoltat mentés nélkül.
A másolás műveletét az előző hozzászólásban m.zmrzlina bemutatta.Sub osszefuzes()
Const utvonal = "C:\Mappa\Almappa\"
ChDir utvonal 'Direktor váltás
FN = Dir(utvonal & "*.xlsx", vbNormal)
Do
If FN <> "." And FN <> ".." Then
'Fájlok megnyitása
Workbooks.Open Filename:=utvonal & FN
'ide jön a másolás
ActiveWindow.Close False 'megnyitott fájl bezárása módosítás nélkül
End If
FN = Dir()
Loop Until FN = ""
End Sub -
Delila_1
veterán
válasz
m.zmrzlina #24458 üzenetére
Törléssel?
-
Delila_1
veterán
válasz
m.zmrzlina #24455 üzenetére
Szerintem töröld a nevet, és újra vidd be.
-
Delila_1
veterán
válasz
dellfanboy #24424 üzenetére
Lépj a VB szerkesztőbe Alt+F11-gyel.
Bal oldalon felül kiválasztod a füzetedet. Ha nincs balra lent Properties ablakod, F4-re bejön.
Fent az első lapodat kiválasztod, a Properties ablakban a Visible tulajdonságát xlSheetVisible módra állítod.
A többi lapnál ugyanígy. -
Delila_1
veterán
válasz
localhostadm #24392 üzenetére
Workbooks.Open Filename:="fájnév kiterjesztéssel"
Ha nem adsz meg útvonalat, akkor abban a mappában keresi a megnyitandó fájlt, amelyik éppen aktív.
-
Delila_1
veterán
válasz
LordVader80 #24339 üzenetére
Eltolás helyett Ofszet-et írj. Az eltolás függvényt a 2010-es verzióban vezették be.
-
Delila_1
veterán
A két füzet és a hozzájuk tartozó lapok nevét a B1:B4 tartományba vittem be szövegként.
Sub másolás()
Dim WBInnen As String, WSInnen As String
Dim WBIde As String, WSIde As String
WBInnen = Range("B1") 'füzet neve kiterjesztéssel
WSInnen = Range("B2") 'lap neve
WBIde = Range("B3") 'füzet neve kiterjesztéssel
WSIde = Range("B4") 'lap neve
Workbooks(WBInnen).Sheets(WSInnen).Range("F1:H20").Copy Workbooks(WBIde).Sheets(WSIde).Range("D1")
End Sub -
Delila_1
veterán
2007-től elég lükén oldották meg. Kijelölöd a formázandó tartományt, ez lesz az érvényesség címe.
Megadod a formátumot. Ezután ha az érvényességen belüli cellán állva behívod a feltételes formázást, azt a képletet mutatja, ami az érvényesség bal felső cellájára vonatkozik.Régebbi verzióban még az adott (aktív) cellára vonatkoztatott képletet látod.
-
Delila_1
veterán
válasz
LordVader80 #24269 üzenetére
Szívesen.
Gyorsan megy a másolásos módszerrel, egy-kettőre bevittem 10 feltételt. -
Delila_1
veterán
válasz
LordVader80 #24264 üzenetére
-
Delila_1
veterán
Makróval gyorsan előállítható.
Sub Periodusok()
Dim sor As Long, sor1 As Long
Munka1.Select
For sor = 1 To Application.WorksheetFunction.CountA(Munka1.Columns(1))
For sor1 = 1 To Application.WorksheetFunction.CountA(Munka2.Columns(1))
If Cells(sor, "A") >= Munka2.Cells(sor1, "A") And Cells(sor, "A") <= Munka2.Cells(sor1, "B") Then
Cells(sor, Cells(sor, Columns.Count).End(xlToLeft).Column + 1) = Munka2.Cells(sor1, "C")
End If
Next
Next
End Sub -
Delila_1
veterán
válasz
Axe Miskolc #24227 üzenetére
Szívesen.
Annyi kiegészítés hozzá, hogy addig másolja a képletet, ameddig a mellette lévő oszlopban bármilyen adatot (akár képletet) talál. Foghíjas oszlop mellett az első üres cella fölötti sorig másol.
-
Delila_1
veterán
válasz
Axe Miskolc #24221 üzenetére
A képletet tartalmazó cella jobb alján lévő kis fekete négyzetre duplán kattintasz, és kész.
-
Delila_1
veterán
válasz
géeles #24217 üzenetére
Lapfülön jobb klikk, Kód megjelenítése.
Már ott is vagy, ahol kell. Bal oldalon látszanak a lapjaid, és az van kijelölve, amelyikhez a makrót akarod rendelni. Jobb oldalon szép nagy üres lap, oda másold be a 3 sort, amit írtam.
Nyomás vissza az Excelbe. Duplaklikk egy cellán, ott az aktuális idő. -
Delila_1
veterán
A Munka1 lapra tettem a ToggleButton1 nevű gombot. A click eseménye szerint változik a b_ ... nevű cella (cellák?) oszlopának a láthatósága, fordítottan, mint ahogy később leírtad, mit szeretnél. A makróban fel kell cserélni a True, ill. a False helyét.
Ha az IGAZ makrót indítod, az csak akkor váltja ki a Click indulását, ha ezzel megváltozik a gomb állapota. Ugyanez vonatkozik a HAMIS makró indítására is.
Itt az lenne a célod, hogy a gomb egyik állapotában az angol szavakat tartalmazó oszlop látsszon, másikban egy másik nyelvé?
-
Delila_1
veterán
Laphoz rendelve a click esemény:
Private Sub ToggleButton1_Click()
If ToggleButton1 Then
Range("b_forditocellak").EntireColumn.Hidden = False
Else
Range("b_forditocellak").EntireColumn.Hidden = True
End If
End SubKét másik, modulba helyezett makró helyettesíti a Te másik makródat.
Sub IGAZ()
Munka1.ToggleButton1 = True
End Sub
Sub HAMIS()
Munka1.ToggleButton1 = False
End SubÍgy nem "csúszik el".
-
Delila_1
veterán
-
Delila_1
veterán
válasz
chris-v #24075 üzenetére
Egy makróval megoldhatod.
Sub Frissites()
ActiveSheet.PivotTables("Kimutatás1").PivotCache.Refresh
End SubEzt a makrót a lapon egy gombhoz rendeled. A Kimutatás1 helyére a saját kimutatásod nevét írd be.
Egy kattintással több, ha a kimutatáson jobb gombbal klikkelsz, frissítés. -
Delila_1
veterán
Próbáld meg a lenti makróval.
Sub Kigyujtes()
Dim sor As Long, WF As WorksheetFunction, uoszlop As Integer
Set WF = Application.WorksheetFunction
Sheets(4).Activate
sor = 1
Do While Cells(sor, 1) <> ""
uoszlop = Cells(sor, Columns.Count).End(xlToLeft).Column + 1
If WF.CountIf(Sheets(1).Columns(1), Cells(sor, 1)) > 0 Then
Cells(sor, uoszlop) = _
WF.VLookup(Cells(sor, 1), Sheets(1).Range("A:B"), 2, 0)
uoszlop = uoszlop + 1
End If
If WF.CountIf(Sheets(2).Columns(1), Cells(sor, 1)) > 0 Then
Cells(sor, uoszlop) = _
WF.VLookup(Cells(sor, 1), Sheets(2).Range("A:B"), 2, 0)
uoszlop = uoszlop + 1
End If
If WF.CountIf(Sheets(3).Columns(1), Cells(sor, 1)) > 0 Then
Cells(sor, uoszlop) = _
WF.VLookup(Cells(sor, 1), Sheets(3).Range("A:B"), 2, 0)
End If
sor = sor + 1
Loop
End Sub -
Delila_1
veterán
válasz
chris-v #24047 üzenetére
Sokkal egyszerűbb, könnyebben kezelhető és jobban átlátható, ha a napokat folyamatosan, egymás alá írod, majd az egészből kimutatást készítesz.
Ahogy a képen látod, az első 4 oszlopot tartománnyá alakítottam (táblázatban állva Ctrl+r, táblázat rovatfejekkel bejelölve), mert a sorok bővülését így a táblázat frissítése figyelembe veszi. Másképp lekérdezéskor módosítanod kellene a kimutatás tartományát.
A kész kimutatásban a dátumok előtti mínusz jelre kattintva a megnevezések eltűnnek, csak a napi bevétel és kiadás összegző sora látszik.
-
Delila_1
veterán
válasz
DrojDtroll #24032 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
DrojDtroll #24027 üzenetére
Megszüntettem az első két sorban az összevonásokat, mert mint sok más helyen, itt is problémát okozott az autoszűrésnél.
A P1 cellában kiválaszthatod, melyik csoport adatait akarod megszámolni. Ennek megfelelően szűri a táblázatodat, az eredményt az R1 cellába írja. Itt a 0 és 9 közötti érték helyett hosszabb számot is írhatsz, mindig eszerint szűr.
Ha beírás helyett törlöd a P1 értékét, a táblázatod minden adata látszik, az R1 az összes adatod darabszámát mutatja.
A fájl makrót tartalmaz, xlsm a kiterjesztése.
-
Delila_1
veterán
Ahol szóköz van, aposztrófok közé kell tenned az egészet.
indirekt("'elérési út'" & ...
Rossz példa, mert az eleresiut éppen egy cellában van, de így talán érthető.
Szóközzel ritkítva a láthatóság kedvéért:" ' elérési út ' "
Egyébként bevett szokás alsó kötjelet használni szóközök helyett, akkor nincs szükség ilyen cifraságokra.
-
Delila_1
veterán
válasz
DrojDtroll #24015 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
DrojDtroll #24011 üzenetére
Feltételes formázás A2-től:
=JOBB($A1;1)=$L$3&""
A képlet végén a dupla idézőjel szöveggé alakítja az L3-ban lévő számot, mert a JOBB függvény eredménye is szöveg típusú.
Az érvényesség tartománya $A: $G.
Új hozzászólás Aktív témák
Hirdetés
- Lenovo S10-2 Intel Atom retró csajszis netbook eladó
- Samsung Galaxy S23, 8/128 GB, Kártyafüggetlen
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Külföldi csomagszállítás Packeta csomagpontokon keresztül!
- Hp Prodesk 600 G3/ G5/ G6 SFF-MT / i5 8-9-10 gen, Hp EliteDesk 800 G4 / Win11- Számla, garancia
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest