- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Dell notebook topic
- HiFi műszaki szemmel - sztereó hangrendszerek
- Alapértelmezett konfiguráción sok Core CPU-nak lehet stabilitási gondja
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Steam Deck
- Azonnali informatikai kérdések órája
- Milyen monitort vegyek?
- Autóhifi
- AMD GPU-k jövője - amit tudni vélünk
Hirdetés
-
Senua's Saga: Hellblade II - Íme a végleges gépigény
gp A folytatás megjelenéséig kicsivel több mint két hetet kell már csak várnunk.
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Sokat fogyaszt az AI, egyre több az adatközpont, kell az atomenergia
it Az AI-t kiszolgáló adatközpontok olyan nagy energiaigénnyel bírnak, hogy egyre több atomenergiára van szükség.
-
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
-
Declare
őstag
Sziasztok!
Megint egy kis Macros kerdes
Van egy ilyen makrom:
Sub FormatText()
Dim i As Integer
For i = 1 To Range("A" & "1353").End(xlUp).Row Step 1
If Application.WorksheetFunction.CountIf(Range("H" & i & ":H" & i), "w") > 0 Then
Range("A" & i & ":H" & i).Select
Selection.Font.Name = "Calibri"
Selection.Font.FontStyle = "Italic"
Selection.Font.Underline = xlUnderlineStyleSingle
Range("E" & i).Value = Range("A" & i).Value & " " & Range("D" & i).Value
Range("E" & i).HorizontalAlignment = xlRight
Range("A" & i & ":D" & i).ClearContents
End If
Next i
End SubA H oszlopban vannak megjelölt cellak (egy ha függvennyel ezt megcsinalom), amik "h" es "p" erteket tartalmaznak.
Lenyeg az, hogy a H oszlopot vizsgalja es ha annak egyik sorában "h" erteket talal, akkor elvegzi azokat a formazasokat, amiket kerek töle. Ezt kellene meg egy dologgal böviteni, hogy:- Az éppen vizsgált sorban, az F cellába összegezze az F oszlop értékeit felfele, egeszen addig amig a H oszlopban nem talal "p" erteket. (Tehat manualisan ezt ugy kell elkepzelni, hogy belekattintok a vizsgalt sor F cellajaba, nyomok egy SZUM fügvenyt es felfele kijelölessel felhuzom az összegzendö tartomanyt addig a sorig, amig a H oszlopban meg nem talalom a "p" erteket")
Aztan igy menne tovabb szepen lefele.
Remelem erthetö, mit szeretnek, nem tudom, mennyire bonyolult ez. Ha valaki segit, azt nagyon köszönnem ismet
mod: a macro alap reszeben mar segitettetek, meg tanacsoltatok is par egyszerüsitest, egyelöre direkt nem akartam egyszerüsiteni, mert igy könnyen atlatom mit csinal.....majd ahogy idöm engedi tanulgatom jobban a macrot es egyszerüsitem is
[ Szerkesztve ]
-
alfa20
senior tag
Aha, szóval válogasson addig a számokból míg nem a kívánt eredményt kapja
makróval megoldható, igaz nem egyszerű de talán...
szerintem el kellene tárolni a számokat egy tömb-be, majd random függvénnyel egy ciklusban kiszedni a tömb egyes elemeit, addig míg nem = az új tömb elemei összege a kívánt értékkel
Bár a ciki az, ha pont egy olyan szám kell a végére, amit egyszer már kivettünk, mert akkor újra kezdheti a ciklus a gyűjtögetést.
de lehet csak túl bonyolítóm#31801: ha megoldódott az jó, az ilyet sokan szeretik
[ Szerkesztve ]
"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
RAiN91
őstag
szerk: semmi
[ Szerkesztve ]
-
Fferi50
őstag
válasz Declare #31802 üzenetére
Szia!
Ezt a sort írd be a makróba:
If Range("H" & Selection.Row).Value = "p" Then Range("F" & Selection.Row).Value = Application.Sum(Range("F" & Selection.Row - 1, Cells(Range("H" & Selection.Row).EntireColumn.Find(what:="p", LookIn:=xlValues, SearchDirection:=xlPrevious, lookat:=xlWhole).Row, "F")))
Ha a "h" feltétellel együtt kell teljesülnie, akkor az End If sor elé.
Ha csak a "p" feltételnek kell teljesülnie, akkor egy kicsit átalakítva az End If utánIf Range("H" & i).Value = "p" Then Range("F" & i).Value = Application.Sum(Range("F" & i - 1, Cells(Range("H" & i).EntireColumn.Find(what:="p", LookIn:=xlValues, SearchDirection:=xlPrevious, lookat:=xlWhole).Row, "F")))
Az első p esetében hibát okozhat, hogy nincs előtte még másik p az oszlopban, ebben az esetben a hibakezelésben az első sortól kell az összeadást csinálni.
On Error Resume Next
ide jön a képlet
If Err <>0 then If Range("H" & i).Value = "p" Then Range("F" & i).Value = Application.Sum(Range("F" & i - 1, Cells(1, "F")))
On Error Goto 0Üdv.
[ Szerkesztve ]
-
Dr V
őstag
Sziasztok!
Van egy adatsorom, aminek a celláira egy-egy képlet hivatkozik. Az adatok egy sorban vannak, de a képletek egy oszlopban kell, hogy legyenek. Hogyan tudom úgy másolni a képleteket, hogy másolás közben a képletben az oszlop értéke változzon, ne a sorszám? Sokáig tartan egyesével beírni...
-
róland
veterán
Szeretnék egy táblázatkezelős munkalaphoz űrlap adatbeviteli kezdőlapot készíteni. Az adatok nagyjából a mellékelt képernyőkép szerintiek:
[link]Hogy induljak neki Excel 2007-ben?
Lehetőleg makró nélküli megoldást szeretnék!
[ Szerkesztve ]
http://logout.hu/cikk/mi_is_az_a_htpc/teljes.html; Három emeleten át egy teljes liftrapszódiát játszik!
-
PeLa87
aktív tag
Sziasztok!
Ha a G2 cellában van egy születési dátum (1919.12.05) és H2-be kiszámoltattam, hogy 96 éves az alábbi képlettel: =HA(DÁTUM(ÉV(MA());HÓNAP(G2);NAP(G2))>MA();ÉV(MA())-ÉV(G2)-1;ÉV(MA())-ÉV(G2))
Hogy lehet azt megoldani, hogy I2-be kiírja, hogy ma van a születésnapja?
Köszönöm előre is a segítséget!
Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99
-
#92888064
törölt tag
sziasztok!
találam egy megfelelő pénztárköny excelt, amit egy kis szerkesztéssel a papír alapúhoz hasonlóvá szeretnék tenni. az volna a kérdésem, hogy nyomtatásnál hogy lehetne rávenni az excel, hogy a felső 3 rögzített sort minden oldalon megjelenítse?
alapvetően a felső 3 rögzített soron kívül még 25 sor kell oldalanlént.
az volna a legjobb, ha az áthozat sort is megjelenítené 4. rögzített sorként, a két összesen és az egyenleg oszlopra.
a válaszokat előre is köszönöm[ Szerkesztve ]
-
PeLa87
aktív tag
Sziasztok!
Találtam egy excel táblázatot ami code128 vonalkódot készít az adott szövegből. Találtam egy ékezettelenítőt is:
=HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(HELYETTE(B2;"Á";"A");"É";"E");"Í";"I");"É";"E");"Ó";"O");"Ö";"O");"Ő";"O");"Ú";"U");"Ü";"U");"Ű";"U");"á";"a");"é";"e");"í";"i");"é";"e");"ó";"o");"ö";"o");"ő";"o");"ú";"u");"ü";"u");"ű";"u")
ha új excel táblába akarom beilleszteni akkor működik, ha az említett vonalkód generátoros excel-be akkor azt írja ki, hogy túl sok egye ágyazott a képlet vagy valami hasonló.
Úgy szeretném megoldani, hogy
A1: név
B1: ékezettelenített név
C1: vonalkód kiírása szöveggel
D1: vonalkód elkészítéseEsetleg a névhez egyedi azonosító ami A-Z és a-z és 0-9 (10karakteres) rendel hozzá és 2 azonos név esetén is különböző lesz az egyedi azonosító. Ez nagyon bonyolult? Mert akkor lemondok róla... csak az első rész lenne a fontos, a vonalkódos rész. Viszont a makrókhoz nem értek, ezért kerestem képleteket...
Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99
-
Delila_1
Topikgazda
válasz PeLa87 #31822 üzenetére
Feltettem a ide a füzetedet.
Az A oszlop a név, a B ennek az angol karakteres megfelelője + egy hozzá fűzött alsó kötjel + 5 db véletlen karakter. A harmadik oszlopban a B oszlop bárkódja. Ehhez csak annyi kell, hogy a B oszlopra hivatkozva hozd be a nevet, és egy bárkód típusú karakterkészletet rendelj hozzá. Az én füzetemben a "3 of 9 Barcode" nevű van.
A második oszlop adatait egy saját, Karaktercsere nevű függvény állítja elő. Ebben az oszlopban véletlen-szerűen előállított karakterek vannak. Hogy megmaradjon az egyes nevekhez rendelt pár karakter, a cellát másold, és saját magára adj értékbeillesztést.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz PeLa87 #31826 üzenetére
A kódolvasótól függ. Némelyiknél a szöveg típusú adatoknál a szöveg elé és mögé csillagot kell tenni.
Ha pl. Nagy Pista szöveget akarsz beolvastatni, a vonalkódos karaktereket tartalmazó oszlop szövege legyen *Nagy Pista*.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
PeLa87
aktív tag
válasz Delila_1 #31827 üzenetére
Amit készítettél nekem táblázatot, abba próbáltam egyéni cellaformátumban megadni, vagy a névhez beírni, csak az egyénileg változó karlaterek miatt utána nem teszi be...
*Nagy Pál*____________*Nagy Pal*_gjWpC lesz belőle, nem pedig *Nagy Pal_gjWpC*
Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99
-
PeLa87
aktív tag
-
-
PeLa87
aktív tag
válasz Delila_1 #31830 üzenetére
Hát így is érdekes karaktert ad ki... Na mindegy, lemondok asszem erről!
ui.: Sikerült, hogy ne írja ki azokat a karaktereket vonalkódba, de így sem olvassa be! Majd akkor külön szerkesztővel megszerkesztem azokat legfeljebb...
Azért köszönöm nagyon a segítséged!
[ Szerkesztve ]
Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99
-
-
DeFranco
nagyúr
van egy mátrixom, legyen 20 sor 20 oszlop
adat elég gyéren van benne, a mátrix egy-egy sorában lehet 1, 2, 3 adat (tehát 19-18-17 cella üres)
minden sor végére ki szeretném íratni, a 21. 23. 25. oszlopba, hogy hol (melyik oszlopban) talált adatot (értelemszerűen ha csak egy van, akkor a 23-25 üresen marad, stb.) a 22. 24. 26. oszlopokba pedig az adatot magát, amit megtalált (értelemszerűen ha csak egy van, akkor 24-26 üres stb.).
HOL.VAN függvénnyel estem neki, de annak pontos egyezés kell, így nem tudtam használni.
arra volnék kíváncsi, hogy ez függvénnyel megoldható-e, és ha igen, hogyan?
-
Delila_1
Topikgazda
válasz DeFranco #31836 üzenetére
Az A1:T20 (20×20-as) mátrixodhoz tedd modulba a lenti makrót, majd indítsd.
Sub Matrixos()
Dim cella As Range, oszlop As Integer, sor As Long
Dim terulet As Range
Set terulet = Range("A1:T20")
oszlop = 21: sor = 1
For Each cella In terulet
If cella.Row > sor Then
oszlop = 21: sor = sor + 1
End If
If cella <> "" Then
Cells(cella.Row, oszlop) = cella.Address
Cells(cella.Row, oszlop + 1) = cella.Value
oszlop = oszlop + 2
End If
Next
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.
-
bsasa1
csendes tag
válasz DeFranco #31836 üzenetére
Szia!
Szerintem függvénnyel maximum jópár segédoszloppal oldható meg.
Kell mellé egy másik ugyanakkora mátrix, bele mindenhova üres képlettel, így az üres cellák IGAZ, az adatot tartalmazó cellák HAMIS értéket kapnak. Erre már rá tudsz keresni a HOL.VAN függvénnyel, de minden találat után el kell csúsztatni a hivatkozást, amiben keresel pl ELTOLÁS függvénnyel.
Így sorban mindet meg tudod találni, de makróval szerintem egyszerűbb......közben érkezett is egy
S.
-
DeFranco
nagyúr
válasz Delila_1 #31837 üzenetére
nagyon köszönöm
az érdekelt volna első körben, hogy ezt függvénnyel meg lehet-e oldani (van-e olyan függvény, ami egy logikai feltételnek (pl. <>0 vagy NEM(ÜRES) ) megfelelő cellát keres amíg meg nem találja, majd annak megadja valamilyen hivatkozását)
második körben ha ez nem, akkor jön a makró amit írtál, köszönöm még egyszer
@bsasa1: köszi ez a "favágó" módszer megvolt, de nyilván valami elegáns keresőfüggvényes megoldást kerestem volna
@Delila_1: köszönöm még egyszer.
[ Szerkesztve ]
-
d@minator
addikt
Sziasztok! Segítség kellene.
Van egy oszlopom amiben számok vannak. Legyen "E" oszlop.
A mellette lévő oszlopban (F) néhány szám mellett van "A" betű.
Össze kellene adni az "E" oszlopban lévő számokat de csak azokat amelyek mellett a "A" karakter szerepel.
Ezért egy másik cellába az alábbi képletet írtam és működik:
=HA(F2="A";E2)+HA(F3="A";E3)+ .......... + HA(F800="A";E800)A bajom az, hogy több számot kell majd összeadni. Hogyan tudom egyszerűen?
[ Szerkesztve ]
-
bteebi
veterán
Sziasztok!
Talán már többször is előjött Excelben az értékes jegyekkel való számolás, értékes jegyre való kerekítés problémája. Rákerestem, de nem találtam rá igazi leírást itt a fórumban, úgyhogy írok egyet én. Legalább háromféle módszerrel találkoztam, amit szoktak rá használni. Abból a legelső egyértelműen rossz (azt végül inkább nem írom le, mert tutira azt találná meg mindenki ), a második majdnem jó (a 0-kat nem teszi be értékes jegynek, tehát pl. a 0,01 három értékesre is 0,01 marad, nem pedig 0,0100), a harmadik pedig teljesen jó - "csak" annak a végeredménye nem szám, hanem szöveg (eggyel megszorozva természetesen szám lesz, csak akkor a fentebb írt probléma szintén megmarad). A képletek (A2-ben van a kerekítendő szám, a SignificantDigits pedig az értékes jegyek száma):
=KEREKÍTÉS(A2;SignificantDigits-INT(LOG(ABS(A2)))-1)
=FIX(A2; SignificantDigits-INT(LOG10(ABS(A2)))-1;IGAZ)Az első képlet a második módszer, a második pedig a harmadik . Remélem érthető. Ez utóbbira írtam egy egyszerű függvényt is:
Function Sigdig(number As Range, SigDigits As Integer)
Sigdig = WorksheetFunction.Fixed(number, SigDigits - Int(WorksheetFunction.Log10(Abs(number))) - 1, True)
End FunctionEz pedig úgy működik, hogy:
=Sigdig(A2;3)
Egy problémám van vele. Azt hogy lehet megoldani, hogy számot és tartományt is meg lehessen adni a képletben? Mert vagy ez működik, vagy az. Meg hogy lehetne azt megcsinálni, hogy szám legyen a végeredmény (ez esetben a fenti megjelenítési hiba nem zavarna), ne pedig szöveg? Előre is köszönöm a javaslatokat!
Cancel all my meetings. Someone is wrong on the Internet.
-
Fferi50
őstag
válasz bteebi #31845 üzenetére
Szia!
A függvényed első paramétere ne Range legyen, hanem Variant. Ebben az esetben tudsz tartományt és számot is beadni paraméternek, mindkettőt elfogadja.
A vezető ill. követő 0 számjegyeket az Excel cellaformázás egyéni számformátumban tudod beállítani, amit a Range.NumberFormat tulajdonsággal lehet makróban állítani, pl.Range("A2").NumberFormat="000000.000000"
a tizedesvessző előtt és után is 6-6 számjegyet jelenít meg, az üres helyiértékekre 0 kerül.Mivel a FIX függvény alapból szöveget ad vissza, ezért szám csak akkor lesz belőle, ha a VAL függvénnyel átalakítod számmá.
Function Sigdig(number As Variant, SigDigits As Integer) As Double
Sigdig = Val(WorksheetFunction.Fixed(number, SigDigits - Int(WorksheetFunction.Log10(Abs(number))) - 1, True))
End FunctionÜdv.
[ Szerkesztve ]
-
veterán
válasz d@minator #31847 üzenetére
Sziasztok!
Makróban kérném a segítségeteket, mert nem vagyok a téma szakértője. Ezért is kezdtem makró rögzítéssel, de az eredmény nem tökéletes, sőt.
A probléma: adott egy cella, amibe az érték egy FKERES függvény révén kerül be. A konkrét érték egy URL hivatkozás. Ezt a hivatkozást kellene (és nem magát az FKERES-t, ugye) átmásolnom egy másik cellába, amelybe már jó lenne, ha linkelt hivatkozásként kerülne be. Ha ez megtörtént, ugyanezen cellán kellene ütnie a makrónak egy entert, majd a kurzort egy másik cellába (az FKERES érték mezőjébe) ugratnia, majd törölni a már benne lévő értéket.
A feladat, amire szánom: adott fájlok nevére keresve kolléga beüti a fájl nevét az FKERES keresőmezőjébe, ami kikeresi egy rejtett lapfülről (vagy még inkább jobb lenne, ha egy másik táblázatból az adott fájlnévhez tartozó hálózati elérési utat, amelyről automatikusan megnyílik az adott fájl.
A felvétellel már ott gondba kerültem, hogy a rögzítés során a cellában lévő adatot másolja át és illeszti be egy másik cellába, tehát nem veszi figyelembe, hogy az FKERES eredménye már régen lecserélte az adott cella értékét.
Ha tudnátok segíteni, hálás lennék! Köszi előre is!
-
Fferi50
őstag
Szia!
Túlságosan is excelesen gondolkodsz, ezt VBA (makró) sokkal egyszerűbben oldja meg.
A kiválasztott fájlnévhez tartozó elérési út alapján a Workbook.Open eljárással meg tudod nyitni az adott fájlt.
Tehát: van egy táblázatod, ami tartalmazza a kiválasztható fájlneveket és a hozzájuk tartozó elérési utakat. Egy cellára - keresőcella - csinálsz adatérvényesítést, ami a kiválasztható fájlneveket tartalmazza - csak ebből lehet választani, így nem lehet elrontani a keresést.
Pl: H1-H5 tartalmazza a listát, I1-I5 tartalmazza az elérési utat.
A1 legyen a kereső mező.
A1 adatérvényesítése lista - forrása $H$1:$H$5
Worksheet change eseménybe kerül a következő makró:Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Application.EnableEvents = False
Workbooks.Open Filename:=Range("$H$1:$H$5").Find(What:=Target.Value, LookIn:=xlValues, lookat:=xlWhole).Offset(0, 1).Value & Target.Value
Application.EnableEvents = True
End If
End SubNe felejtsd el, hogy az elérési út végére kell egy backslash \
Az adott munkalaphoz úgy viheted be, hogy a munkalap fülre állva jobb egérgomb, kód megjelenítése, majd bemásolod a megjelent ablakba.Ha választható listát másik munkalapon szeretnéd tárolni, akkor el kell nevezned és a nevet kell beírni az adatérvényesítés forrásaként - valamint a makróba is.
Üdv.
[ Szerkesztve ]
-
veterán
válasz Fferi50 #31849 üzenetére
Szia!
Nagyon szépen köszönöm, sokat segítettél ezzel! Még egy kis probléma van vele, de az én hibám, rosszul írtam le: nem minden esetben azonos a filenév a keresési feltétellel, és ez okozhat jelen állapotban hibát. A link és a keresési feltétel viszont minden esetben össze van rendelve. A gond az, hogy jelen állapotban beírom kézzel a keresési mezőbe, hogy (teszem azt) 11, akkor olyan linket próbál megnyitni, hogy \\VALID_URL\osszerendelt_filenev.akarmi\11, és erre nyilván hibát dob. Persze, az is lehet, hogy a két dolognak semmi köze egymáshoz.
SZERK.: Kivettem a " & Target.Value" részt a szkriptedből, így már nem dob hibát, viszont a fájlt Excel-ben szeretné megnyitni. Ez nem lenne gond, de ez egy .pdf
[ Szerkesztve ]
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen