-
Fototrend
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
-
deter
aktív tag
Sziasztok!
Egy viszonylag alap kérdésem lenne. Hogyan lehet kurzor megjelenésén módósítani? Hasonló lenne az optimális, mint Total Commandernél az inverz kurzor? Tehát amikor sorok között lépkedek az adott sor, az jelenetősen elkülönüljön a többitől?
üdv_
deter -
huliganboy
addikt
válasz huliganboy #29900 üzenetére
Végül ez lett a megoldás...
Sub ttt()
mappak = Array ' Nálad persze más és más
' lehet egy dir("e:",vbdirectory) a feltöltésben, ha egy mappán belül vannak.
For Each mappa In mappak
Set uj = Workbooks.Add
fajl = Dir(mappa & "*.xls")
celsor = 1
Do While fajl <> ""
Workbooks.Open Filename:=mappa & fajl, ReadOnly:=True
sor = Range("a1").SpecialCells(xlLastCell).Row
If celsor = 1 Then
Range("a1", Range("a1").SpecialCells(xlLastCell)).Copy uj.Sheets(1).Cells(celsor, 1)
celsor = celsor + sor
Else
Range("a2", Range("a1").SpecialCells(xlLastCell)).Copy uj.Sheets(1).Cells(celsor, 1)
celsor = celsor + sor - 1
End If
ActiveWorkbook.Close False
fajl = Dir()
Loop
uj.SaveAs mappa & "eredmeny.xls"
'uj.Close False
Next
MsgBox "Kész"
End SubViszont még ebbe bele kellene aplikálni, hogy a C oszlopban azonos sorokat törölje illetve a megadott oszlopokat is törölje!!
[ Módosította: CoolMan ]
-
m.zmrzlina
senior tag
Egy biztonsági mentés egyik munkalapjához rendeld az alábbi makrót. Ha ilyenre gondoltál akkor tovább lehet gondolni a megoldást. Ha vannak a munkalapon cellaháttér és betűszín beállítások akkor persze bonyolultabb lesz a dolog.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = 2
Cells.Font.ColorIndex = 1
ActiveCell.EntireRow.Interior.ColorIndex = 1
ActiveCell.EntireRow.Font.ColorIndex = 2
End Sub -
m.zmrzlina
senior tag
válasz m.zmrzlina #29903 üzenetére
Egy fokkal talán jobb ez a megoldás:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlNone
Cells.Font.ColorIndex = xlAutomatic
ActiveCell.EntireRow.Interior.ColorIndex = 1
ActiveCell.EntireRow.Font.ColorIndex = 2
End Sub[ Szerkesztve ]
-
Dr V
őstag
Sziasztok!
Segítségre lenne szükségem.
Angol nyelvű 2013asa officeval dolgozom.
Egy táblázatba a műszakok számára kell kijelölnöm véletlenszerűen ellenőrizendő területeket. A területeken 2 és 3 műszakban dolgoznak. Egy terület egy műszakon belül csak egyszer fordulhat elő. Az éjszakás műszak értelem szerűen nem ellenőrizhet olyan területet, ahol éppen nincs termelés. Mindezt véletlen szerűen kell megcsinálnom 1 évre előre. (ha úgy érthetőbb emberekhez kell rendelnem területeket, ami műszakonta 1szer fordulhat elő és a műszakrendet is figyelembe kell venni a leosztáskor)
Ezt hogy lehetne a legegyszerűbben megcsinálni? A RANDBETWEEN+VLOOKUP nem jó, mert egy szám többször is szerepel. -
Kommy
veterán
Sziasztok!
Egy olyan kérdésem lenne, hogy lehetséges e olyat csinálni, hogy van egy cella két számot írok bele és ő átalakítsa a következőre: "szám1 Ft / Szám2 Ft" idézőjelek nélkül.
-
dellfanboy
senior tag
van egy adathalmazom es szeretnem rendezni a sorokat.elso korben rarakom a szurot es datum szerint sorba allitom.
ez ok. viszont masodik lepesben a datum mellett levo tipus szerint is szeretnem rendezni(a datum szerinti sorrend valtozatlan maradasa mellett), ugy hogy a jelenlegi mar sorbaallitott datum mezo nem valtozik. ezt hogy tudom megcsinalni?pl. van egy ilyen halmazom
hetfo automata
kedd manualis
hetfo felautomata
szerda automata
hetfo felautomata
kedd automata
csutortok automata
pentek automatilyet szeretnek
hetfo automata
hetfo felautomata
hetfo manualis
kedd automata
kedd manualis
szerda automata
csutortok automata
pentep automateladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
-
m.zmrzlina
senior tag
válasz dellfanboy #29907 üzenetére
A képen a kétszintű rendezés konfigja látszik. Az első szint Sorrendjénél az Egyéni listát kell választani ahol ki lehet választani a hét napjait. Ha az igazi munkalapodon is ékezetek nélkül szerepelnek a napok akkor előbb létre kell hozni az ékezet nélküli egyéni "hét napjai" listát és azt kell kiválasztani.
-
huliganboy
addikt
Szerintetek ez miért nem működik nekem? Egy oldalon találtam, azt hittem megoldás a problémámra.
Feladat: C oszlop második cellájától a cellákban levő értékeket vizsgálni, és ha van azonos akkor a hozzá tartozó sorokat törölni, egy kivételével!
Sub RemoveDuplicatesCells_EntireRow()
'PURPOSE: Remove the entire row of duplicate cell values within a selected cell range
'SOURCE: www.TheSpreadsheetGuru.com
Dim rng As Range
Dim x As Integer
'Optimize code execution speed
Application.ScreenUpdating = False
'Determine range to look at from user's selection
On Error GoTo InvalidSelection
Set rng = Selection
On Error GoTo 0
'Ask user which column to look at when analyzing duplicates
On Error GoTo InputCancel
x = InputBox("Which column should I look at? (Number only!)", _
"Select A Column", 1)
On Error GoTo 0
'Optimize code execution speed
Application.Calculation = xlCalculationManual
'Remove entire row if duplicate is found
rng.EntireRow.RemoveDuplicates Columns:=x
'Change calculation setting to Automatic
Application.Calculation = xlCalculationAutomatic
Exit Sub
'ERROR HANDLING
InvalidSelection:
MsgBox "You selection is not valid", vbInformation
Exit Sub
InputCancel:
End SubKöszi!
[ Szerkesztve ]
-
DisRespect
csendes tag
Sziasztok!
Segítségre lenne szükségem.
Van egy öröknaptár amibe be kellene raknom a műszak modellem. Tehát az adott napokat a megfelelő szinre kéne színezze a dátumnak megfelelően. Van erre valami képlet/fügvény stb.? Ja hogy ne legyen egyszerű, nem egy átlagos műszak, 6 hetente ismétlődik. -
Delila_1
Topikgazda
válasz huliganboy #29911 üzenetére
Nem tudom, a C oszlopban meghagyandó adat szöveges, vagy szám típusú, ezért mindkettőre rákérdezek.
A makró
Sub Kigyomlal()
Dim sor As Long, usor As Long, marad, eddig As Long
marad = InputBox("Melyik adat maradjon meg a C oszlopban?")
Application.ScreenUpdating = False
usor = Range("C" & Rows.Count).End(xlUp).Row
For sor = usor To 2 Step -1
eddig = Range("C" & Rows.Count).End(xlUp).Row
If Cells(sor, "C") = marad Or Cells(sor, "C") = marad * 1 Then GoTo Tovabb
If Application.WorksheetFunction.CountIf(Range("C2:C" & eddig), Cells(sor, "C")) > 1 Then _
Rows(sor).Delete Shift:=xlUp
Tovabb:
Next
Application.ScreenUpdating = True
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
bara17
tag
Sziasztok!
Magyar Excel 2010-et használok és nem találok olyan függvényt amely kiszámolja a tangens inverzét. Létezik ilyen?
Köszönöm előre is.
-
dellfanboy
senior tag
válasz m.zmrzlina #29908 üzenetére
koszi ez jonak tunik de az angol excelben sehogy se tudom elohivni ezt a menut.. hol talalom?filter -advance tok mas on fel..
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
-
m.zmrzlina
senior tag
válasz dellfanboy #29919 üzenetére
A filter az szűrést jelent, neked rendezés kell. Az angol verzióban talán Sort. A képen bekarikázva az ikonja.
-
dellfanboy
senior tag
válasz m.zmrzlina #29920 üzenetére
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
-
m.zmrzlina
senior tag
válasz dellfanboy #29921 üzenetére
-
firemanus82
senior tag
Sziasztok!
Egy kis segítségre lenne szükségem. Valószínű baromi egyszerű megoldás van rá, csak én nem találom. Tehát abban kérnék segítséget, hogy van egy névsorom. A névsorból ha kiválasztok egy nevet, utána már a többi helyen ne legyen a listába, tehát ne lehessen többször ugyanazt a személyt kiválasztani.
Köszönöm!
LG Optimus Black => LG Optimus 4X HD => LG G2 32Gb => LG G5 Titan => Samsung S8 => Huawei P20 Pro => Huawei P30 Pro => Huawei P40 Pro => Honor Magic 4 Pro=> A tűzoltó nem azért rohan be az égő házba, mert rettenthetetlen, hanem mert az elhivatottsága erősebb a félelménél. John C. Maxwell
-
Dr V
őstag
Eegy kicsit egyszerűbben leírom a problémámat, hátha úgy könnyebben kapok rá megoldást:
Egy listát kell véletlenszerűen értékekhez hozzárendelnem. Ami fontos, h a lisátban szereplő adatok csak 1szer fordulhatnak elő. Ezért nem jó a rand és a randbetween használata, mert ott többször is elő tud fordulni egy szám (eddig próbálkozásaim alapján). -
m.zmrzlina
senior tag
válasz firemanus82 #29923 üzenetére
Mit értesz azon, hogy "kiválasztom"? Hogyan történik a kiválasztás?
-
firemanus82
senior tag
válasz m.zmrzlina #29925 üzenetére
Bocsánat, nem írtam le. Szóval legördülő menűben (adatérvényesítéssel) van a névsor. És abból szeretném kiválasztani az embereket.
LG Optimus Black => LG Optimus 4X HD => LG G2 32Gb => LG G5 Titan => Samsung S8 => Huawei P20 Pro => Huawei P30 Pro => Huawei P40 Pro => Honor Magic 4 Pro=> A tűzoltó nem azért rohan be az égő házba, mert rettenthetetlen, hanem mert az elhivatottsága erősebb a félelménél. John C. Maxwell
-
Fferi50
őstag
válasz firemanus82 #29928 üzenetére
Szia!
Gondolom, akkor a kiválasztott nevet valahova máshova beírod (képlettel v. makróval - ez utóbbi a jobb eset). Az adatérvényesítési listád pedig egy külön tartományban van. Az eredeti listádat másold le egy másik helyre.
Ebben az esetben egy kis makróval, ami a kiválasztáshoz kapcsolódik, kitörölheted a listából a kiválasztott nevet.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$1" Then
Application.EnableEvents = False
Range(Target.Validation.Formula1).Find(what:=Target, LookIn:=xlValues, lookat:=xlWhole).Delete shift:=xlUp
Application.EnableEvents = True
End If
End SubA fenti makró a H1 cellában levő érvényesítés listájából törli a kiválasztott elemet. Ha az érvényesítési listát a következő formában adod meg: =$A$1:$A40 - vagyis a sor száma nem abszolút módon van megadva - akkor az érvényesítési lista tartománya automatikusan módosul, nem marad benne üres sor.
Természetesen a fenti pár sort (3-5) beteheted abba a saját makróba, amelyik a kiválasztott adatot beírja a megfelelő hely(ek)re.
Üdv.
-
Delila_1
Topikgazda
válasz firemanus82 #29923 üzenetére
Az Fferiétől kicsit eltérő megoldást javaslok – nem mintha az övével valami baj lenne, csak minden feladatnak számtalan megoldása lehetséges.
Mivel elég körülményes a leírás, inkább csatolom a füzetet.
2 makró van benne, az elsőt a ThisWorkbook laphoz rendeltem. Ez másolja az eredeti neveket az M oszlopba a K-ból a füzet megnyitásakor. Az M2:Makárhány tartománynak a Nevek nevet adtam. Ez a forrása a beviteli celláknak.
A másik makrót a Munka1 laphoz rendeltem. Mikor valamelyik érvényesítésben (B2, C2, D2) kiválasztasz egy nevet, az M oszlopban lévők közül törli azt.
Ha újra az összes nevet akarod látni az M oszlopban, a ThisWorkbook laphoz rendelt makrót kell indítanod, vagy egyszerűen átmásolod a neveket K2-től az M2-be.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
firemanus82
senior tag
válasz Delila_1 #29931 üzenetére
FFeri és Delila_1 nagyon köszönöm a segítséget! Ma már nem tudom sajnos kipróbálni melyik megoldást alkalmazzam, de nagyon hálás vagyok a segítségetekért!
LG Optimus Black => LG Optimus 4X HD => LG G2 32Gb => LG G5 Titan => Samsung S8 => Huawei P20 Pro => Huawei P30 Pro => Huawei P40 Pro => Honor Magic 4 Pro=> A tűzoltó nem azért rohan be az égő házba, mert rettenthetetlen, hanem mert az elhivatottsága erősebb a félelménél. John C. Maxwell
-
m.zmrzlina
senior tag
Ha jól értem a feladatot van öt terület, mindegyiken öt csoport dolgozik. Egymás munkáját kell leellenőrizniük, sajátjukat nem lehet. Az hogy melyik műszak az most mindegy, egymástól függetlenül lehet kezelni.
Az én táblázatom így néz ki:
A hozzá való makró (magyarázattal) pedig így:
Sub kioszt()
For i = 2 To 52 'a 2.-tól az 52. hétig
For j = 2 To 16 '15 csoportot oszt be
Do
Do
vel_szam = Int(15 * Rnd) + 1 'válasszunk ki egy tetszőleges csoportot
Loop While vel_szam + 1 = j 'de ne az legyen amelyikhez ellenőr csoportot akaronk rendelni (lásd 2. mondat)
If j = 15 And Application.WorksheetFunction.CountIf(Range(Cells(1, i + 2), Cells(j - 1, i + 2)), Cells(16, 3).Value) = 0 Then
'ha a kék_5 nevű csoport még nincs beosztva legkésőbb utolsó előttiként beosztjuk
Cells(j, i + 2).Value = Cells(16, 3).Value
Else
'egyébként véletlenszerűen kapja mindenki a beosztását :-)
Cells(j, i + 2).Value = Cells(vel_szam + 1, 3).Value '
End If
'ha már be van osztva a kiválasztott csoport válasszunk másikat
Loop While Application.WorksheetFunction.CountIf(Range(Cells(1, i + 2), Cells(j - 1, i + 2)), Cells(j, i + 2).Value) = 1
Next
Next
End SubAz a két ronda munkalapfüggvény ott a makróban nem túl elegáns de hirtelen nem jutott jobb az eszembe.
A 6. hét után természetesen még folytatódik a táblázat.
Egy szépséghibája van ennek a megoldásnak, hogy a kék_5-ös csoport a véletlennél egy kicsit nagyobb eséllyel fog a kék_4-es csoporthoz beosztódni ellenőrnek.[ Szerkesztve ]
-
m.zmrzlina
senior tag
válasz m.zmrzlina #29933 üzenetére
helyesbítés: (lejárt a szerk. idő)
a "Ha jól értem a feladatot van öt terület," helyesen
Ha jól értem a feladatot van három terület,
[ Szerkesztve ]
-
dellfanboy
senior tag
akad egy ilyen problemam[problem]
tabla1-bol kellene a vegeredmenyt eloallitanom. idaig ugy oldottam meg hogy elso lepesben leszurtem pp id-ra hogy csak az egyik legyen a tablaba, majd ceg id alapjan kitoltottam a vegeredmeny tablat. a kerdesem hogy van erre tippetek, hogy tudnam automatizalni es bolondbiztossa tenni?
eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei
-
sztanozs
veterán
válasz dellfanboy #29935 üzenetére
Kicsit barbár, de én ezt csinálnám elsőre, makróval:
- Cégnév mezőből kiszűrni az egyedi neveket
- végigiterálni a neveken
-- programozottan leszűrni a táblát a cégre
-- a leszűrt táblából a kívánt részt kikopizni és beilleszteni egy új munkalapraKb ennyi. Ehez még célszerűcsinálni egy template sheet-et és annak a másolatába másolni az eredményt érték szerint.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Fferi50
őstag
válasz dellfanboy #29935 üzenetére
Szia!
A végeredményben nem látom, hogy összegezve lennének az értékek. Ez nem kellene?
Egyébként javaslom a kimutatás készítését - szerintem az megoldja a kérdéseidet.
Üdv.
-
DisRespect
csendes tag
válasz DisRespect #29912 üzenetére
Akkor ezek szerint ti se tudjátok.
-
Fferi50
őstag
válasz DisRespect #29938 üzenetére
Szia!
Talán próbálkozhatnál a feltételes formázással. A hét napjait a Hét.napja (Weekday) függvény adja meg, ezt kell a feltételes formázásba bevinni. Cellák kijelölése képlettel lehetőséget kell választani.
Üdv.
-
Pilács
senior tag
Sziasztok!
Segítéget szeretnék kérni:
Adott egy Excel táblázat, az egyik oszlopát feltöltöm a képek teljel elérési útjával, pl
D:\kepek\a.jpg
D:\kepek\b.jpg
D:\kepek\k.jpg
D:\kepek\e.jpgSzeretném ha a mellette lévő oszlopban ezek a képek meg is jelennének, esetleg a linkek pedig törlődnének.
(A képek linkjei az adott sorhoz tartoznak, nem dobálhatóak be pl névsor szerint)
Milyen megoldás(ok) vannak erre? Bízom benne, hogy van rá megoldás.
Köszönöm!
Ajándék szesznek ne nézd a fokát!
-
Delila_1
Topikgazda
válasz Pilács #29940 üzenetére
Feltételezem, hogy az "egyik oszlop" a C, ez az oszlop tartalmaz címsort, és hogy a képek és az útvonaluk folyamatosan követik egymást, üres sorok nélkül.
A makró a bemásolt képek magasságát a sorok magasságához igazítja, és a méretarányt az eredetihez képest megtartja.
Sub kepek()
Dim sor As Long, usor As Long
usor = Range("C" & Rows.Count).End(xlUp).Row
For sor = 2 To usor
Range("D" & sor).Select
ActiveSheet.Pictures.Insert(Range("C" & sor)).Select
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = Rows(sor).Height
Next
Columns(3).Delete Shift:=xlToLeft
End Sub[ 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.
-
stivi1g
tag
Sziasztok! Teljesen amatőr vagyok a témában..
A következő lenne a gondom. (Excel 2010. hun)
Lére hoztam makrókat, amik billentyű parancsra szöveget ír az adott cellába. Idáig minden rendben is van viszont azt szeretném ha a beírás után a következő cellára ugrana a kijelölés. A makró rögzítés adott cellákat ír bele nekem a kódba.
PL:
----------------------------------------------------------------------------------------------------------------------------------------------------------
Sub minta()
'
' minta Makró
'
' Billentyűparancs: Ctrl+m
'
Range("H34").Select
ActiveCell.FormulaR1C1 = "minta"
Range("H35").Select
End Sub
------------------------------------------------------------------------------------------------------------------------------------------------------------
Ezt már sikerült úgy módosítanom hogy mindig ott maradjon a kijelölés az adott cellán
------------------------------------------------------------------------------------------------------------------------------------------------------------
Sub dolgozik()
'
' Makró7 Makró
'
' Billentyűparancs: Ctrl+d
'
ActiveCell.FormulaR1C1 = "dolgozik"
ActiveCell.Select
End Sub
------------------------------------------------------------------------------------------------------------------------------------------------------------
Tehát a konkrét kérdésem az, hogy mit kell az ActiveCell.select helyére írnom, hogy mindig a következő cella legyen aktív a beírás után?
A válaszokat előre is köszönöm
stivi -
poffsoft
addikt
válasz stivi1g #29944 üzenetére
Igen,
elvileg az (1,0) az egy sorral lejjebbi lenne,
ezért változtasd a számokat nyugodtan, amíg jó nem lesz.[ Szerkesztve ]
-
Delila_1
Topikgazda
-
Fferi50
őstag
válasz DisRespect #29947 üzenetére
-
szabonagyur
félisten
Sziasztok
Alap szintű VB tanulására adnám a fejem, mit javasoltok miből érdemes? Jó lenne olyan ami eléggé részletes, akár példákkal stb, ár nem számít
Eladó: iPhone 13Mini 2 év gari, iPhone 6S 32GB