Hirdetés

2024. április 27., szombat

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

(#32851) Fferi50 válasza lenkei83 (#32850) üzenetére


Fferi50
őstag

Szia!

Szerintem igen. (Remélem, így működik majd.)

Üdv.

(#32852) lenkei83 válasza Fferi50 (#32851) üzenetére


lenkei83
tag

Szia!

Így biztosan jó lesz, csak Excel 2010 verzió fölött a protect/unprotect elég lassúcska, és pont ezt szerettem volna elkerülni. :O

Üdv.:
P.

(#32853) botond2225


botond2225
csendes tag

Sziasztok,

Olyan képletet keresek, amely megadott feltételt vizsgál meg, és az alapján ír be egy szöveget egy cellába.
Ha a keresendő cella szövegében szerepel egy adott szöveg (ezt előre megadnám), akkor egy másik cellába írjon be egy szintén általam megadott szöveget.
Office 2013-at használok egyik gépen magyar, másikon angol.

Tehát pl. ez lenne egy cella tartalma:

1 db,9'' Quad Core Android tablet, Kód: GX00304191-4QN

Ebben kellene keresnie szövegrészt, hogy szerepel-e pl. az alábbi szöveg:

1. keresési feltétel
9" Quad Core

2. keresési feltétel
GPS tablet

stb. (ezeket írnám be én, nagyságrendileg 15-20-ról lenne szó)

Ha szerepel a keresendő cellában az 1. keresési feltétel, akkor írja a másik cellába az alábbi szöveget:
GA33

Ha szerepel a cellában a 2. keresési feltétel, akkor a következőt írja:
MT102W

Remélem érthető a problémám.

Segítségeteket előre is köszönöm.

Üdv,
Bálint

[ Szerkesztve ]

(#32854) Delila_1 válasza botond2225 (#32853) üzenetére


Delila_1
Topikgazda

Ehhez egy saját függvény kell.

Beírod a H oszlopba (H2-től kezdve) a keresendő szöveget (9'' Quad Core), mellé az I-be a GA33-at, alá a többi párost.

Modulba másold be a makrót.

Function Rovidites(Cella As Range)
Dim sor As Integer, usor As Integer

usor = Range("H" & Rows.Count).End(xlUp).Row
For sor = 2 To usor
If InStr(Cella.Value, Range("H" & sor)) > 0 Then
Rovidites = Range("I" & sor).Value
Exit For
End If
Next
End Function

Ha a hosszú szöveged az A2-ben van, akkor a képlet Rovidites(A2). Ugyanúgy másolható, mint a többi függvény.

Vigyázz! a hosszú szövegedben a 9 után 2 db aposztróf van, a keresési feltételnél meg 1 db idézőjel.

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

(#32855) poffsoft válasza Delila_1 (#32854) üzenetére


poffsoft
addikt

Miket észre nem veszel! :D

[ Szerkesztve ]

(#32856) Delila_1 válasza poffsoft (#32855) üzenetére


Delila_1
Topikgazda

Kipróbáltam a függvényt úgy, hogy a hosszú és a rövid szöveget innen másoltam be, de nem működött. Akkor megkerestem az oká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.

(#32857) botond2225 válasza Delila_1 (#32856) üzenetére


botond2225
csendes tag

Az idézőjel és az aposztróf elírás részemről, a keresendő szöveg a hosszú szövegből venném ki (mivel kb. 15-20 ilyen van, ezért nagyjából ez fix-nek mondható), így egy db egyezésnek biztosan kell lennie.

(#32858) Delila_1 válasza botond2225 (#32857) üzenetére


Delila_1
Topikgazda

Kipróbáltad a függvényt?
Abban a füzetben lesz elérhető, amelyiknél egy modulba beírtad.

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

(#32859) botond2225 válasza Delila_1 (#32858) üzenetére


botond2225
csendes tag

Most próbáltam ki, szuper, működik, nagyon köszönöm.
Hogy lehetne úgy használni, hogy ha megnyitom az excelt, mindig működjön, mint bármilyen másik képlet?

(#32860) Delila_1 válasza botond2225 (#32859) üzenetére


Delila_1
Topikgazda

A makró első sora ez legyen:

Application.Volatile

Akkor frissül, mikor a lapra billentyűzetről viszel be valamit, vagy törlöd egy cella tartalmá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.

(#32861) dellfanboy


dellfanboy
senior tag

van 4 excel file -om ami ra van linkelve egy ppt-ra. talalkoztatok mar olyan hibaval hogy a ppt nem frissul be?
megvan nyitva a 4 excel utana megnyitom a ppt update links, nem tortenik ppt-be semmi. raklikkelek az excelekre es latom feldobott egy uzenetet le okezom , de a ppt-be a slide-ok nem frissulnek.. ha egyesevel probalom frissiteni a chartokat ppt-be akkor se mukodik. azert furcsa mert kollegamnak 100% mukodik csak nalam nem es nem jovok ra a hibara.. mire nezzek /googlezzak ra?

eladó dolgok:mondd az árát és vidd http://hardverapro.hu/tag/dellfanboy#aprohirdetesei

(#32862) HREH


HREH
senior tag

Sziasztok, a következő lenne a problémám:

A kijelölt cellába kellene beírnom az 1.A, 4.A és a 8.A mellett lévő értékek átlagát.
Hasonlóképpen, a "C" átlaga cellába a 3.C, 6.C, 10.C mellett lévő értékek átlagát.
És így tovább...

Kérdésem, hogy ezt hogyan lehetne függvénnyel megoldani?
Előre is köszönöm!

(szerk: lehet, hogy tök triviális, de egyszerűen nem fog most az agyam :DDD )

[ Szerkesztve ]

"Fun isn't something one considers when balancing the universe. But this... does put a smile on my face."

(#32863) Delila_1 válasza HREH (#32862) üzenetére


Delila_1
Topikgazda

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

(#32864) HREH válasza Delila_1 (#32863) üzenetére


HREH
senior tag

Tökéletes, nagyon köszönöm! :R
És ha az átlagokat az első oszlop alá számítanám, akkor gondolom csak a tartományt kell beállítani B:B és C:C helyett?
Illetve úgy meg lehet csinálni, hogy nincs külön kiírva, hogy "A" átlaga, "B" átlaga, stb.? (szóval a függvényben hivatkoznék rá)

[ Szerkesztve ]

"Fun isn't something one considers when balancing the universe. But this... does put a smile on my face."

(#32865) Delila_1 válasza HREH (#32864) üzenetére


Delila_1
Topikgazda

Igen, és igen, és szívesen. :)

=ÁTLAGHA(B:B;"*" & "A" & "*";C:C)

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

(#32866) HREH válasza Delila_1 (#32865) üzenetére


HREH
senior tag

Ez is tökéletesen működik :)
Köszi, spóroltál nekem több napot :C :R :R

[ Szerkesztve ]

"Fun isn't something one considers when balancing the universe. But this... does put a smile on my face."

(#32867) Delila_1 válasza HREH (#32866) üzenetére


Delila_1
Topikgazda

Örülök neki, 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.

(#32868) Sprite75


Sprite75
tag

Szasztok

Keresgéltem itt a fórumban de nem találtam a választ a következőre

Van egy táblázatban BA5:BA109 terület, amibe megjegyzéseket (szöveget) írnak.
Összesen eből a 104 cellából naponta kb 5-6-ba. Következő nap pedig lehet hogy másik 5-6 cellába ezek közül.

Az eszen a területen található szöveges információkat szeretném összefűzve megjeleníteni ugyanennek a táblázatnak egy másik lapján egy adott cellába.
Lehetséges ez. Az összefűz -el ha jól tudom csak 30 cella tartalmát lehet megoldani, így gondolom az nem megoldás.

(#32869) lappy válasza Sprite75 (#32868) üzenetére


lappy
őstag

És csak összefűzve szeretnéd látni a másik munkalapon vagy ezeket sorba el is akarod menteni?

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

(#32870) Fferi50 válasza Sprite75 (#32868) üzenetére


Fferi50
őstag

Szia!

2013-as excelben már 255 paramétere lehet az összefűz függvénynek. Nézd meg lsz. a szerkesztősoron a függvényre kattintva, hogy hány paramétert enged meg. (Beírod az =Összefűz( szöveget, rákattintasz az Fx szimbolra, az előugró ablakban ott a szöveg.)

Másik lehetőség: Szürő az oszlopra, nem üresre állítva a szűrőt megkapod azokat a cellákat, amelyekben van érték. Ezeket egyben kijelölheted, átmásolhatod egy másik munkalap összefüggő tartományába. Máris csak pár cellát kell összefűzni, arra meg jó a & műveleti jel is.

Üdv.

[ Szerkesztve ]

(#32871) Sprite75 válasza Fferi50 (#32870) üzenetére


Sprite75
tag

Köszi. Megpróbálom úgy akkor az összefűzzel. A szűrős módszer sajna nem jó mert aki használja annak bonyolult lenne. Azt a lapot amire az összefűzést csinálnám naponta többször is nyomtatják. Ez alap egyébként tartalmazza az aznap felvett megrendeléseket összesítve és ide szeretném a rendelésekhez írt esetleges megjegyzéseket.

(#32872) Certee


Certee
senior tag

Sziasztok!

Keresek Excel-hez értő szakembert. Alap szinten ismerem és használom a programot de szükségem lenne valakire aki profi szinten el tudna készíteni nekem egy munkát. Természetesen kifizetem a ráfordított időt.

Egy szabad országban, egy szabad ember, azt tesz amit szabad... http://www.biwak.hu

(#32873) lenkei83


lenkei83
tag

Sziasztok!

Thisworkbook-ban hogyan tudok global vagy public ranget megadni?

Ez nem működőképes:

Public valid_cell_range As Range
Option Explicit

Private Sub Workbook_Open()
Set valid_cell_range = Munka8.Range("K4:K34")
End Sub

köszi.:
P.

(#32874) Fferi50 válasza lenkei83 (#32873) üzenetére


Fferi50
őstag

Szia!

Szerintem ennek működni kellene, viszont mivel a Thisworkbook kódlapja nem általános modul, hanem osztálymodulnak számít, a változót csak úgy tudod elérni, ha a teljes nevével hivatkozol rá, azaz Thisworkbook.valid_cell_range. Ebben a formában már látja minden modul - és a vba segítőben is látod.

Üdv.

[ Szerkesztve ]

(#32875) lenkei83 válasza Fferi50 (#32874) üzenetére


lenkei83
tag

Szia Feri!

Lefut hiba nélkül. A bajom az, hogy nem tárolja el a range-t, így nem tudok másik modulban hivatkozni rá.

Üdv.:
P.

(#32876) Fferi50 válasza lenkei83 (#32875) üzenetére


Fferi50
őstag

Szia!

Közben szerkesztettem a választ! Néha én is belefutok ilyenbe - a változó ott van, jó is, csak másként kell elérni.

Üdv.

(#32877) lenkei83 válasza Fferi50 (#32876) üzenetére


lenkei83
tag

Aham, így már működik. Viszont azt nem értem, hogy ha lefut a workbook_open és utána próbálom lekérdezni a range addresst akkor hibát ír, viszont ha selectet írok akkor kijelöli. :W

(#32878) Fferi50 válasza lenkei83 (#32877) üzenetére


Fferi50
őstag

Szia!

Ha mindkétszer a Thisworkbook előtag nélkül próbálod, akkor egyik sem működhet. Illetve, ha az eseménykezelőben megállsz, akkor nem kell az előtag, akkor sem kell, ha éppen a Thisworkbook kódlapon levő másik eljárásban vagy függvényben használod.

Üdv.

[ Szerkesztve ]

(#32879) lenkei83 válasza Fferi50 (#32878) üzenetére


lenkei83
tag

Igaz, és a hiba is meg lett. Lemaradt egy "s" az adress végéről.

Köszönöm a segítséget! :R

(#32880) Fferi50 válasza lenkei83 (#32879) üzenetére


Fferi50
őstag

Nincs mit!
További jó munkát! :)

(#32881) Sprite75 válasza Sprite75 (#32871) üzenetére


Sprite75
tag

Gyönyörű lett de működik :)

Ilyen lett

Azt hittem létezik rá valami elegánsabb megoldás, de így is jó lesz.

Köszi

[ Szerkesztve ]

(#32882) Pakliman válasza Sprite75 (#32881) üzenetére


Pakliman
tag

Szia(sztok)!

"Elegánsabb" megoldás, de kell a VBA:

Public Function MyÖsszefűz(terület As Range, Optional elválasztó As String = ";") As String
Dim cella As Range
Dim temp

For Each cella In terület
If cella <> "" Then temp = temp & IIf(temp <> "", elválasztó, "") & cella
Next cella

MyÖsszefűz = temp

End Function

(#32883) tzimash


tzimash
őstag

Sziasztok,

Makróval kereteztetnék be egy területet, használtam a makrórögzítőt, de nem tetszik az eredmény...
Van ennél egyszerűbb (kevésbé terjedelmes) módja?
Valami olyasmi, hogy A1: C4 területen az összes vonal (kivéve átlók) fekete, folytonos, vékony legyen?
Sub keret()
Range("A1:C4").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub

[ Szerkesztve ]

(#32884) Sprite75 válasza Pakliman (#32882) üzenetére


Sprite75
tag

Hello
Ott a pont :)
Köszönöm szépen.


A Rendelés fülön ha beírnak valamit a "BA" megjegyzés oszlopba azok a beírások megjelennek a Összesítve fülön az aznapi rendelések összesítésével együtt, amit már lehet is nyomtatni.
Összesen 105 megrendelő van, de a gyakorlatban kb 5-6 bolthoza van írva megjegyzés naponta, így bőben elfér az Összesítve fül Megjegyzések cellájában.

Köszönöm még egyszer, hátha később hsznos lesz másnak is :).

(#32885) botond2225 válasza Delila_1 (#32860) üzenetére


botond2225
csendes tag

Sikerült, köszi.
Most próbálnám több mindennel összehozni, makrót rögzítettem és amikor futtatom, megakad a mellékelt képnél.
Ezt miért írhatta ki?
Ennél azt szerettem volna, hogy jelölje ki A-BA-ig az oszlopokat és másolja le 500-sorig.

[ Szerkesztve ]

(#32886) Fferi50 válasza botond2225 (#32885) üzenetére


Fferi50
őstag

Szia!

Hasznos lett volna, ha a hibakiírást is rajta hagyod a képen.
Talán az lehet a probléma, hogy az offset(0,-52)-t nem tudja értelmezni, mert nincs a kijelölt cellától balra 52 oszlop már. Valószínúleg nem ott állsz, mint ahol a makrót rögzítetted.
Szerintem elég lenne a Destination:=Activesheet.range('A1:BA500"), stb.

Üdv.

(#32887) Fferi50 válasza tzimash (#32883) üzenetére


Fferi50
őstag

Szia!

Ha mindent egyformán szeretnél bekeretezni, akkor elég ennyi:
With Range("A1:C4").Borders
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With

Nem kell a select-tel történő kijelölés sem.

Üdv.

[ Szerkesztve ]

(#32888) tzimash válasza Fferi50 (#32887) üzenetére


tzimash
őstag

Köszönöm, ilyesmire gondoltam. :R

(#32889) tzimash


tzimash
őstag

Arra van lehetőség, hogy a makró futása közben tájékoztatni a felhasználót az éppen végrehajtott műveletről? Pl megjelenik egy msgbox, melyben néhány sorban (ami egymás után jelenik meg) kiíratni, hogy éppen mi történik a háttérben, mire véget ér a makró futása a box is eltűnik. Esetleg alá egy folyamatjelző? :)

(#32890) Fferi50 válasza tzimash (#32889) üzenetére


Fferi50
őstag

Szia!

Az MsgBox nem tűnik el addig, amíg a felhasználó rá nem kattint az OK gombra.

Az állapotsor felhasználható a folyamatok jelzésére:
Application.Statusbar="Most itt járok:" & "éppen indexelek"
A makró végén pedig Application.Statusbar=False - visszaadja a vezérlést az Excelnek (ez utóbbit ne felejtsd ki, mert egyébként az állapotsoron ott marad, amit legutoljára kiírattál.
Az állapotsorba rajzkarakterket is tehetsz, színt viszont nem.

Lehet még olyan megoldás is, hogy egy userformot hozol létre, amire az üzeneteket kíírod egy Labelba, majd a Userform1.Show false paraméterrel hívod meg - ekkor a makró fut tovább, a form pedig addig lesz kinn, amíg az Unload Userform1 sort be nem írod, vagy a felhasználó "ki nem x-eli".
Az üzeneteket menet közben változtathatod, amíg a form kint van, pl. Userform1.Label1.Caption="Most más szöveg jön".
Ide rajzos karaktereket is tehetsz és színezheted is. De azért nem árt sokat gyakorolni, mielőtt ráereszted a felhasználóra.

Üdv.

(#32891) tzimash válasza Fferi50 (#32890) üzenetére


tzimash
őstag

Köszi, szóval nem reménytelen, megpróbálok alkotni valamit.
Msgboxban is meg lehet csinálni, csak a végén OK-t kell nyomni? Ezzel még együtt tudnék élni. :)

(#32892) Fferi50 válasza tzimash (#32891) üzenetére


Fferi50
őstag

Szia!

Minden MsgBox üzenet esetén kell OK vagy más gombot nyomnia a felhasználónak, nem csak a program végén :-(
Miért nem jó neked az állapotsor ott a képernyő alján? Ott nem kell a felhasználónak semmit csinálnia, csak nézni, mint boci...
Az elején pedig írhatsz egy MsgBoxot neki, hogy lesse az alsó sort, ha kíváncsi (ha nem).
Én hosszú folyamatoknál itt szoktam pörgetni a számlálót, hogy x tétel,cella van feldolgozva y darabból és általában 100-asával változtatom (mert különben nem látsz semmit a pörgéstől). Irtó kellemetlen lenne a felhasználónak, ha pár másodpercenként nyomkodnia kellene az entereket (mert "túl gyors" a program).
Szerintem akkor van értelme MsgBox-nak, ha a felhasználó döntésétől is függ, hogy mit csinálsz tovább, pl. nincs meg minden adat, de szeretne hiányos adatokkal is továbbmenni stb., illetve ha valami szokatlan történt és hibáról kell tájékoztatni.

Üdv.

[ Szerkesztve ]

(#32893) Pikkolo^^


Pikkolo^^
addikt

Találkoztatok olyannak, hogy a szűrő nem működik? Az egyik lapon bármire szeretnék szűrni mindig több találatod ad vissza, mint amik kellenek. Nem csak nekem hanem kollégáimnak sem működik megfelelően.

(#32894) Delila_1 válasza Pikkolo^^ (#32893) üzenetére


Delila_1
Topikgazda

Előfordulhat, hogy túl sok adat van a szűrendő oszlopban.
Nem tudom, a magasabb verziókban hány sor a határ, a 2003-as verzióban 1000 sorig volt biztonságos a szűrés. Az alatta lévő sorokat megmutatta szűrés nélkül.

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

(#32895) Pikkolo^^ válasza Delila_1 (#32894) üzenetére


Pikkolo^^
addikt

2016-os Office van 46XX sor van benne és most visszakeresve 34XX-ig jó a szűrés vagy ott már csak olyan értékek vannak. Az a furcsa, hogy egy hónapja még semmi gond nem volt vele.

(#32896) Delila_1 válasza Pikkolo^^ (#32895) üzenetére


Delila_1
Topikgazda

Most unta meg, hogy rendszeresen túlléptétek a határt. :))

Nézd meg a linket, biztosan segí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.

(#32897) Pikkolo^^ válasza Delila_1 (#32896) üzenetére


Pikkolo^^
addikt

Nincsen link.

(#32898) Pikkolo^^ válasza Pikkolo^^ (#32897) üzenetére


Pikkolo^^
addikt

(#32899) Tomjack


Tomjack
tag

Sziasztok

Még mindig keresnék egy megoldást erre:

Van egy szám halmaz. Ebből szeretném 1,2,3,4,5,6 számoknak megnézni a gyakoriságát.

Köszönöm

(#32900) Delila_1 válasza Pikkolo^^ (#32897) üzenetére


Delila_1
Topikgazda

Megpróbálom újra feltenni, bár megtaláltad a megoldá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.

Útvonal

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