Hirdetés

2024. április 30., kedd

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

(#24901) air válasza Fferi50 (#24898) üzenetére


air
nagyúr

Köszi, kipróbálom. De hogyan is kell ezt használni?

Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló

(#24902) Delila_1 válasza KaliJoe (#24900) üzenetére


Delila_1
Topikgazda

Ha a kijelölés megszüntetésére gondolsz, például egy másolás után

Application.CutCopyMode = False

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

(#24903) Fferi50 válasza air (#24901) üzenetére


Fferi50
őstag

Szia!

Elnavigálsz abba a könyvtárba, ahol a fájljaid vannak.
Elindítod az excelt, ami egy új munkafüzettel indít.
Ide összemásolhatod a fájlokat.
Ezután Alt+F11 lenyomásával átmész a VBA project ablakba.
A menüből kiválasztod az insert, azon belül pedig a module pontot.
A megnyilt modullapra bemásolod az alábbi kódot:
Sub osszerako()
Dim hova As Worksheet, fajlneve As String, usor As Long, xx As Integer
Set hova = ActiveSheet
fajlneve = Dir("*.xls*")
Application.EnableEvents = False
Applicaton.ScreenUpdating=False
Do While fajlneve <> ""
xx = xx + 1
usor = hova.UsedRange.Rows.Count + 1: If usor = 2 Then usor = 1
Workbooks.Open Filename:=fajlneve, ReadOnly:=True
ActiveSheet.UsedRange.Copy Destination:=hova.Cells(usor, 1)
ActiveWorkbook.Close False
fajlneve = Dir()
If xx Mod 10 = 0 Then Application.StatusBar = "Másolva: " & xx & "db fájl!"
Loop
Application.EnableEvents = True
Application.ScreenUpdating=True
Application.StatusBar = False
MsgBox "A másolásnak vége, kérem, mentse el a fájlt!", vbInformation, "Fájlok összemásolása"
End Sub

Visszamész az excel munkalapra (Alt+F11 ismét).
Ezután menü - nézet- makrók megjelenítése. Megjelenik a listában az osszerako. Inditás.
Alul a státusz soron fogod látni a begyűjtött fájlok számát, tizesével nőve.

Ha végzett, kapsz egy üzenetet.
Ezután mentés másként művelettel nevezd el a fájlodat, a mentés után bezárhatod.

Remélem, sikerülni fog.

Üdv.

(#24904) Fferi50 válasza KaliJoe (#24900) üzenetére


Fferi50
őstag

Szia!

Ne feledd, hogy legalább egy cella mindig ki van jelölve. A másolt cellákról úgy veheted le a kijelölést, ahogyan Delila is írta.
Egyébként pedig úgy, hogy kijelölsz select paranccsal egy másik cellát ( :) ).

Üdv.

(#24905) air válasza Fferi50 (#24903) üzenetére


air
nagyúr

Run-time error '424': Object required
Gondolom nem találja a fájlokat.
Nem értem az elejét. Hogy érted azt, "Elnavigálsz abba a könyvtárba, ahol a fájljaid vannak."?
Parancssorban? Intézőben? Hogyan?

Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló

(#24906) alfa20 válasza KaliJoe (#24900) üzenetére


alfa20
senior tag

Szia,

Ezt illeszd be a beillesztés után:
Application.CutCopyMode = False

megelőztek :D

[ Szerkesztve ]

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

(#24907) air válasza air (#24905) üzenetére


air
nagyúr

Működik!
Köszi.
Szintaktikai hiba volt benne. Hiányzott egy i betű az egyik application szóból.

Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló

(#24908) air válasza air (#24907) üzenetére


air
nagyúr

Sajnos csak a próba sikerült, élesben nem megy a dolog.
Nem tudom, hogy az előbb miért annak a könyvtárnak a tartalmát kezdte összemásolni amelyiket valóban kellett, mert most az istennek sem tudom rávenni, hogy azt csinálja, amit én akarok, ne pedig a teljes "Dokumentumok" mappámat.
Tehát továbbra sem tiszta, hogy miként kell elnavigálni a kérdéses mappába.

[ Szerkesztve ]

Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló

(#24909) marcyman


marcyman
aktív tag

Sziasztok!

Kérdésem, hogy a következőt meg lehet-e oldani valahogy:

Adott egy táblázat ahova az ADOTT napi adatoknak át kellene frissülniük egy másik táblázatból, ahol minden nap új sorba írom az adatokat.

Tehát van egy napi jelentés, ahova átfrissülne egy másik táblázatból az adott napi adatok, automatán. Valahogy léptetné az adott sort (napot) mindig tovább.

(#24910) KaliJoe válasza Delila_1 (#24902) üzenetére


KaliJoe
csendes tag

Szia Delila_1,

Köszönöm. Azt hiszem erre gondoltam... Viszont, nem csak a Copy kijelölést kellene levenni, hanem a beillesztés kijelölését is!

Erre mi a helyes parancs?

Frazeológiám: Az ember nem kávéra, nem is kávéházra vágyik, az ember lelke barátra vágyik, a kávé csupán ürügy... :-) ;)

(#24911) Delila_1 válasza KaliJoe (#24910) üzenetére


Delila_1
Topikgazda

Tedd aktívvá a "kedvenc" celládat.

Cells(1).Select, vagy Cells(1).Activate

A cells(1) az A1 cellára mutat.

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

(#24912) Fferi50 válasza air (#24908) üzenetére


Fferi50
őstag

Szia!

Az alábbi kis makrórészletet légy szíves betenni a dim sor után:
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = CurDir()
If .Show Then
ChDir (.SelectedItems(1))
Else
MsgBox "Nem választottál, kilépek a programból!", vbCritical :Exit Sub
End If
End With

Így amikor elindítod a programot, kiválaszthatod, hogy melyik könyvtár adatait rakja össze (ez talán jobb is, mintha kívülről navigálnál, mert ez biztosan oda visz, ahova szeretnéd).
Ha nem válaszottál könyvtárat, akkor nem megy tovább.

Üdv.

(#24913) air válasza Fferi50 (#24912) üzenetére


air
nagyúr

Ez így a tökéletes.
Igaz közben sikerült megoldani mégis csak.
Nagyon köszönöm. :R

Tintatartó, aligátor, búzavirág, csók, gyalupad, fogpiszkáló

(#24914) Fferi50 válasza air (#24913) üzenetére


Fferi50
őstag

Igazán nincs mit.
Elnézést, hogy az elején nem gondoltam a könyvtár kiválasztásra.

Üdv.

(#24915) #02644736


#02644736
törölt tag

Tudna valaki abban segíteni, hogy ha egy cella értékét másolom át egy másik munkalapra, nem marad meg ugyanúgy, pl. ha a cellában ez van C_121_14 (a második egyesnek alsó indexben kellene lennie, de nem tudom úgy itt beírni), hogy azt úgy másolja át egy másik cellában, hogy az az egyes alsó indexben maradjon, mert másolás után úgy néz ki, mint ahogy itt leírtam (nem lesz alsó indexben)

(#24916) Wyll válasza Fferi50 (#24878) üzenetére


Wyll
őstag

Nem akarom elfelejteni, úgyhogy KÖSZÖNÖM!, mert végül mégiscsak működött a sima Paste link:=true verzió.

Nem tudom, hogy nekem előzőleg miért nem ment, pedig tényleg kipróbáltam :F

Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=Wyll

(#24917) alfa20


alfa20
senior tag

Sziasztok,

Abban tudnátok segíteni, hogy UseForm1-ben Label1 és Label2-ben szerepel egy-egy szám, valamint Label3-ban vagy "+" vagy "-". Label4-ben kellene az értéket mutatnia :) valahogy így:

Label4 = sum(Label1 & Label3 & Label2)

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

(#24918) Delila_1 válasza alfa20 (#24917) üzenetére


Delila_1
Topikgazda

Label-ben nem tudsz értékeket megadni, erre a Textbox való. Mivel a textboxok szöveges értéket adnak (a nevükben is ez szerepel), meg kell szoroznod azokat 1-gyel, hogy számolni lehessen velük.

A képen a lévő ComboBox RowSource tulajdonságába ezt írtam: Munka1!A1:A2, mert ebbe a két cellába írtam a + és - jelet, előttük aposztróffal.

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

(#24919) alfa20 válasza Delila_1 (#24918) üzenetére


alfa20
senior tag

és ha egy változóba eltárolnám?
pl:

szam1$ = TextBox1 * 1
szam2$ = TextBox2 * 1
muv$ = TextBox3

[ Szerkesztve ]

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

(#24920) Delila_1 válasza alfa20 (#24919) üzenetére


Delila_1
Topikgazda

A TextBox3 is szöveges értéket ad. Kell az If-es megoldás.

A szam1$ és szam2$ eleve szöveges változót tartalmazhat, ezt írja elő a nevük végén lévő $ 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.

(#24921) Delila_1 válasza alfa20 (#24919) üzenetére


Delila_1
Topikgazda

A formon egy label-be is beírhatod az eredményt.

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

(#24922) alfa20 válasza Delila_1 (#24921) üzenetére


alfa20
senior tag

Egy egyszerű kalkulátort akartam készíteni, de akkor nem fog menni :(

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

(#24923) Mutt válasza marcyman (#24909) üzenetére


Mutt
aktív tag

Szia!

Adott egy táblázat ahova az ADOTT napi adatoknak át kellene frissülniük egy másik táblázatból, ahol minden nap új sorba írom az adatokat.

Makróval támogatva megy.
Lépések:
1. A minden nap bővülő táblázatba kell egy függvény egy fix helyen amely megadja az utolsó sort.
pl. legyen a B1 cella
2. Az utolsó sor számát meg lehet tudni DARAB vagy DARAB2, esetleg a HOL.VAN függvénnyel.
pl. legyen a B1 képlete =DARAB2(A:A)
3. Ezt a cellát linkeldbe a másik fájlba.
4. A másik fájl egyik eseményére (ez lehet a fájl megnyitása, vagy az egyik lap módosítása) be lehet tenni az alábbi egy sort (a példában A1-ben van a linkelt mező és alá A2-be írjuk az utolsó sor hivatkozását):
Range("A2").Formula = "=[másik fájl neve,xlsx]Munka1!$A" & Range("A1")
5. Csak ezt a fájl kell makróbarát füzetként menteni, a másikat nem kell.

A 4-es lépésben említett sor helyett, itt egy kicsituniverzálisabb megoldás. Ez 3-as lépésben linkelt mezőből kiveszi a másik fájl elérését, így azzal már nem kell foglalkoznod,

Private Sub Worksheet_Activate()
Dim link As Variant
Const oszlop As String = "A" 'A-oszlopban vannak a napi adatok a másikban

link = Split(Range("A1").Formula, "!")

Range("A2").Formula = link(0) & "!" & oszlop & Range("A1").Value
End Sub

üdv

A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

(#24924) marcyman válasza Mutt (#24923) üzenetére


marcyman
aktív tag

Köszönöm!
Eddig alapszinten küldtem az excelt, remélem sikerül megbirkóznom vele. :)

(#24925) Delila_1 válasza alfa20 (#24922) üzenetére


Delila_1
Topikgazda

Feltettem egy félkész fájlt. Hiányzik a 4-9 gombok makrója, és meg kell oldani, hogy több műveletet is végre lehessen hajtani egymás után.

Nézd meg az F1 cella képletét a névadásban.

Kalkulátor

Jó szórakozá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.

(#24926)



addikt

Sziasztok!

Egy táblázatból szeretnék értékeket kinyerni, vlookup szerűen, csak kicsit szofisztikáltab módon.

Inkább mutatok egy példát, talán úgy egyszerűbb elmagyarázni.

A fenti táblázatban a kék az input cella, a sárgába várom az eredményt. Most helyesen van kitöltve, szóval ezekre az eredményekre számítanék.

Ha B2 cellába írok egy értéket, akkor azt összevetné az A6;A14 számsorral és aminél még nagyobb, vagy egyenlő, azt a számot venné ki a B oszlopból.
Szóval most B2-ben 265-van, így a 200-hoz tartozó 4-et veszi fel értékként.
C2-ben 225 van, így ott is a 200-hoz tartozó 8-at veszi fel értékként.
D2-ben 299-van, így ott viszont még a 250-hez tartozó 16-ot kéne felvegye.

Kicsit bonyolítja a helyzetet, hogy néhány cella üres. Tehát pl az első példát nézzük, akkor az A oszlop hivatalosan 0-t kéne felvegyen, hiszen 265 nagyobb, mint 250 és a 250-nél nem szerepel semmi.
Itt maximum azt tudnám csinálni, hogy az üres helyekre a táblázatban kézzel beírom a megelőző értéket. De jó lenne egy elegáns megoldás erre is, hogy ezt a excel le tudja kezelni.

''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''

(#24927) Delila_1 válasza (#24926) üzenetére


Delila_1
Topikgazda

Egyszerűen kitöltheted az üres helyeket.
Kijelölöd a B6:D14 területet. Ctrl+g-re bejön az ugrás menü, ahol az irányítottat, majd az üres cellákat választod. Marad a kijelölés, az aktuális cellába beírsz egy egyenlőség jelet, majd FEL nyilat nyomsz, Ctrl+Enter.

Ezután már csak a képletet kell beírni a B3-ba: =FKERES(B2;$A$6:$D$14;OSZLOP();1), és ezt jobbra másolni.

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

(#24928) alfa20 válasza Delila_1 (#24925) üzenetére


alfa20
senior tag

:DD :C :R
Köszönöm!

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

(#24929) Delila_1 válasza alfa20 (#24928) üzenetére


Delila_1
Topikgazda

Egy keveset javítottam rajta, priviben küldöm.

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

(#24930) válasza Delila_1 (#24927) üzenetére



addikt

wow, köszi, nem tudtam ,hogy vlookuppal ez simán működik

''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''

(#24931) Delila_1 válasza (#24930) üzenetére


Delila_1
Topikgazda

Az utolsó paraméter a fontos, az határozza meg, hogy pontos-, vagy közelítő értéket adjon vissza.

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.

(#24932)



addikt

Ezen felbátorodva kérdezek mégegyet. :)

Amolyan dinamikusan változó számformátumot szeretnék.

Tehát pl A1 cellában '455' van.
Ha ezt megszorzom 1000-rel, jó lenne, ha 455000 helyett ezt írná: 455ezer. Ha megint megszorzom 1000-rel, akkor pedig ezt: 455millió. Ha megint, akkor 455milliárd. stbstb Nyilván a cella értéke ennek megfelelő lenne, szóval normálisan szeretnék vele tovább számolni, csak grafikusan tenném könnyebben olvashatóbbá a munkalapot.

Tudom, hogy létezik az X szorozva 10 az Y-on formátum, de az nekem nem annyira szimpatikus.
A nagyságrendekre pedig készítenék egy táblázatot, onnan puskázhatna az excel, hogy hova mit kell írnia, ha megoldható.

Szóval lenne egy ilyen táblázatom mankónak, hogy
ezer 1000
millió 1000000
milliárd 1000000000
billiárd 1000000000000

stb

''Annyira vagyunk egészségesek, amennyire a gondolataink humánusak.''

(#24933) biker


biker
nagyúr

Igen izgalmas kérdésem van :)
adott egy tábla. van benne 10.000 sor
a szöveges cella egyben tartalmazza az olasz és az angol terméknevet
Az olasz szöveg álló, az angol dőlt betűs.
Nekem csak az angol kell

hogyan lehet kinyerni, csak a dőlt betűs angol szövegrészt?

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#24934) marcyman válasza Mutt (#24923) üzenetére


marcyman
aktív tag

No ma próbáltam amit írtál, de bevallom a 3. pontnál tovább nem jutottam.
Konkrétan azt sem vágom hova kéne írnom a többit.
Illetve azt sem tudom, hogy milyen tutorialt kéne néznem hozzá, hogy nagyjából megértsem mit is csinálok.
Nagyon megköszönném, ha linkelnél valami gyorstalpalót.

[ Szerkesztve ]

(#24935) Delila_1 válasza biker (#24933) üzenetére


Delila_1
Topikgazda

A laphoz kell rendelned a makrót. Feltételeztem, hogy az első oszlopban vannak a szavak. Ha nem, akkor az

If Target.Column = 1 And Not IsEmpty(Target) Then

sorban az 1-et írd át a formázandó oszlop sorszámára.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim kezd As Integer
If Target.Column = 1 And Not IsEmpty(Target) Then
kezd = InStr(Target, " ") + 1
Range(Target.Address).Characters(Start:=kezd, Length:=Len(Target)).Font.FontStyle = "Italic"
End If
End Sub

Ez a makró az újonnan bevitt magyar-angol szöveg második részét alakítja dőlt betűssé.
Az angol szavakat a =KÖZÉP(A1;SZÖVEG.KERES(" ";A1)+1;80) képlettel kapod meg egy üres oszlopban.

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

(#24936) biker válasza Delila_1 (#24935) üzenetére


biker
nagyúr

Szia!
Köszi, gondolom szöveg.keres nevű legyen a makró, ugye?
Vagy félreértek valamit?

Közben pörgetem végig, ez egy pdf-ből mentett xls, néhol erősen összetört a formázás, nem mindenhol ilyen szabályos :(

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#24937) Delila_1 válasza biker (#24936) üzenetére


Delila_1
Topikgazda

A =KÖZÉP(A1;SZÖVEG.KERES(" ";A1)+1;80) nem makró, hanem egy képlet. Egy üres oszlopba írd be az első (dupla) szavad sorába, majd másold le addig, amíg adataid vannak.

Vagy egyszerre beírhatod a képletet a D oszlopba, D2-től addig, ameddig adatok vannak az A oszlopban.
Ez a makró modulban legyen. A Munka1 helyett írd a saját lapod nevét.

Sub angol()
Dim usor As Long

usor = Application.WorksheetFunction.CountA(Sheets("Munka1").Range("A:A"))
Range("D2:D" & usor) = "=MID(A2,SEARCH("" "",A2)+1,256)"
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.

(#24938) alfa20


alfa20
senior tag

Sziasztok!

No még is sikerült a kalkulátor :D

két képből vágtam össze, hogy látszodjon a gomb amivel meghívom :) privát makróból fút így bármikor előcsalható

ha esetleg valakit érdekel itt meglesheti [link]

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

(#24939) Delila_1 válasza (#24932) üzenetére


Delila_1
Topikgazda

Egyenként kell megadnod a feltételes formázást a különféle nagyságrendekhez, de ezt elég 1× bevinned a tartományra.

100-as nagyságrendnél nagyobbhoz a feltétel =A2>999, a forma ##0 " ezer" (a 0 után 1 db szóköz)
100 000-esnél nagyobbhoz =A2>999999, a forma ### ##0 " millió" (a 0 után 2 db szóköz)

Figyeld meg, hogy a számfora utolsó tagja, a 0 után annyi szóköz van, ahányszor 1-1 hármas egység szerepel az eredeti értékben. Az idézőjelen belülre is tettem egy kezdő szóközt, az csak annyit csinál, hogy
123ezer helyett 123 ezer lesz a kiírás képe, nem írja rá a számra a nagyságrendet.

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

(#24940) Delila_1 válasza alfa20 (#24938) üzenetére


Delila_1
Topikgazda

Nagyon klassz! Most már csak azt nem értem, ha az ikonját kitetted a gyorselérési eszköztárra, miért nem magát a kalkulátort tetted ki?

Ujjgyakorlat a makrózáshoz?

Akkor egy kis formázási módosítás:

A Display label SpecialEffect tulajdonságánál a 2-es jobban mutat.
A Label2 lehet nagyobb, de a Visible tulajdonsága legyen False
A Label1 BackStyle legyen 0, átlátszó, hogy a Display labelt ne takarja.

Persze ízlések és pofonok...

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

(#24941) Delila_1 válasza (#24932) üzenetére


Delila_1
Topikgazda

Egyszerűbb a nagyságrendek feltételének a megadása a >999 helyett így:

A formátumban pedig a szóközök mennyiségének és a szövegnek a változtatása legyen, ahogy már előbb írtam.

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

(#24942) diegho


diegho
nagyúr

Sziasztok!

2010-es Excel-ben kellene egy kis help. Szeretnék egy táblázatot csinálni, amiben az egyik oszlopban dátumok lesznek és szeretném, ha a rendszer dátumához viszonyítva jelezne az excel, ha az ott lévő dátum három napon belülre került. Gyakorlatilag adott x feladat, amit y időpontra kell megcsinálni, erről szólna a táblázat, szeretném, ha az y-3. napon jelezne az excel, hogy figyeljek oda, csak 3 nap van vissza. Megoldható ez?

(#24943) alfa20 válasza Delila_1 (#24940) üzenetére


alfa20
senior tag

Ünnep rontó! :D:D:D

Ööö... na ez eszembe se jutott, de legalább ilyet is tudok :DD
viszont az enyém nem tünik el ha dolgozom a táblában.

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

(#24944) Delila_1 válasza diegho (#24942) üzenetére


Delila_1
Topikgazda

Feltételes formázást adj a dátumokat tartalmazó oszlopra.
Címsor esetén vegyük, hogy A2-ben kezdődnek a dátumaid. A feltételes formázás képlete =A1<=MA()-3
Ehhez adsz egy formátumot.

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

(#24945) Delila_1 válasza alfa20 (#24943) üzenetére


Delila_1
Topikgazda

Nagyon jó ujjgyakorlat volt! :C :C

Nem tűnik el, ha a füzetben dolgozol, a tálcán nyitva marad.

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

(#24946) kymco


kymco
veterán

Sziasztok!
Egy bizonyos excel táblázatban muszáj használnom vba-t. De bizonyos felhasználók a saját gépükön (nem tudom a gépen futó excel beállításait módosítani) vagy figyelmetlenségből vagy szándékosan nem engedélyezik a makrók futtatását a megnyitáskor. Így nem fut le a kód, hibás adatok kerülnek be egyes cellákba.
Hogyan tudnám kikényszeríteni az engedélyezést? (Persze most itt nem verbális erőszakra gondolok :) )
Segítségeteket előre is köszönöm!

www.refujvaros.hu

(#24947) Fferi50 válasza pirit28 (#24897) üzenetére


Fferi50
őstag

Szia!

Bocs a hosszú hallgatás miatt! Remélem, még aktuális. Próbáld meg ezt:
Sub okesit()
Do
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = CurDir()
If .Show Then
okesito .SelectedItems(1), True
Else
If MsgBox("Nem választottál, befejezed?", vbYesNo, "Könyvtár választás") = vbYes Then Exit Sub
End If
End With
Loop
End Sub
Sub okesito(ByVal konyvtar As String, ByVal alkonyvtaris As Boolean)
Dim fs, fldr, subfldr, fld, fajl As String
Set fs = CreateObject("Scripting.FilesystemObject")
Set fldr = fs.GetFolder(konyvtar)
fajl = Dir(fldr & "\*.xls*")
Do While fajl <> ""
Workbooks.OpenText Filename:=fldr & "\" & fajl
ActiveWorkbook.SaveAs Filename:=Replace(ActiveWorkbook.FullName, ".xls", "ok.xls")
'MsgBox fajl
fajl = Dir()
Loop
If alkonyvtaris Then
Set subfldr = fldr.subfolders
For Each fld In subfldr
fajl = Dir(fld & "\*.xls*")
Do While fajl <> ""
Workbooks.OpenText Filename:=fld & "\" & fajl
ActiveWorkbook.SaveAs Filename:=Replace(ActiveWorkbook.FullName, ".xls", "ok.xls")
'MsgBox fajl
fajl = Dir()
Loop
Next
End If
End Sub

Az okesit makrót kell elindítani, ott ki tudod választani azt a könyvtárat, amelyben (és alkönyvtáraiban) végre szeretnéd hajtani a műveletet.
Ha a kiválasztott könyvtárban elvégzi a műveletet, akkor visszatér a választó ablak.
A makróból úgy léphetsz ki, hogy a mégse gombot választod, vagy esc-t nyomsz és a kérdésre igent válaszolsz.
Az előrehaladásra nem tettem bele információ kijelzést, a státuszsoron esetleg kiírathatod pl. a kikommentelt msgbox helyére, Application.StatusBar = fajl
akkor a végére pedig Application.StatusBar=False

Üdv.

(#24948) Fferi50 válasza kymco (#24946) üzenetére


Fferi50
őstag

Szia!

Ezt nevezik szívásnak....
Ha hálózaton dolgoztok, akkor megoldás lehet, hogy felteszed egy központi helyre a fájlt, ott megadod az excelnek a szükséges beállításokat. Ezek után pedig csak az itteni excelt elindítva lehessen használni.

Mivel nem indulhat el a makró, így nem tudod kikényszeríteni sem a bezárást, sem a makró indulást.
Még egy olyan ötletem van, hogy egy adott cellába beírsz egy képletet, ami egy másik cella állapotát figyeli és attól függően feltételes formázással figyelmezteted a felhasználót, hogy ez így nem lesz jó.

Pld.
A1 cella képlete =ha(A2<>1;"Nincsenek bekapcsolva a makrók, hibás adatokat fogsz elmenteni, kérlek, lépj ki mentés nélkül!";"Minden OK")
A1 cella feltételes formázása képlettel, =$A$2=0, kitöltés vörös
A2 cellába pedig a Workbook_Open eseményben legelső dolgod, hogy beleírod az 1-et, a Workbook_BeforeClose eseményben pedig átírod 0 értékre.

Persze ez nyilván nem garantálja, hogy bárki is ennek megfelelően cselekszik. Arra egyelőre nincs tippem, hogyan nézhető meg, hogy valaki "makróhasználat nélkül" írta felül a fájlt.

Üdv.

(#24949) biker válasza Delila_1 (#24937) üzenetére


biker
nagyúr

Köszi, kipróbálom, bár lehet hogy megkapom egy nyelvűben mégis, elsőre nem ígérték meg

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#24950) kymco válasza Fferi50 (#24948) üzenetére


kymco
veterán

Köszönöm az ötletet..

www.refujvaros.hu

Útvonal

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