-
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
-
Fferi50
Topikgazda
válasz
slashing
#23031
üzenetére
Szia!
Ide tedd be a másik makró hívását, így:If Not Intersect(Target, Range("H7,H12,H17,H22,H27,H32,H37,H42,H47,H52,N7,N12,N17,N22,N27,N32,N37,N42,N47,N52,T7,T12,T17,T22,T27,T32,T37,T42,T47,T52,Z7,Z12,Z17,Z22,Z27,Z32,Z37,Z42,Z47,Z52,AF7,AF17,AF22,AF27,AF32,AF37,AF42,AF47,AF52")) Is Nothing Then
Application.Dialogs(xlDialogInsertObject).Show
alakzatMeretezes
End IfRemélem, jó helyre gondoltam.
Üdv.
-
Fferi50
Topikgazda
Szia!
Nézd meg a Filedialog objektumhoz tartozó helpet az excel VBA -ban.
Többfunkciós és többféle alapértelmezést is adhatsz neki.
De ne feledd, ha a felhasználóra bízod a mentés nevének megadását, akkor nem lehetsz biztos abban, hogy nem változtatja meg azt....
Szerintem sokkal jobb, ha magad adod meg a nevet és mented a filet. Szóval én nem dobnék fel dialog ablakot.Ha nem akarod, hogy a fájlmentés miatt megváltozzon az eredeti fájlod neve, akkor használd a
workbook.savecopyas filename formátEkkor nem változik meg a használt fájlod állapota.
Üdv.
-
Fferi50
Topikgazda
válasz
mr.nagy
#23018
üzenetére
Szia!
Ennek érdekében az adott munkalap change eseményéhez kell makrót írnod:
Private Sub Worksheet_Change(ByVal Target As Range)
application.enableevents=false
if target.column=4 then target.formula="=Clean(""" & target.value & """)"
application.enableevents=true
end subÜdv.
-
Fferi50
Topikgazda
válasz
#02644736
#22994
üzenetére
Szia!
Az a helyzet, hogy a számolási beállítások applikáció (Excel program) szinten vannak és nem munkafüzetre specifikálva.
Vagyis, ha valamelyik használó akár kézzel akár makróból átállítja kézire és úgy lép ki belőle, akkor az marad a beállítás, amíg valaki vissza nem állítja.Üdv.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
JanoXP
#22978
üzenetére
Szia!
Nem írtad, melyik excel verzióról van szó. Általában a beállításokban van egy olyan, hogy automatikus csatolás frissítés vagy vmi ilyesmi, ezt engedélyezd.
Másrészt az adatok -menüben van frissítés menüpont, ha arra kattintasz akkor frissülnek a hivatkozások.
Arra viszont számíthatsz, ha sok ilyen "külső" adat van, az bizony igénybevesz egy kis időt, míg frissül.
Ezért célszerű a számítást manuálisra állítani és a kívánt alkalmakkor F9 gombbal újraszámoltatni.Üdv.
-
Fferi50
Topikgazda
válasz
slashing
#22962
üzenetére
Szia!
Hogy egyikünknek se legyen egyből igaza:
=ÉS(MIN($A2:$D2)=A2;A2<>"")Ezt kell az A-D oszlopra ráhúzni. Mert a legkisebbet keressük a 4 oszlopban - már ha jól értettem.
Ha így írod be a képletet, akkor minden oszlopban saját magára nézve is fogja a cella értelmezni.
Üdv.
-
Fferi50
Topikgazda
válasz
kacsaesokos
#22954
üzenetére
Szia!
A cserélendő adatok "F" oszlopán végigmész, megkeresed a "nagy" táblában az értékét. Ha megtaláltad az egész sort copyzod, ha nem akkor a végéhez hozzáadod.
Kb. így nézhet ki:Sub cserelo()
Dim sh1 As Worksheet, sh2 As Worksheet, vanszam As Range, cl As Range
Set sh1 = Munka1
Set sh2 = Munka2
For Each cl In sh2.UsedRange.Columns("F").Cells
If cl.Value <> "" And cl.Row <> 1 Then
Set vanszam = sh1.Columns("F").Find(what:=cl.Value, LookIn:=xlValues, lookat:=xlWhole)
If vanszam Is Nothing Then Set vanszam = sh1.Columns("F").Rows.End(xlUp).Offset(1, 0)
cl.EntireRow.Copy sh1.Cells(vanszam.Row, 1)
End If
Next
End SubÜdv.
-
Fferi50
Topikgazda
válasz
Bobrooney
#22949
üzenetére
Szia!
Ha a modulok azon értékeit, amelyeket más modulok is használnak, Public változóként definiálod, akkor azokat modulnév.változónév formában el tudod érni máshonnan is.
Ha a modulok nem osztálymodulok (nem class), akkor Global változóként is definiálhatod a közös változókat és akkor minden macera nélkül eléred mindenhonnan.Üdv.
-
Fferi50
Topikgazda
válasz
kacsaesokos
#22948
üzenetére
Szia!
"leltári szám ami alapján lehetne talán szűrni?"
Igen jó lenne, ha valami egyedi azonosítót tudnál adni a munkához, mert egyébként mi alapján fogod "kitalálni", hogy melyik sorokat kell kicserélni.
Gondolom, nem egész sorokat kell cserélni, csak a megváltozott adatokat..., esetleg új sort hozzáadni.Egy kis méretű mintát a teljes illetve a becserélendő táblából azért tehetnél fel, hogy világosan láthassuk, mit szeretnél.
Üdv.
-
Fferi50
Topikgazda
válasz
rubint
#22945
üzenetére
Szia!
Nem írtad, milyen excel verziót használsz. De mindegyikben működik a következő:
-összemásolod az összes oszlop adatát egy oszlopba egymás alá.
-adatok - speciális szűrő/irányított szűrő - egyedi értékek - máshova másol.
- az eredményt rendezed és a számokat, egyéb jeleket tartalmazó cellákat törlöd.Ez még kézzel sem hosszú, annyi cellára sem, amennyit írtál.
Ha automatizálni szeretnéd, akkor egyszer makró rögzítés, majd a megfelelő részeket átírod.Üdv.
-
Fferi50
Topikgazda
válasz
tgumis
#22932
üzenetére
Szia!
Menjünk sorba:
" irányított beillesztésre létrehozott makró ne mindig oda illesszen be ahol a makró rögzítésekor tette"
Ehhez látni kellene a makrót.
Billentyűkombináció megváltoztatása: Fejlesztőeszközök - Makrók - ráállsz a makróra és utána egyebek.
Ikon elhelyezése: Excel 2010-ben.
Beállítások - Menüszalag testreszabása - a választható parancsok helye - makrók. Utána a jobb oldalon létrehozol egy saját menüpontot és ide hozzáadhatod a makródat.Üdv.
-
Fferi50
Topikgazda
válasz
Bobrooney
#22916
üzenetére
Szia!
Nem kötelező a második paraméter használata, de vedd figyelembe az alábbiakat:
A második paraméter azt határozza meg, hogy melyik nap a hét kezdőnapja. Ha elhagyod, akkor a vasárnapot tekinti a hét kezdőnapjának. Ha a hétfőt tekinted kezdőnapnak (mint Mo-n általában), akkor a második paraméter értéke 2.Üdv.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
Delila_1
#22905
üzenetére
Szia!
Nem akarlak elkeseríteni, de ebben az esetben a
"Sheets("material").Range("A5, A7, D10, A12, A14, B14, D14, A16, B16, C16, A18, B18") = _
Range("A5, A7, D10, A12, A14, B14, D14, A16, B16, C16, A18, B18").Value"sajnos nem működik, mindig az első cella értékét fogja a többinek is beírni.
Ez a trükk csak folyamatos tartománynál működik.
Itt sajnos végig kell gyalogolni a cellákon.Üdv.
-
Fferi50
Topikgazda
válasz
greenface
#22901
üzenetére
Szia!
Miután az activeworkbook munkalapjain megy végig, a makrónak az adott munkafüzet egy moduljában kellene lenni.
Viszont megoldható az is, hogy egy külön munkafüzetbe teszed, akkor viszont ki kell egészíteni egy olyan résszel, ami megnyitja egyenként a fájlokat, utána ezzel a makróval elvégzi a módosítást, majd visszazárja/elmenti a fájlokat.Ha emlékeim nem csalnak, volt már itt ilyenről szó. (fájlok listázása mappából).
Ha mégsem találnád, írj és segítek.
Üdv.
-
Fferi50
Topikgazda
válasz
adamssss
#22889
üzenetére
Szia!
Feltételes formázás. Excel verziótól függően tudod megadni, képlettel.
Általában ki kell jelölnöd a két oszlopot. Utána két szabály két különböző képlettel:
1. ha tervcella>ténycella kitöltés piros
2. ha tervcella<ténycella kitöltés zöld
Ha ebben a formában írod a képletet =A1>B1 akkor minden sorban a megfelelő 2 cellát hasonlítja össze.Üdv.
-
-
Fferi50
Topikgazda
válasz
greenface
#22869
üzenetére
Szia!
Próbáld ki a következőt:
Sub kepletszun()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
if sh.name<>"törölni kell" then
sh.UsedRange.Value = sh.UsedRange.Value
endif
Next
application.displayalerts=false
sheets("törölni kell").delete
application.displayalerts=true
End SubHa csak képletek és értékek vannak, akkor menni fog. Ha kimutatás is van a munkalapokon, akkor viszont a kimutatásnál hibával leáll. (Természetesen lehet a hibát kezelni, de most csak gyorsan ezt dobtam fel, ha szükséges, szívesen átírom arra is.)
Üdv.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
botond187
#22861
üzenetére
Szia!
Amit írtam, azt ugyanabba a makróba kell beleírni, csak külön-külön sorokba, hiszen más-más a feltétel, vagyis a vizsgálat szempontja.
Ha csak egyet szeretnél, akkor az első találatot beírod a helyére és kilépsz az adott ciklusból. Majd a következő vizsgálatnál is hasonlóképpen. Ezzel a legelső találat kerül bele mindig a B oszlop cellájába. Ha mást szeretnél, akkor a találatokat is meg kell vizsgálni...,vagy előre eldöntöd, hogy hanyadik találatig menjen és akkor a találatokat kell számolni, amíg el nem érsz a kívánt értékig.Üdv.
-
Fferi50
Topikgazda
válasz
botond187
#22856
üzenetére
Szia!
Van az a feltételvizsgálat, ahol a T és U oszlophoz hasonlít a makró és ha benne van, akkor beteszi az értéket a B oszlopba.
Na ezt másold le annyiszor, ahányszor 2 oszloppal bővíted jobbra a feltételrendszert, majd cseréld ki benne a T és az U értékét /vagy oszlopszámát (most nem emlékszem végülis melyiket írta Delila és lusta voltam visszanézni, bocsi) a következő két oszlopra, ha benne van akkor fűzd hozzá az értéket a B oszlop meglevő értékéhez azzal az elválasztójellel (vessző,stb.) amivel el akarod választani egymástól.Üdv.
-
Fferi50
Topikgazda
válasz
Vladek83
#22826
üzenetére
Szia!
A listboxhoz kapcsolódó adatokat oszlopokba kellene rendezned (kvázi "rekordokat" kellene képezned).
Ezt vagy az adott munkalap átalakításával, vagy az adatok új területre másolásával érheted el.
Vagyis lenne egy terület/vagy munkalap, ahol az első sor a fejléc:
Tételszám, termék, stb.
A többi sorba pedig az eredeti munkalapon (munkafüzetben) alatta szereplő adatok kerülnek.Üdv.
-
Fferi50
Topikgazda
válasz
botond187
#22794
üzenetére
Szia!
Tovább gondoltam a feladatod és úgy látom, a "segédtáblában" elég az egy oszlop a főtermékekre a következők szerint:
első cella értéke 0
második cella értéke a második termék alsó határa
harmadik cella értéke a harmadik termék alsó határa
Pl.Főtermék kieg alsó kieg felső
0 G-010504000 G-010504099
G-010100100 G-010504100 G-010504199
G-010100200 G-010504300 G-010504500Ekkor a makróban a kereséshez a vlookup függvényt kell használnod, így
set vankieg=application.vlookup(cells(1,1).value,segédtábla első oszlop,1,True)
if not vankieg is nothing then ' ekkor van találat
kiegalso=vankieg.offset(0,1).value
kiegfelso=vankieg.offset(0,2).value
jöhet a belső ciklus a termékkereséshez (nálam az yy-os)
endifA termék cikkszámainak és a segédtábla első oszlopának is emelkedő sorrendben kell lennie.
Az Fkeres ebben a formában azt a sort találja meg, amely még nem nagyobb a keresendő értéknél, ezért kell az első cellába 0, vagy bármilyen más - az első termékkör felső határánál kisebb!!! - érték.Üdv.
-
-
Fferi50
Topikgazda
válasz
botond187
#22788
üzenetére
Szia!
Paraméterezheted is a makrót.
Csinálsz egy táblázatot, amelybe berakod egy-egy oszlopba a "főcikk" tól-ig cikkszámokat, a másik 2 oszlopba pedig a hozzátartozó "kiegészítő" cikkek tól-ig határait.
Ezután a makródnak azt kell megnéznie, hogy az adott cikkszám mely határok közé esik és onnan kivenni a hozzátartozó határértékeket.
Kicsit csúnya mert még egy for ciklus van benne, de most hirtelen nem jut jobb eszembe (pedig biztosan van).For xx= 1 to 200
cikkszam=cells(xx,1).value
kiegalso=""
kiegfelso=""
for zz=1 to főcikkfeltételszám
if cikkszam>=cells(zz,10).value and cikkszam<=cells(zz,11).value then
kiegalso=cells(zz,12).value
kiegfelso=cells(zz,13).value
exit for
endif
next
if kiegalso<>"" then
kieg=""
for yy=1 to 200
if cells(yy,1).value>=kiegalso and cells(yy,1).value<=kiegfelso then
if kieg="" then
kieg=cells(yy,1).value
else
kieg=kieg & elválasztó & cells(yy,1).value
endif
endif
next
if kieg<>"" then
cells(xx,2).value=kieg
endif
endif
nextA határokat tartalmazó táblázat a 10-12. oszlopban van. A ciklushatárokat igazítsd a feltöltött sorokhoz.
A belső yy-os ciklus elvileg indulhat xx -től egy (1) helyett, ha a kiegészítő termékek cikkszáma nagyobb, mint a főtermékeké és a cikkszámok sorba vannak rendezve. A működéshez ez nem szükséges, akkor marad az 1, mint cikluskezdő (hiszen lehet, hogy az első cikkszám nem főtermék, hanem kiegészítő).Üdv.
-
Fferi50
Topikgazda
válasz
botond187
#22786
üzenetére
Szia!
Kell egy makrót írnod, ami végigmegy a cikkszámokon és az általad megadott cikkszám melletti cellába beírja a szintén általad definiált feltétel szerinti cikkszámokat:
Csak vázlatosan:for yy = 1 to 100
kieg=""
if cells(yy,1).value>="G-010100000" and cells(yy,1).value<="G-010100099" then
for xx= 2 to 100
if cells(xx,1).value>="G-010504000" and cells(xx,1).value<="G-010504099" then
if kieg="" then
kieg= cells(xx,1).value
else
kieg=kieg & elválasztó & cells(xx,1).value
endif
endif
next
end if
if kieg<>"" then cells(yy,2).value=kieg
nextA ciklusok vége az A oszlopban levő adatait mennyiségétől függ. Az elválasztó helyébe írd be azt a karaktert, amelyet elválasztóként szeretnél használni.
Ha a feltételeket megváltoztatod a makróban, akkor bármelyik cikkszám mellé tud írni bármilyen cikkszám verziót.Üdv.
-
Fferi50
Topikgazda
válasz
Mindless
#22784
üzenetére
Szia!
Gyakorlatilag minden vevőtípusnak csinálhatsz külön táblát a bemutatott logika alapján, ami 3 oszlopból áll:
1. a számítási határ
2. a számítás kulcsa
3. az adott sáv alatti összegHa bizonyos szintig 0 kulcsot szeretnél alkalmazni, akkor annak a szintnek a felső határához is 0 értéket írj a 2. oszlopba és a következő szintnél kezdődik az értékkulcs.
A 3. oszlop azért fontos, mert egyszerre nem lehet több kulccsal számolni, csak ilyen fondorlatos módon lehet megoldani (azaz az addig sávokhoz tartozó értékeket kiszámoljuk - hiszen az már biztosan megvan, és a fölötte levő különbségnek számítjuk a sávba eső százalékát és azt hozzáadjuk). Ezért bonyolult a képlet.
Remélem, érthető volt.
Üdv.
-
Fferi50
Topikgazda
válasz
Mindless
#22756
üzenetére
Szia!
Feltöltöttem egy javaslatot:
http://data.hu/get/7936884/minta_adatok.xlsxElég bonyolult lett a képlet, mivel árrést kell benne számolni az összehasonlítás előtt, de azért érthető szerintem.
A sávos számításhoz az Fkeres függvényt használom.
Az alap a segéd C2 cellában van, ha ezt megváltoztatod, akkor a táblázatban a határértékek is megváltoznak, kivéve a felső határt, ahova egy "bazinagy" számot kell írni, hogy biztosan kisebb legyen minden előfordulási érték nála.Remélem, ilyesmire gondoltál.
Üdv.
-
Fferi50
Topikgazda
válasz
Mindless
#22750
üzenetére
Szia!
A kérdést nem egészen értem, mert először X, 2X, 3X stb. forgalomról beszélsz, majd a későbbiekben azt írod, hogy fix Y értékkel már megy számolás, csak forgalomtól változó Y értékkel nem.
Jól értelmezem, hogy ez valami diszkont számítás?
Szerintem a forgalomtól változó értéket egy szép kis táblázattal lehet megadni, de egy kis csavarral:Egy cellába beviszed a forgalom összegét. Majd a táblázat első oszlopába képlettel beírod a 2X, 3X ..stb képletet az adott cellára hivatkozva (pl.=A1*2, =A1*3 ..stb.)
A táblázat második oszlopába beírod a hozzá tartozó %-os értékeket.
Ezután a táblázatban megkeresed az adott forgalomhoz tartozó %-os értéket pl. az index és hol.van függvényekkel, vagy fkeressel.De, ha lenne egy pici mintád, konkrétabban is tudnánk segíteni valószínűleg.
Üdv.
-
Fferi50
Topikgazda
válasz
tgumis
#22749
üzenetére
Szia!
Ha pontos egyezést keresel, akkor nem kell sorbarendezni Fkeres számára és a Hol.van számára sem, csak akkor kell a sorbarendezés, ha kisebb-nagyobb keresést szeretnél.
Ezért szerintem az előző hozzászólás szerinti képletben a HAMIS kell az fkeres utolsó paraméteréhez és nem IGAZ.
Üdv.
-
Fferi50
Topikgazda
válasz
D@reeo
#22704
üzenetére
Szia!
Az ugyan nem megy, hogy magában a cellában keresd és cseréld ki - csak makróval lehet ilyet tenni -, de máshova a következő képlettel működik:
=helyette(A1;karakter(10);"")
ahol A1 cellában van a szöveg. De még egyszer, ezt egy másik cellába kell megadni.
Én praktikusan azt szoktam ilyenkor, hogy beszúrok egy munkalapot és a beszúrt munkalapon adom meg a képletet az eredeti munkalap azonos cellájára hivatkozva:A1 cella képlete =helyette(Munka1!A1;karakter(10);"")
ezt a képletet pedig ebben a formában végighúzhatod a sorokon-oszlopokon.A cellaformázásban a sortöréssel több sorba ne legyen bekapcsolva vagy vedd ki utólag.
Utána természetesen a képletet átváltoztatom értékké. Másolás - irányított beillesztés - érték.
Üdv.
-
Fferi50
Topikgazda
válasz
Gabcsika
#22685
üzenetére
Szia!
Nos, ha az A1-be írod az értéket, akkor miért a B2 cella értékét vizsgálod a feltételekben?
Másrészt a képlet (most B2-vel) =HA(B2<50;840;HA(B2<100;560;HA(B2<150;280;HA(B2<200;0;""))))
mivel az előző ha már kiváltja a kisebb vizsgálatot, elég a következőnél a felső határt nézni.
Üdv.
-
Fferi50
Topikgazda
válasz
Vladek83
#22649
üzenetére
Szia!
Mit szeretnél?
Ha a combobox listáját szeretnéd frissíteni, azt a rowsource tulajdonság átírásával tudod.
combobox1.rowsource="Munka1!A1:A5"
Ha változik a forrás akkor az egyenlőségjel után az új forrástartomány címét írod.
A forrás átírását ahhoz az eseményhez kell rendelned, amelyik megváltoztatja (frissíti) az adatokat.Üdv.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
Delila_1
#22635
üzenetére
Szia!
Semmi gond.
Viszont a Clearcontents helyett a Delete kell, mert különben odatesz a végére néhány vesszőt (mert a usedrange-ban benne vannak azok a cellák is és értékük üres).
A végén még be is kellene zárni a CSV fájlt, az eredetit pedig nem szabad menteni.Én ennél egy kicsit - na jó sokkal - bonyolultabban képzeltem el a megoldást.
Üdv.
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
válasz
foregister
#22599
üzenetére
Szia!
Hát igen, így jár aki siet.
A képletet idézőjelek nélkül kell beírnod és akkor működik!
Nem is értem, miért írtam az idézőjeleket (talán azért, mert a makróban meg kellenek....)
Viszont az excel tud két irányban keresni, két hol.van (egyik a sorra, másik az oszlopra) együttes alkalmazásával az index függvényben.
Üdv és bocs.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
-
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.
-
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.("Y1
1200").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.
-
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.
-
Fferi50
Topikgazda
válasz
DrojDtroll
#22487
üzenetére
Szia!
Feltételes formázás kijelölése képlettel. A képletbe pedig beírod azt a cellát, amelyiknek az értékét szeretnéd figyelni:
pl. =c1>2,
A hatóköre pedig az a1 cella.De! figyelj az abszolut és relatív hivatkozásokra (dollár jel vagy anélkül nem mindegy).
Üdv.
-
-
Fferi50
Topikgazda
válasz
TomTeke2
#22477
üzenetére
Szia!
A Listfillrange tartományt egyenlőségjellel kell bevinni: =daten!$E$3:$E$246
Ezután elvileg ha beírsz egy helyes értéket az A9 cellába, akkor annak meg kellene jelennie a vezérlőben, illetve fordítva, ha kiválasztasz egy értéket a vezérlőben, akkor annak az A9 cellába "illik" kerülni.
Üdv.
-
Fferi50
Topikgazda
válasz
alfa20
#22467
üzenetére
Szia!
A global változót a modul elején kell definiálni nem pedig az eljárásban!
Modul elején (declarations részben) Global fajl1 as string
Így a Sub -ban már nem kell újra deklarálni.A második sub-ban is teljesen félreértettél. Ha Global a definíció, akkor nem kell a zárójeles paraméter, a global hivatkozás pedig pláne nem.
(Nem nézted meg a példám....)Összekeverted a két verziót....
Tehát
vagy:
Global fajl1 as string
sub egyik()
fajl1=activeworkbook.name
end subsub masik()
msgbox fajl1
kódok
end subvagy:
sub egyik()
dim fajl1 as string
fajl1=activeworkbook.name
masik fajl1
end subsub masik(byval fajlnev as string)
msgbox fajlnev
kódok
end subÜdv.
-
Fferi50
Topikgazda
válasz
alfa20
#22464
üzenetére
Szia!
Két verzió lehet
az egyik, hogy Global változónak declarálod a fajl1 változót a modul elején (Global fajl1 as string), de lehet Public fajl1 as string és akkor a másik modulban a modulnév.fajl1 módon hivatkozhatsz rá.
a másik, a vizsgal makrót így alkotod meg:
sub vizsgal (byval fajlnev as string)
msgbox fajlnev ' szándékosan nem fajl1, hogy lásd a különbséget
end sub
A meghívása pedig vizsgal fajl1Üdv.
-
Fferi50
Topikgazda
válasz
slashing
#22401
üzenetére
Szia!
Most láttam a képletedet. Ha 2010-es exceled van, akkor majdnem fele ennyiből megúszhatod a HAHIBA függvény alkalmazásával:
=HAHIBA(BAL(FKERES(W3;Táblázat2;6;0);SZÖVEG.KERES(";";FKERES(W3;Táblázat2;6;0))-1);HAHIBA(BAL(FKERES(W3;Táblázat2;6;0);SZÖVEG.KERES("-";FKERES(W3;Táblázat2;6;0))-1);FKERES(W3;Táblázat2;6))) & " " & HAHIBA(BAL(FKERES(W3;Táblázat2;8;0);SZÖVEG.KERES(";";FKERES(W3;Táblázat2;8;0))-1);HAHIBA(BAL(FKERES(W3;Táblázat2;8;0);SZÖVEG.KERES("-";FKERES(W3;Táblázat2;8;0))-1);FKERES(W3;Táblázat2;8)))Üdv.
Új hozzászólás Aktív témák
- Android játékok topikja
- Teljes verziós játékok letöltése ingyen
- Forza sorozat (Horizon/Motorsport)
- BestBuy topik
- Gyúrósok ide!
- Amlogic S905, S912 processzoros készülékek
- Gitáros topic
- Telekom mobilszolgáltatások
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Motorola G86 - majdnem Edge
- További aktív témák...
- Játékkulcsok ! : PC Steam, EA App, Ubisoft, Windows és egyéb játékok
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Xbox / Microsoft Store feltöltőkártya kód (digitális, HU) több címlet, több db, azonnal, olcsón
- HIBÁTLAN iPhone 14 Pro Max 128GB Deep Purple-1 ÉV GARANCIA - Kártyafüggetlen, MS4682
- Dell XPS 13 9310 i7-1185G7 16GB 512GB 13" FHD+ 1 év garancia
- Új HP 15 Victus FHD IPS 144Hz i7-13620H 4.9Ghz 10mag 16GB 1TB SSD Nvidia RTX 5060 8GB Win11 Garancia
- Xbox Series S 512 GB + kontroller 6 hó garancia, számlával!
- ÚJ HP EliteBook 6 G1a Ryzen 5 PRO 230 4.9GHz 16GB DDR5 512GB FHD+ 16:10 már jobbik kijelző, gar 2028
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
120;2;0)
1200").RemoveDuplicates columns:=1 header:=xlYes vagy xlNo attól függően, hogy van-e fejléc.
