Hirdetés

2024. április 28., vasárnap

Gyorskeresés

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-11-13 08:31:56

LOGOUT.hu

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.

Összefoglaló kinyitása ▼

Hozzászólások

(#31801) menledge válasza alfa20 (#31798) üzenetére


menledge
senior tag

Köszi a választ!

Nem egészen erre gondoltam, de azóta másképp megoldódott a dolog :)

(#31802) Declare


Declare
őstag

Sziasztok!

Megint egy kis Macros kerdes :B

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 Sub

A 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 :B :R

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 ]

(#31803) alfa20 válasza lappy (#31800) üzenetére


alfa20
senior tag

Aha, szóval válogasson addig a számokból míg nem a kívánt eredményt kapja :Y

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 :D

#31801: ha megoldódott az jó, az ilyet sokan szeretik :D

[ Szerkesztve ]

"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)

(#31804) lappy válasza alfa20 (#31803) üzenetére


lappy
őstag

Elsőnek azt kell megvizsgálni hogy a meglévő számok összege kiadja-e a kérdéses számot. Ha igen akkor mivel az nagyobb akkor csak ki kell szedni a jókat és nem lesz túl bonyolítva. Ha nem akkor ERROR :DD

Bámulatos hol tart már a tudomány!

(#31805) RAiN91


RAiN91
őstag

szerk: semmi

[ Szerkesztve ]

(#31806) Fferi50 válasza lenkei83 (#31799) üzenetére


Fferi50
őstag

Szia!

E-mailben válaszoltam neked. Kicsit munkás, de meg lehet csinálni.

Üdv.

(#31807) Fferi50 válasza Declare (#31802) üzenetére


Fferi50
őstag

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án
If 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 ]

(#31808) Dr V


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...

(#31809) föccer válasza Dr V (#31808) üzenetére


föccer
nagyúr

Transzponálással nem működik? Még nem próbáltam sosem.

üdv, föccer

Építésztechnikus. Építőmérnök.

(#31810) róland válasza Dr V (#31808) üzenetére


róland
veterán

Tippre Transzponálás, de az a cella eredményét másolja, oszlopból -> sorba, vagy sorból -> oszlopba.

http://logout.hu/cikk/mi_is_az_a_htpc/teljes.html; Három emeleten át egy teljes liftrapszódiát játszik!

(#31811) föccer válasza róland (#31810) üzenetére


föccer
nagyúr

Azt másolja, amit megadsz neki. Ugyan úgy tud képletet is másolni, csak azt nem tudom, hogy automatán átírja-e a hivatkozásokat, vagy sem.

üdv, föccer

Építésztechnikus. Építőmérnök.

(#31812) róland


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!

(#31813) lappy válasza róland (#31812) üzenetére


lappy
őstag

A google segít neked! Keress minta űrlapokat és az alapján el tudod készíteni

Bámulatos hol tart már a tudomány!

(#31814) Dr V válasza föccer (#31811) üzenetére


Dr V
őstag

Próblátam, h másolja a képletet és transzportálja (paste special), de #REF hibával megállt a tudomány.

(#31815) PeLa87


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

(#31816) Delila_1 válasza PeLa87 (#31815) üzenetére


Delila_1
Topikgazda

Egy üres cellába:

=HA(ÉS(HÓNAP(MA())=HÓNAP(G2);NAP(MA())=NAP(G2));"Ma " & ÉV(MA())-ÉV(G2) & " éves";"")

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31817) PeLa87 válasza Delila_1 (#31816) üzenetére


PeLa87
aktív tag

Nagyon köszönöm! Végre nagyban megkönnyítette a munkámat! :)

[ Szerkesztve ]

Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99

(#31818) Delila_1 válasza PeLa87 (#31817) üzenetére


Delila_1
Topikgazda

Nincs mit. :)

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31819) #92888064


#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:R

[ Szerkesztve ]

(#31820) föccer válasza #92888064 (#31819) üzenetére


föccer
nagyúr

Nyomtatási beállításoknál van ilyen lehetőség, hogy ismétlődő sorok kijelölése. Az kell neked. :K

üdv, föccer

[ Szerkesztve ]

Építésztechnikus. Építőmérnök.

(#31821) #92888064 válasza föccer (#31820) üzenetére


#92888064
törölt tag

köszi, közben megtaláltam a lapelrendezés/címek nyomtatása menüpontban.
viszont az áthozat a cifra lesz, de alapvetően nem létszükség.

(#31822) PeLa87


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:

[link]

=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ése

Esetleg 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... :D 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

(#31823) Delila_1 válasza PeLa87 (#31822) üzenetére


Delila_1
Topikgazda

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.

(#31824) PeLa87 válasza Delila_1 (#31823) üzenetére


PeLa87
aktív tag

Ismét nagyon szépen köszönöm a segítséged! :R

Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99

(#31825) Delila_1 válasza PeLa87 (#31824) üzenetére


Delila_1
Topikgazda

Szívesen. :)

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31826) PeLa87 válasza Delila_1 (#31823) üzenetére


PeLa87
aktív tag

Szia!

Esetleg arra tudsz megoldást, hogy kinyomtatva a vonalkódok miért nem olvashatók be? 2 fajta vonalkód olvasóval is teszteltem.

Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99

(#31827) Delila_1 válasza PeLa87 (#31826) üzenetére


Delila_1
Topikgazda

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.

(#31828) PeLa87 válasza Delila_1 (#31827) üzenetére


PeLa87
aktív tag

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

(#31829) PeLa87 válasza Delila_1 (#31827) üzenetére


PeLa87
aktív tag

Bocsánat, hogy nem az előzőbe írok, de nem engedi már szerkeszteni...

Nahh, csillagozás megvan: =ÖSSZEFŰZ("*";cella;"*") képlettel...

Viszont ezek után rosszul jeleníti már meg a vonalkódot... :S

Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99

(#31830) Delila_1 válasza PeLa87 (#31829) üzenetére


Delila_1
Topikgazda

Annyi az egész, hogy a küldött makró utolsó sorát kibővíted.

Eredeti: Karaktercsere = strTemp

Bővített: Karaktercsere = "*" & strTemp & "*"

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31831) PeLa87 válasza Delila_1 (#31830) üzenetére


PeLa87
aktív tag

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

(#31832) Delila_1 válasza PeLa87 (#31831) üzenetére


Delila_1
Topikgazda

Keress a neten egy másik barcode tip. karakterkészletet.

Nálam a 3of9_new.ttf jó értékeket ad.

[ 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.

(#31833) PeLa87 válasza Delila_1 (#31832) üzenetére


PeLa87
aktív tag

Rendben, keresek!

Köszönöm! Ezzel a típussal tényleg működik! Nem értem a Code 128-cal miért nem.

[ Szerkesztve ]

Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99

(#31834) Declare válasza Fferi50 (#31807) üzenetére


Declare
őstag

:R
Majdnem tökeletesen jo. Annyi a problemam, hogy nekem nem csak a szumma számértékét kellene beirnia, hanem magát a SUM függvenyt.

Probalkozom most netes peldak alapjan megvalositani, de eddig nem igazan sikerül.

Ebben meg tudok kapni egy kis segitseget? :B

(#31835) Delila_1 válasza PeLa87 (#31833) üzenetére


Delila_1
Topikgazda

2 napja javasoltam ezt a karakter készletet. ;]

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31836) DeFranco


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?

(#31837) Delila_1 válasza DeFranco (#31836) üzenetére


Delila_1
Topikgazda

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 Sub

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31838) bsasa1 válasza DeFranco (#31836) üzenetére


bsasa1
csendes tag

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.

(#31839) DeFranco válasza Delila_1 (#31837) üzenetére


DeFranco
nagyúr

nagyon köszönöm :R

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 :R

@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. :R

[ Szerkesztve ]

(#31840) Delila_1 válasza DeFranco (#31839) üzenetére


Delila_1
Topikgazda

Nézd az előző hsz-t!

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31841) PeLa87 válasza Delila_1 (#31835) üzenetére


PeLa87
aktív tag

Tudom, tudom! :) Csak én mindig code 128-at használok mindenhova :) De most már a tied lesz használatban! :) És köszi még egyszer! :)

Megbízható és olcsó tárhely: https://cweb.hu/ugyfeladmin/aff.php?aff=99

(#31842) d@minator


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 ]

(#31843) föccer válasza d@minator (#31842) üzenetére


föccer
nagyúr

Darabhatobb fuggvenyt nezd meg,az kell neked.

Építésztechnikus. Építőmérnök.

(#31844) Delila_1 válasza d@minator (#31842) üzenetére


Delila_1
Topikgazda

=SZUMHA(F1:F20;"A";E1:E20)

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#31845) bteebi


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 :DDD), 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 :DDD. 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 Function

Ez 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! :R

Cancel all my meetings. Someone is wrong on the Internet.

(#31846) Fferi50 válasza bteebi (#31845) üzenetére


Fferi50
őstag

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 ]

(#31847) d@minator válasza Delila_1 (#31844) üzenetére


d@minator
addikt

Tökéletes, köszönöm!
(#31843) föccer: majd azt is megnézem. Köszönöm!

(#31848) Timer válasza d@minator (#31847) üzenetére


Timer
veterán

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!

(#31849) Fferi50 válasza Timer (#31848) üzenetére


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 Sub

Ne 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 ]

(#31850) Timer válasza Fferi50 (#31849) üzenetére


Timer
veterán

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 ]

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.