- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Atomenergiával dübörögnek tovább az Amazon adatközpontok, SMR-ek is jöhetnek
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Az NVIDIA ipari AI-felhőt épít a németeknek, együtt az OpenAI és a Google
- Két új Ryzen közül választhatnak a kézikonzolok
- Steam Deck
- HiFi műszaki szemmel - sztereó hangrendszerek
- Két új Ryzen közül választhatnak a kézikonzolok
- Philips LCD és LED TV-k
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- AMD vs. INTEL vs. NVIDIA
- Milyen billentyűzetet vegyek?
- Fujifilm X
- Házimozi belépő szinten
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
-
PROHARDVER!
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
Delila_1 #22598 üzenetére
Az első kötőjel után a típusnál előfordulhat 9-nél nagyobb érték is, ezért a szám kinyeréséhez írtam egy függvényt, ezt kell alkalmaznod a C oszlopban.
Function Kozepe(cella As String)
Dim kar As Integer, tol As Integer, ig As Integer
tol = InStr(cella, "-") + 1
For kar = tol To Len(cella)
If Mid(cella, kar, 1) = "-" Then
ig = kar
Exit For
End If
Next
Kozepe = Mid(cella, tol, ig - tol)
End FunctionA makrót beviszed a VB szerkesztőbe, utána alkalmazhatod.
C3-ba: =kozepe(A3), és ezt másolhatod. -
foregister
tag
Sajnos, eddig egyik sem adott tökéletes megoldást.
Delila első javaslatában a Típus-1-2 és Típus-3-3 #HIÁNYZIK-ot jelöl ha lehúzom a formulát. Ugyanakkor előtte és utána helyes. Ha nem ismerném az Excelt, akkor meglepődnék
Delila 2. javaslata viszont nem jó nekem mert bár a példában működik, de élesben nagyon vegyesek a termékek nevei, pl. elválasztó vonal sok esetben nincs és nincs közös nevező.
Fferi50 javaslatánál pedig a példa szerint is #ÉRTÉK-et az összes mezőben.
Akkor jól érzékelem, hogy az Excel nem nagyon szeret két irányba keresni?
-
Delila_1
veterán
válasz
foregister #22595 üzenetére
C3-ba
=KÖZÉP(A3;SZÖVEG.KERES("-";A3)+1;1)B3-ba
=INDIREKT("F" & C3+2) -
Fferi50
Topikgazda
válasz
foregister #22595 üzenetére
Szia!
A mintád alapján én a hol.van függvény kereső mátrixát a tipusérték utolsó karakterétől tenném függővé:
=index("F:F";hol.van(A3; Választ(jobb(A3;1);"G:G";"H:H";"I:I";"J:J");0))
Üdv.
-
Delila_1
veterán
válasz
foregister #22595 üzenetére
A 3 cella képlete:
=HA(HOL.VAN(A3;G:G;0)>0;INDEX(F:J;HOL.VAN(A3;G:G;0);1);HA(HOL.VAN(A3;H:H;0)>0;INDEX(F:J;HOL.VAN(A3;H:H;0);1);HA(HOL.VAN(A3;I:I;0)>0;INDEX(F:J;HOL.VAN(A3;I:I;0);1);INDEX(F:J;HOL.VAN(A3;J:J;0);1))))
-
foregister
tag
Sziasztok!
INDEX HOL.VAN funkció érdekelne.
Ha jól vettem észre, akkor ha HOL.VAN-nal keresek egy értéket, akkor vagy sorban vagy oszlopban tudok keresni egyszerre a kettőben (mátrixban) nem.
Hogy picit érthetőbben fogalmazzak, mutatok egy táblát:
https://docs.google.com/spreadsheets/d/1LT5u44Ux4dqgEmbPQxtg2swdaz0-st7oIzbdftLLlf0/edit?usp=sharingItt a B oszlopban lévő sárga részekbe akarom megtalálni egy termék azonosítóját, amelyhez a típusok a G-J oszlopokban vannak.
Mi a helyes formula?
Köszönöm előre is!
-
Fferi50
Topikgazda
válasz
maugly #22591 üzenetére
Szia!
Ha saját magad kreálod a filet, olyan elválasztó karaktert teszel bele, amilyet szeretnél.
Ez egy kicsit bonyolultabb annál, hogy itt kapásból leírjam, de azért gyorsan megoldható.
A direkt fájlkezelési eszközöket (open, put,print ) kell használnod.Ha felteszel egy mintát, szívesen írok hozzá egy példát.
Üdv.
-
Fferi50
Topikgazda
válasz
PistiSan #22592 üzenetére
Szia!
Kicsit keresgélj az excel helpben a többdimenziós hivatkozásokra:
='C:\Utvonal\[Munkafüzetnév]Munka3'!$D$2A fentiek szerint kell a képletet összeállítani.
Próbáld úgy, hogy először egymás mellett nyitva van a két munkafüzet és létrehozod a hivatkozást.
Utána, ha bezárod a forrás fájlt, akkor megláthatod a teljes névvel való hivatkozást.
Üdv.
-
maugly
csendes tag
Sziasztok!
Adatokat kell exportálnom Excel 2010-ből csv-be makró segítségével, nem a megszokott elválasztó karakterekkel.
Tudom, hogy a Vezérlőpult/Terület és nyelv beállításaival átlőhetem az elválasztókat, működő megoldás, viszont a felhasználóknak csak ezt az egy, naponta újragenerált adathalmazt kell ebben a formátumban csv-be menteni, a többit a szokott módon pontosvesszővel, egyebekkel (..és az nem igazán segítség, hogy az eddig "kézzel" kicserélős módszer helyett egyfolytában elválasztókat állítgassanak).
Van lehetőség makrón belül deklarálni saját elválasztó karaktereket? Az eddig guglizott eredmények alapján nem jutottam sokra, bízom benne, hogy erre is tudtok megoldást.
Köszönöm!
-
Fferi50
Topikgazda
válasz
PistiSan #22587 üzenetére
Szia!
Szerintem külső hivatkozást direktbe nem tud lenyíló listába tenni.
Viszont azzal megpróbálkozhatsz, hogy a listád elemeit veszed a külső hivatkozásból.Erre gondolok: A1 képlete =külsőhivatkozás cella1
A2 képlete =külsőhivatkozás cella2A lenyíló lista forrása: =munkalap! A1:A2
Ennek szerintem működnie kellene.
Üdv.
-
Fferi50
Topikgazda
válasz
littleNorbi #22586 üzenetére
Szia!
De, működik, csak légy szíves a cella formátumot dátumra állítani!
Üdv.
-
littleNorbi
aktív tag
válasz
littleNorbi #22586 üzenetére
Megoldva. Köszönöm!
-
PistiSan
addikt
Sziasztok!
Excel 2010-ben van az Adat/Érvényesítés, itt készítettem egy lenyíló listát egy másik lapfülön található adatokból.
Meg lehet valahogy oldani, hogy a lenyíló listát ne egy másik lapból vegye, hanem egy külső munkafüzetből? -
Fferi50
Topikgazda
válasz
littleNorbi #22581 üzenetére
Szia!
Itt a képlet:
=FKERES(Sheet2!A2;Sheet1!$A$2:$B$10;2;0)
Az előbb rossz helyre válaszoltam.
Üdv.
-
slashing
senior tag
válasz
littleNorbi #22580 üzenetére
"Az FKERES függvény egy táblázat balszélső oszlopában keres, és az oszlop_szám-mal megadott oszlop azonos sorából tér vissza egy értékkel"
Így!
Azért mondtam hogy ehhez kéne ismerni a felépítést mert ha neked pl. a főlapon a dátum a nevek előtt van akkor nem lesz jó....
=fkeres(keresési érték = név ; tábla ahonnan az adatokat akarod kikeresni tehá a főlap adatai ; oszlop = annak az oszlopnak a száma ahonnan a dátumot akarod megjeleníteni(az előbb kijelölt táblázatból) ; igaz vagy hamis ez már egyértelmű lesz )
-
Fferi50
Topikgazda
válasz
littleNorbi #22577 üzenetére
Szia!
Képlettel fkeres lehet a barátod, DE ehhez kell egy "főlap" és mindehol erre kell a képletnek hivatkoznia.
Úgy képzelem, hogy a főlapon van egy oszlop, ahol a dolgozók nevei vannak (és az azonosítójuk is még egy másik oszlopban) , mellettük levő oszlopban pedig a belépés dátuma. Ide beírod a változást.A többi lapon a képlet:
=fkeres( dolgozó név; főlapon levő tartomány; 2; 0)Az oszlopszám (2) attól függ, hogy csak név alapján keresel, vagy azonosító alapján és az van az A oszlopban, Ez utóbbi esetben az oszlopszám 3.
Pl: = fkeres( A2;főlap!A1
120;2;0)
Ezt a képletet minden egyes lapon a kívánt oszlopon "végighúzod".
Ha a főlapon megváltozik a dátum, ezzel együtt minden másik lapon is megváltozik.
VISZONT: Sehol máshol ne változtass dátumot, mert az nem hat más lapokra, sőt a képlet is elvész abban a cellában.
Üdv.
-
slashing
senior tag
válasz
littleNorbi #22577 üzenetére
hát a bármelyik sheetben az egyszerű képlettel biztos nem fog menni, viszont ha erre csak a fő lapot használod akkor csak egy egyszerű cellahivatkozás kell a többi sheetbe.
Pl. sheet2-nél beírod a dátum oszlopba : =főlap!A1 (már ha az a1-ben dátum van) csak ha már van 200 dolgozó akkor ez kicsit macerás lesz használhatod még az fkeres függvényt is de ehhez meg tudni kéne a lap/lapok felépítését mert nem biztos hogy használható.
-
littleNorbi
aktív tag
Sziasztok! Adott egy excel táblázat amiben a munkások szerepelnek és több sheet-ből áll. Minden sheet-ben ugyanazok a munkások szerepelnek csak más sorrendben vannak rendezve. Szeretnék egy egységes oszlopot létrehozni, amiben az a dátum szerepel mikor a munkások elkezdtek dolgozni. Szóval ha bármelyik sheet-ben (vagy akár csak a "főben") kijavítom a dátumot akkor mindenhol megváltozzon.Hogy lehetne ezt megoldani? Előre is köszönöm!
-
Fferi50
Topikgazda
Szia!
Vagy csinálsz egy Userformot arra egy Textboxot és abban bekéred a jelszót a mentés máskénthez, itt azt is meg tudod oldani, hogy a beütött jelszót ne írja ki. (Passwordchar property).
vagy van az Application.Inputbox metódus vagy az Inputbox függvény - mind a a kettő használható - és ott bekéred a jelszót, ha megfelel, akkor megy tovább a mentés másként, ha nem, megszakítod. Itt nem tudod a jelszót más karakterekkel megjeleníteni.
Az inputbox-ról a help segít.
Üdv.
-
mh197
őstag
A mentés másként funkció használatát akarom jelszóhoz kötni.
Most az alábbi kód van:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
MsgBox "A 'mentés másként' funkció NEM HASZNÁLHATÓ!!!"
MsgBox "A táblázat NEM KERÜLT MENTÉSRE! Mentse ISMÉT a 'mentés' gombbal!!!", vbInformation
Cancel = True
End IfEz ugye kompletten tiltja a mentés másként használatát. Mivel lehetne megadni, hogy jelszót kérjen a mentés másként funkciónál? A sima mentés mehet jelszó nélkül, csak a mentés másként lenne jelszóhoz kötött.
-
botond187
csendes tag
-
Fferi50
Topikgazda
válasz
botond187 #22569 üzenetére
Szia!
Csinálsz egy táblázatot, amely a hozzárendeléseket tartalmazza:
Yoszlop Z oszlop
030502 130
010905 167
........ ......
stb. stb.Amelyik oszlopba a tipust akarod tenni, abban az oszlopban fkeres képletet használhatsz:
Ha mondjuk a példádnál maradunk, akkor a képlet:
a cikkszám az A oszlopban van, a képletet teheted a B oszlopba:
=fkeres(közép(A1;3;6);Y1:Z20;2;0)Az Y1:Z20 az a tartomány, amelybe a megfeleltetési táblázatot beírtad.
Üdv.
-
-
botond187
csendes tag
Sziasztok.
Arra keresek képletet, hogy adva lenne egy oszlopban termékeknek a cikkszámai. Egy másik oszlopba úgy szeretnék számokat létrehozni(1,2,3 jegyű), hogy a termékcikkszámból olvassa ki és rendelje hozzá az általam megadott számot. A cikkszám első 8 számjegyből kéne kiolvasni. A cikkszám mondjuk úgy lenne kialakítva, hogy így kezdene: A- majd ezután lenne egy 3-szor 2-jegyű számsor (amik kategóriák megkülönböztetése miatt van), majd ezután lenne még karakterek.
Tehát mondjuk a cikkszám A-030502ytg25sfh, akkor rendelje a 030502-höz a 130-at.
Ha a cikkszám A-010905gjb4ghk67g, akkor rendelje a 010905-höz a 167-et.
Stb stb. -
Bobrooney
senior tag
-
Bobrooney
senior tag
Skacok logolnom kéne egy doksi munkamenetét, ha esetleg valaki törölt ki sorokat stb..
Ezt hogy lehetne valami élhető és tartható formában megcsinálni?
Köszönöm előre is! -
vamzi
senior tag
Sziasztok,
Erőforrás problémával küszködök. A megoldandó problémám a következő:
Történet tábla:
A:A Rendszám
B:B Utazás dátuma
C:C Nyitókilométer
D:D Zárókilométer
Fő tábla:
A:A rendszám
B:B a rendszámhoz tartozó havi zárókilométert írja ki(gyakorlatilag havi lebontásban nézve a legnagyobb zárókilométert keresem)
C1 Itt adom meg, hogy melyik hónap érdekel.
Segéd tábla:
A vlookup innen tudja, hogy a szövegesen megadott hónap számosítva mi (pl január - 01)Ez így működik is. Pontosan működött, míg csak ~10 utazás szerepelt a táblázatban. Mióta ráeresztettem a teljes táblát, azóta azt írja ki, hogy kevés az erőforrás. Tömbösített formulát írtam rá vlookupokkal és iffekkel:
{=IF($D$1<>"Hónapvégi km";VLOOKUP(VLOOKUP($D$1;Segédtábla!$A:$B;2;0);IF(Történet!$A:$A='Fő tábla'!A2;Történet!D:H);5;1);"")}
Hogyan tudnám tovább egyszerűsíteni, hogy az excel is kibírja számolni?
Köszönöm.
-
-
Delila_1
veterán
válasz
slashing #22563 üzenetére
Így hirtelen ránézésre az end with fölötti sorban
Workbooks(WBN).Sheets(WS).Cells(6, usor). ...
helyett
Workbooks(WBN).Sheets(WS).Cells(6, uoszlop). ...
kell.Miért emlékeznék?
Még annyit tehetsz bele, hogy az uoszlop megadása után betehetsz egy feltételt.
if uoszlop<4 then uoszlop=4
Ez azt teszi, hogy ha a 6. sorban nincs adat, akkor a D lesz az első oszlop, ahova másolsz. -
slashing
senior tag
válasz
Delila_1 #22562 üzenetére
Bocsi
nem voltam teljesen pontos a kijelölésig okés a dolog azzal abszolút nem kell foglalkozni csak a beillesztésen megy a variálás
usor = Workbooks(WBN).Sheets(WS).Cells(1 & Columns.Count).End(xlToLeft).Column + 1
selectRange.Copy
Workbooks(WBN).Sheets(WS).Cells(6, usor).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=FalseA kódod sokat segített
annyi volt a hibám hogy a félkövér résznél & jelet használtam de átírva vesszőre már faszán egymás mellé kerülnek az adatok. most már csak annyi van hogy a B6-nál kezdi berakni az adatokat szóval el kéne tolni a D6-ig valahogy
A teljes kód itt van, tuti emlékszel rá mindig abból a könyvtárból húzza be az adatokat ami a lap neve. Jelen esetben a B4:B tartományból szedi ki az adatokat és kerülnek át
Sub XLSX()
Dim Filename, Pathname As String, WBN As String, WS As String
Dim wb As Workbook
Application.ScreenUpdating = False
WBN = ActiveWorkbook.Name
WS = ActiveSheet.Name
Pathname = "C:\bosch\" & WS & "\"
Filename = Dir(Pathname & "*.txt")
Do While Filename <> ""
Set wb = Workbooks.Open(Pathname & Filename)
DoWork wb, WBN, WS
Application.CutCopyMode = False
wb.Close SaveChanges:=False
Filename = Dir()
Loop
Application.ScreenUpdating = True
End Sub
Sub DoWork(wb As Workbook, WBN, WS)
Dim usor As Long, cell As Range, selectRange As Range, WS2 As String
WS2 = ActiveSheet.Name
With wb
Dim cserelendo, b As Integer
'Kötőjellel elválasztva add meg a törlendő szavakat
cserelendo = Split("Tol*-Date*-Time*-File*-Lot*-No*-Distance(point-to-line)-'*-Actual-Nominal-Upper-Lower-Error-Judge-Pass-L", "-")
'a ciklus hosszának egyel kevesebbnek kell lennie mint a cserélendó szavak mivel a nullát is feltölti
For b = 0 To 17
Cells.Replace What:=cserelendo(b), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next
'itt adod meg melyik oszlopból vegye az adatokat, ha az első Range oszlopa nem egyzik a következő Range tartományával akkor ott fogja kijelölni ahol keresztezi egymást a kettő
usor = .Sheets(WS2).Range("B" & Rows.Count).End(xlUp).Row
For Each cell In .Sheets(1).Range("B4:B" & usor)
If (cell.Value <> "") Then
If selectRange Is Nothing Then
Set selectRange = cell
Else
Set selectRange = Union(cell, selectRange)
End If
End If
Next cell
'Itt adod meg melyik oszlopba pakolja az adatokat a Transpose True miatt lesz átfordítva oszlopból sorra
usor = Workbooks(WBN).Sheets(WS).Cells(1 & Columns.Count).End(xlToLeft).Column + 1
selectRange.Copy
Workbooks(WBN).Sheets(WS).Cells(6, usor).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
End Sub -
Delila_1
veterán
válasz
slashing #22561 üzenetére
Nem írtad, csak feltételezem, hogy a másolandó adatok a D6 cellától lefelé helyezkednek el.
Sub nn()
Dim Innen As Worksheet, Ide As Worksheet, usorInnen As Long, oszlopIde
Set Innen = Workbooks("Innen.xls").Sheets("ErrolALaprol")
Set Ide = Workbooks("Ide.xls").Sheets("ErreALapra")
usorInnen = Innen.Range("D" & Rows.Count).End(xlUp).Row + 1
oszlopIde = Ide.Cells(6, Columns.Count).End(xlToLeft).Column + 1
Innen.Range("D6:D" & usorInnen).Copy Ide.Cells(6, oszlopIde)
End Sub -
slashing
senior tag
Nah még mindig én és az én adatbehúzos makróm
usor = Workbooks(WBN).Sheets(WS).Range("D" & Rows.Count).End(xlUp).Row + 1
selectRange.Copy
Workbooks(WBN).Sheets(WS).Range("D" & usor).PasteSpecial Paste:=xlPasteAll, Transpose:=True
End With
End SubA makró ezen része rakja a kimásolt adatokat mindig az adott oszlop(D) utolsó üres sorába és mivel a kimásolt adatok oszlopban vannak ezért átforgatja a transpose egy sorba. Tehát 1fájl oszlop adata egy sorba kerül.
Most szeretnék egy olyan variációt is ami nem forgatja el szóval az a rész kiesik majd és 1 fájl adata 1 oszlopa kerüljön a következő fájl adat a következő oszlopa. Nekem ez most úgy néz ki hogy a D6 az első cella amibe raknia kell majd az első fájl adatait.
Azt vágom hogy a range-eket át kell írni cell-re a row-okat column-ra és a transpose-t false-ra meg az xlup-ot xltoleft-re vagy right-ra
de valamiért nem úgy fut ahogy kéne neki. Talán az usor kavar be de azzal már nem tudom mit kéne kezdenem.
-
Fferi50
Topikgazda
válasz
Bobrooney #22548 üzenetére
Szia!
Makróba foglalva így nézne ki:
sub egyedi()
Dim usor as Long, tomb()
usor = Range("F" & Rows.Count).End(xlUp).Row
Range("F1:F" & usor).copy range("Z1")
Application.DisplayAlerts=False
Range("Z1:Z" & usor).RemoveDuplicates Columns:=1, Header:=xlYes
Application.DisplayAlerts=True
tomb = Application.Transpose(Range("Z2:Z" & usor))Üdv.
-
Delila_1
veterán
válasz
Szilard7 #22556 üzenetére
Nézd meg az automatikus javítás funkciót. 1-2 betű beírását követően átírja a cella tartalmát akár egy bekezdésnyi szövegre, amit megadsz neki.
2007-es verzió (súgó)
Kattintson a Microsoft Office gombra, majd Az Excel beállításai gombra.
Kattintson a Nyelvi ellenőrzés kategóriára.
Kattintson az Automatikus javítási beállítások gombra.
Az Automatikus javítás lapon ellenőrizze, hogy a Szöveg változtatása beíráskor jelölőnégyzet be van-e jelölve.
A Módosítandó mezőbe írja be a gyakran tévesen vagy helytelenül írt szót vagy kifejezést (például álapot).
A Jó szöveg mezőbe írja be helyesen a szót (például állapot).
Kattintson a Hozzáadás gombra.Régebbi verzióban Eszközök | Automatikus javítási beállítások
(#22557) slashing: Igen.
-
slashing
senior tag
-
Szilard7
csendes tag
Sziasztok!
Létezik valami beállítás arra a funkcióra, ami az előzőleg beírt mondatokat, szavakat megjegyzi, és később, mielőtt már elkezdem pötyögni beírja nekem? Tehát ez néha működik igen jól, néha mintha lustácskább lenne, vagy egyszerűen nem segít nekem.
Köszönöm!
-
Delila_1
veterán
válasz
slashing #22554 üzenetére
Most 3 törlendő adatot tettem a tömbbe, a nulladik helytől a másodikig, ezért a ciklus 0-tól 2-ig fut.
Lehet, nem a Te érdemed a cserélős makró, de hogy megtaláltad, feltétlenül az. Mindig csodálom azokat, akik ki tudnak keresni valamit a neten, nekem ez egyáltalán nem megy.
-
Delila_1
veterán
válasz
slashing #22551 üzenetére
Dim cserelendo, b as Integer
cserelendo = Split("TIME-DISTANCE-Nominal", "-")
For b = 0 To 2
Cells.Replace What:=cserelendo(b), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
NextA cserelendo egy tömb, amibe a Split-tel beteszed a törlendő adatokat.
A ciklus 1-gyel kevesebb értékig fusson, mint ahány törlendő értéked van, mert a tömb nullától töltődik fel. -
slashing
senior tag
Van egy makróm ami adott könyvtáron belüli fájlokból kigyűjti az adott oszlopban található adatokat viszont kellett bele raknom olyat hogy bizonyos szövegeket előtte töröljön hogy azokat ne gyűjtse ki. Ez így néz ki jelenleg(makrórögzítéssel csináltam majd raktam bele)
Cells.Replace What:="TIME*", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="DISTANCE(Point", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="Nominal", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=FalseLehet ezt valahogy egy kicsit szépíteni? ne adj isten könnyebben bővíthetővé tenni hogy ha esetleg egy új szöveget kéne kitörölni. Plusz adalék mielőtt azt gondolnátok hogy egy megvizsgálom hogy szöveg-e és akkor törölje az nem fog működni mert txt-ből gyűjti ki az adatokat így nem tudja megkülönböztetni mi szöveg és mi érték!
(#22550) Delila_1 : úgy találtam én is nem az én érdemem sajnos. Érdekes hogy nagyjából érteni értem egyes makrók mit miért csinálnak és az miért úgy de ha nekiállok akkor legfeljebb az első sorig jutok hogy mi legyen a neve
pl. amit írtál azt is megértem hogy azért csináltad hogy ne vizsgálja kétszer ugyanazt egyszer erre egyszer arra ha meg lehet oldani egyből úgy hogy nem egyenlő
-
Fferi50
Topikgazda
válasz
Bobrooney #22542 üzenetére
Szia!
Excel 2007-től működik az adatok ismétlődések eltávolítása.
Ennek felhasználásával:
Átmásolod az eredeti listádat egy új helyre - ahonnan majd használni szeretnéd.
Utána az új helyen adatok - ismétlődések eltávolítása menüpont használata.
Makróban pl.
ActiveSheet.Range.("Y11200").RemoveDuplicates columns:=1 header:=xlYes vagy xlNo attól függően, hogy van-e fejléc.
Előtte pedig Application.DisplayAlerts=False
Utána: Application.DisplayAlerts=True
Ez a két sor arra kell, hogy ne "üzengessen", hány adatot távolított el.Üdv.
-
Delila_1
veterán
válasz
Bobrooney #22545 üzenetére
Szívesen. Az
usor = Range("Z" & Rows.Count).End(xlUp).Row
tomb = Application.Transpose(Range("Z2:Z" & usor))
MsgBox tomb(3)rész helyett betehetsz egy rendezést, és egy névadást. A névadásból hagyd ki a Z1 cellát, az hivatalból az oszlop címe. Az érvényesítésnél a nevet adhatod meg forrásként.
Ha eleve ofszettel adod meg a nevet a Z adatainak, a makróban csak rendezni kell az adatokat a szűrés után.
-
-
Delila_1
veterán
válasz
Bobrooney #22542 üzenetére
Ha jól látom, az F oszlopból akarod kinyerni az egyedi értékeket. Erre jó a speciális szűrő, amit makróval is előállíthatsz.
A lenti pár sor a Z oszlopba ír, címsorral együtt, majd a kinyert adatokat a tomb nevű tömbbe rakja. A végén kiírja a tomb() harmadik értékét, próbaként.Sub TombbeEgyedi()
Dim usor As Long, tomb()
usor = Range("F" & Rows.Count).End(xlUp).Row
Range("F1:F" & usor).AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Range("Z1"), Unique:=True
usor = Range("Z" & Rows.Count).End(xlUp).Row
tomb = Application.Transpose(Range("Z2:Z" & usor))
MsgBox tomb(3)
End SubMikor betöltötted a tomb()-be az adatokat, megadhatod a makróban a további felhasználásra az utasításokat. Ehhez már nincs szükség a Z oszlopra, törölheted.
Szerk.:
Közben kibővítetted a kérdést. Valószínű, hogy érvényesítéshez kellenek az egyedi értékek. A Z oszlopból megadhatod a tartományt. -
Bobrooney
senior tag
válasz
Delila_1 #22537 üzenetére
Nem, simán ha rámész a szűrőre, minden a hozzá tartozó adatot csak egyszer jelenít meg.
Erre a listára gondoltam: // Remélem most jó lesz a kép
Nem kell semmi speckó szűrés, csak a lista kiválasztható adataira lenne szükségem.
Meg elehetne oldani ilyen olyan kereséssel és több ciklusos hasonlítással, ezt szeretném elkerülni. -
Delila_1
veterán
válasz
samfishR #22536 üzenetére
Vegyél fel egy segédtáblát, ahol megadod, melyik betűnél hány karaktert mutasson az A oszlop adataiból. Nálam ez az F:G tartomány.
A B1 cella képletét látod a szerkesztőlécen.Bobrooney
Nem jött össze a kép csatolása. Valószínűleg az irányított, újabb verziókban speciális szűrésre gondolsz.
-
samfishR
senior tag
válasz
samfishR #22526 üzenetére
Sziasztok, ehhez a kérdésemhez kapcsolódik egy újabb:
a bal oldali oszlopban mindig ezek közül az értékek közül van megadva 1-1:
C4500
E1100
E1170
E1180
E1190
E2000
F1100
F1112
F1900
G2112
G2300
H3212
K1100
K3310
L4910
P229
Q5400
Q6240
R1100
R3400
R3600
R3800
W4900A melette jobbra lévő oszlopba már nem elég csak az első 2 karakter (pl E1, G2), hanem úgy kellene, hogy ha egy konkrét betűvel, pl E-vel kezdődik az adott cella, akkor a mellette lévőbe csak az E betűt írja be, míg egy másiknál, pl az R1100 esetében kellene mind a 2 első karakter, pl az lenne R1..... Remélem érthetően írtam le
-
Bobrooney
senior tag
Sziasztok!
Egy szűrő adatait hogy tudom kinyerni programgkódba (akár 1 tömbe), úgy hogy az adatok csak egyszer szerepeljenek? Gondolom a szűrőt kell babrálni de, még nem jöttem rá.
Csatoltam egy képet: -
slashing
senior tag
találtam egy ilyet:
de csak 1 cellával működik viszont úgy néz ki hogy mindegy melyik két kijelölt cellán futtatod a makrót. Swap cell kulcsszóval keresgélj hátha van jobb isSub Swap2Values()
Dim Value1 As Range, Value2 As Range
Dim TempValue1 As String, TempValue2 As String
If Selection.Cells.Count > 2 Or Selection.Cells.Count < 2 Then
MsgBox "Please select only 2 cells. For other options check back soon!"
End
End If
If Selection.Areas.Count > 1 Then
Set Value1 = Selection.Areas(1).Cells(1, 1)
Set Value2 = Selection.Areas(2).Cells(1, 1)
ElseIf Selection.Rows.Count > Selection.Columns.Count Then
Set Value1 = Selection.Range("A1")
Set Value2 = Selection.Range("A2")
Else
Set Value1 = Selection.Range("A1")
Set Value2 = Selection.Range("B1")
End If
TempValue1 = Value1
TempValue2 = Value2
Value1 = TempValue2
Value2 = TempValue1
End Sub -
mdk01
addikt
Olyat lehet csinálni hogy kijelölök két cellát és azt mondom cserélje fel a tartalmukat?
Köszönöm -
Fferi50
Topikgazda
válasz
samfishR #22530 üzenetére
Szia!
Ezt többféleképpen is elkerülheted:
1. megvizsgálod, hogy az osztó 0-e, ha igen, akkor nem osztasz, hanem beírod a 0 értéket: pl.
=ha(A2=0;0;A1/A2)
2. használod a hahiba függvényt (Excel 2010 -től): =hahiba(A1/A2;0)
3. ha még nincs, akkor a ha és a hibás függvény kombinálása: =ha(hibás(A1/A2);0;A1/A2)Üdv.
-
samfishR
senior tag
Sziasztok!
Újabb kérdéssel fordulok Hozzátok. Hogy lehet azt kikapcsolni, hogy ahol 0-val osztok ne legyen a cellában #ZÉRÓOSZTÓ ? 0-t szeretném, ha kiírna. melóhelyen találtam egy ilyen excel filet és abban így volt megcsinálva. Köszönöm!
-
Delila_1
veterán
válasz
ztoldy #22528 üzenetére
Nézd meg a DARABTELI függvényt, azzal megoldhatod. Egy oszlopban felsorolod a lehetséges dobozszámokat, legyen pl. X1-tól X valahányig.
Y1 képlete =darabteli(B:B;X1). Ezt végig lemásolod az X adataid mellé. Ahol nulla értéket kapsz, ott az a doboz nem szerepel a B oszlopban.
A nullánál nagyobb értékek azt az értéket adják, hogy a doboz hányszor szerepel a B-ben. -
ztoldy
senior tag
Sziasztok!
Azt tudom valahogyan ellenőrizni, hogy egy sorozatban minden szám megtalálható-e?
Példa: van dobozszámom mondjuk 0032-től egészen 0800-ig a C oszlopban (egy dobozszám többször is szerepelhet, amennyiben egy dobozban több minden is található) és azt szeretném megtudni, hogy ebben a B oszlopban mindegyik dobozszám fel lett-e használva 0032-0800-ig vagy mondjuk a 0723 és a 0452 hiányzik.Köszönöm a segítséget!
-
samfishR
senior tag
Sziasztok!
Adott 2 oszlop. Az egyikben legördülős listából kell kiválasztani az értékeket. Úgy szeretném megoldani, hogy a mellette lévő oszlop automatikusan ki legyen töltve megadott értékkel attól függően, hogy az első oszlopban mit választottam ki. Pl a képen az első oszlop E1100, a második oszlopnak meg automatikusan ki kellene töltődnie, hogy E11. Hogy lehetne megoldani? Köszönöm előre is!
-
-
mh197
őstag
válasz
Delila_1 #22508 üzenetére
Mégis van egy "apróbb" gond még az előzővel. Ha berakom a makróba az általad javasolt sort, utána elmentem, akkor nem megy az autoszűrő. A lapvédelmet úgy módosítja, hogy az autoszűrő -ből kiveszi a pipát, ha mentem a fájlt.
Erre van valami megoldás, hogy az autoszűrőt ne vegye ki, vagyis lehessen a lapvédelem ellenére szűrni?
Azt próbáltam, hogy amikor a lapvédelmet ráteszem, úgy mentem, hogy bepipálom az autoszűrőt, de ha utána mentem, akkor magától kiveszi onnan, és már nem is megy a szűrés utána tovább.. -
mh197
őstag
válasz
slashing #22516 üzenetére
Igen, ezt ismerem, hogy átkattintok, és így hivatkozom. De próbáld ki ezt akkor, ha ezt követően elmented és bezárod a két fájlt. Utána a mappát másold át valahová márs helyre, amiben ez a két fájl van, pl másik gépre, és más mappába. Na ha ekkor megnyitod a két fájlt, akkor frissíteni kell az elérési utat.. Ezt akarnám valahogy kikerülni, hogy ne kelljen frissíteni.
-
slashing
senior tag
szerintem ha egy könyvtáron bellül van akkor nem kell teljes elérési útat használni Pl.:
=[A te fájlod.xlsx]Munka1!A1
de a legegyszerűbb úgy csinálni hogy mikor a képletet írod közben megnyitod a másik füzetet is és simán átkattintasz annak a füzetnek az cellájába majd vissza mész az eredeti füzetedre és akkor automatikusan megadja az elérési utat.
-
mh197
őstag
válasz
Delila_1 #22506 üzenetére
Egyébként van még egy gondom, amit lehet nem lehet orvosolni..
Ha az egyik excel munkafüzetben hivatkozok egy másik excel munkafüzetre, akkor ugye a hivatkozásban elmenti az adott gépen a hivatkozott munkafüzet elérési útvonalát. pl.: C:/dokumentum/excel/munkafüzet2/...
Mind a két excel munkafüzet egy mappában található. Ekkor ha a mappát a két excel fájlal együtt átteszem másik helyre a gépen, vagy pl másik gépre átmásolom, ahol más lesz az elérési út, akkor az adatok->hivatkozások helyen frissíteni kell az elérési útvonalat.
Meg lehet azt oldani valahogy, hogy ha a két fájl mindig egy mappában van, de pl azt a mappát másik gépre más elérési útra másolom, akkor attól ne kelljen frissíteni a hivatkozásokat? Valahogy úgy megadni a hivatkozott munkafüzetet, hogy azt az adott néven ugyanabban a mappában keresse, de ne vizsgálja az elérési utat.
Lehet, hogy nem kivitelezhető, de gondoltam megkérdem, hátha van erre is megoldás, csak én nem ismerem..
-
mdk01
addikt
válasz
Delila_1 #22510 üzenetére
Igen, próbáltam úgy is, de semmi...#ÉRTÉK!
=HA(Összesített!T5=VAGY("22/0,4";"22/0,8";"22/1");Összesített!P5;"-")Így működik, csak kellene mellé még a másik két érték is(22/0,8 és 22/1), amit vmilyen karakterrel vagy függvénnyel felkellene soroltatni.
=HA(Összesített!T5="22/0,4";Összesített!P5;"-") -
mdk01
addikt
Mit rontok el?
=HA(Összesített!T5=VAGY(22/0,4;22/0,8;22/1);Összesített!P5;"-")
Gondolom látszik mit szeretnék.
Egyszerűbb lenne Összesített!T5 után felsorolni hogy mely értékek alapján legyen IGAZ az érték, de nem tudom milyen karakterrel lehet ezt vele megértetni.Köszönöm
-
Delila_1
veterán
A makró(k) elején az
ActiveSheet.Protect Password:="hűdetitkosjelszó", UserInterfaceOnly:=True
sor engedélyezi MAKRÓBÓL a zárolt cellák módosítását. Jelszó nélkül védett laphoz elég az
ActiveSheet.Protect UserInterfaceOnly:=True
Az OFF-ban írt szöveg rosszul olvasható. Makró közléséhez inkább a Programkód gomb szolgáltatását kellene alkalmaznod, az a tagolásokat is mutatja.
-
mh197
őstag
Sziasztok!
Segítséget szeretnék kérni excelben.
Az adott munkafüzet celláit védeni kellene a cellaformázás ellen, de nem minden cellát. Jelenleg a lapvédelmet ha bekapcsolom, akkor hiába veszem ki a pipát a védelem - > "zárolt" helyről, akkor azok a cellák attól ugyanúgy nem formázhatóak cellaformázással, jobb klikk esetén azokra a cellákra ugyanúgy inaktív marad a cellaformázás menüpont. Tudom, hogy a lapvédelemnél be lehet pipálni, hogy a védelem bekapcsolása esetén lehessen a cellákat formázni, de az meg azért nem jó, mert 5 db cellán kívül ez ellen az összeset védeni kellene.
Miért kell a cellaformázhatósága: van egy makró benne, hogy cserélődjenek a színek az alábbiak szerint:
Public Idozites As Double
Sub Villogas_ki()
Range("F5:G6").Font.ColorIndex = xlAutomatic
Range("F5:G6").Font.Color = RGB(255, 0, 0)
Range("F5:G6").Interior.Color = RGB(255, 204, 153)
Application.OnTime Idozites, "Szincsere", , False
End SubSub Szincsere()
If Range("F5:G6").Font.Color = RGB(255, 0, 0) Then
Range("F5:G6").Font.Color = RGB(0, 0, 255)
Range("F5:G6").Interior.Color = RGB(255, 0, 0)
Else
Range("F5:G6").Font.Color = RGB(255, 0, 0)
Range("F5:G6").Interior.Color = RGB(255, 204, 153)
End If
Idozites = Now + TimeSerial(0, 0, 1)
Application.OnTime Idozites, "Szincsere", , True
End Sub---
Public Most_villog As Boolean
Private Sub Workbook_Open()
MsgBox "Üdvözlöm a feladat nyilvántartásban!"
If Range("A2") <> "0" And Most_villog = False Then
Call Szincsere
Most_villog = True
ElseIf Range("A2") = "0" And Most_villog = True Then
Call Villogas_ki
Most_villog = False
End If
End SubPrivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
MsgBox "A 'mentés másként' funkció NEM HASZNÁLHATÓ!!!"
MsgBox "A táblázat NEM KERÜLT MENTÉSRE! Mentse ISMÉT a 'mentés' gombbal!!!", vbInformation
Cancel = True
End If
If Range("A2") = "0" And Most_villog = True Then
Call Villogas_ki
Most_villog = False
ElseIf Range("A2") <> "0" And Most_villog = False Then
Call Szincsere
Most_villog = True
End If
End SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Biztosan be akarja zárni a feladat nyilvántartást ?", 36, "Confirm") = vbNo Then
Cancel = True
End If
End SubAhogy ebben látható az F5:G6 tartomány színe változna az A2 értéke függvényében. Lényegében az adott munkafüzetben az F5:G6 tartományban lévő cellákon kívül mindegyiknek védettnek kellene lenni cellaformázás ellen, ha a lapvédelmet bekapcsolom. Mindez azért kellene, mert ha az F5:G6 tartomány cellaformázás ellen védetté válik a lapvédelem bekapcsolásával, akkor a "színcsere" nem tud futni ezeken a cellákon..
Erre van esetleg valakinek itt ötlete, hogyan lehetne megoldani??
Előre is köszönök minden építő jellegű hozzászólást!
Szép hétvégét!
-
slashing
senior tag
Hát az fkeressel nem fog menni mivel ahhoz át kéne forgatnod a lenti táblázatot neked a vkeres függvény kell. Az előbbi oszlop metszéspontban keres az utóbbi meg sor metszéspontban.
=VKERES($C$5;$A$33:$S$56;2;HAMIS) húzd le a képletet 29-ig aztán a végén lévő kettes írd át hármas-ra majd négyesre stb.. stb...
-
Musuz
csendes tag
Sziasztok.
Segítségre lenne szükségem.A következő a szitu: a munka1 lapon létrehoztam 1 táblát 19 oszloppal,az oszlopok első soraiban a nevekkel, (plahrein,Australia,Malaysia,stb).Az alatta levő 23 sorban szavak és számok vannak.Egy üres cellában létrehoztam a pályanevek legördülő listáját,és azt szeretném elérni,hogy ha kiválasztok egy nevet,akkor a lista cellája alatt lévő 23 sorban megjelenjenek az adatok,persze a választott pályanévnek megfelelően.
A oszlop B oszlop C oszlop
szöveg szöveg [Bahrain]-ez itt a legördülő lista,és alatta szeretném látni az adatokat
aero f wing 1
r wing 1
stb. stb. 48/52
stb.és itt van a tábla (19 oszlop/24 sor)
bahrein I australia I malaysia I stb
1 I 2 I 3 I stb.
1 I 1 I 1 I stb.Remélem nagyjából érthető.Eddig az FKERES függvénnyel próbálkoztam de csak egy oszlop adatait sikerült megjeleníteni,de már olyan sokat próbáltam,hogy már azt se tudom megismételni.Légyszi aki tud segítsen. Köszönöm.
Laci.
Új hozzászólás Aktív témák
Hirdetés
- Trollok komolyan
- Steam Deck
- HiFi műszaki szemmel - sztereó hangrendszerek
- Konzolokról KULTURÁLT módon
- PlayStation 5
- Autós topik
- Két új Ryzen közül választhatnak a kézikonzolok
- Philips LCD és LED TV-k
- Samsung Galaxy S24 - nos, Exynos
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Sea of Thieves Premium Edition és Egyéb Játékkulcsok.
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Assassin's Creed Shadows Collector's Edition PC
- Apple Cinema HD Display 23" eladó
- Bomba ár! HP ProBook 430 G3 - i5-6GEN I 8GB I 256SSD I HDMI I 13,3" HD I Cam I W10 I Garancia!
- LG 27UL500-W - 27" IPS - 3840x2160 4K - 60Hz 5ms - HDR10 - AMD FreeSync - 300 Nits - sRGB 99%
- AKCIÓ! ASUS MAXIMUS VIII HERO Z170 chipset alaplap garanciával hibátlan működéssel
- Medion Erazer Beast X40-hez vízhűtés (MD 60961) (ELKELT)
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged