-
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
-
Delila_1
Topikgazda
válasz #54715584 #20693 üzenetére
A feltételes formázás külön műfaj, eltér a füzetedben lévő függvények, képletek megadási módjától az alkalmazása.
Próbáld ki, amit javasoltam , és akkor jelentkezz, ha az nem jön össze.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 bmenya #20694 üzenetére
Akkor egyenként kell elrejtened a sorokat.
Mivel túl sok rögzíteni valód van, javaslom, hogy több makróba vedd fel, és utólag másold össze ezeket. Kevesebb hiba lesz benne.
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 the radish #20714 üzenetére
A Munka!A1:A12-be vittem be a hónapok nevét, melléjük a B-be, hogy melyik hány napos. Februárhoz 28-at adtam.
D1-től D31-ig a napok jönnek 1-től 31-ig, és valahova a választható évszámok.A formon 3 combobox van. A cbEv rowsource tulajdonságához fixen megadtam az évek tartományát, a cbHonap-hoz az A1:A12-t. Ez utóbbihoz jön a makró.
Private Sub cbHonap_AfterUpdate()
If cbEv * 1 Mod 4 = 0 And cbHonap = "febr" Then
cbNap.RowSource = "Munka1!D1:D29"
Else
cbNap.RowSource = "Munka1!D1:D" & Application.WorksheetFunction _
.VLookup(cbHonap, Range("A2:B12"), 2, 0)
End If
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.
-
Delila_1
Topikgazda
válasz klambi #20721 üzenetére
="@" & A1
Ez persze akkor igaz, ha a cellád, ami elé a @-ot kell tenni, az A1.
A képletet másolod, ameddig kell, majd kijelölöd az oszlopot, Ctrl+c-vel másolod, és az eredeti oszlop helyére irányítottan, értékként beilleszted. A képleteket tartalmazó oszlopot törölheted.
Nincs szükség az előző bekezdésre, ha az eredeti, kukactalan oszlopot is meg akarod tartani.
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 the radish #20719 üzenetére
Szívesen.
A helyedben a cbEv AfterUpdate eseményébe tennék egy feltételt
if cbHonap>"" then
'ide jön a cbHonap makrója
end ifMikor csak az évet váltod, a febr. akkor is az évre jellemző napszámot adja.
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 dellfanboy #20728 üzenetére
Egy kis makró a personalba:
Sub Szamformatum()
Selection.NumberFormat = "#,##0_L"
End SubEhhez kiteszel egy ikont. A formátum végén a _L jobbról ad egy behúzást, hogy ne "ragadjon" az adat a jobb szegélyre.
A personal szóra keresve több leírást találsz itt a fórumon.
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
-
Delila_1
Topikgazda
válasz konyi79 #20739 üzenetére
Egyszerűen megoldhatod. Rögzítesz egy makrót a csökkenő sorrend beállításához, és kiteszel hozzá egy gombot. Egy másik gombhoz az emelkedő sorrendhez rögzített makrót rendeld.
A makróban a mindenkori utolsó sorig kell kiterjesztened a rendezéseket. Ehhez fel kell venned egy változót a makró első sorában, legyen mondjuk usor:
Dim usor As LongA következő sorban meghatározod az értékét:
usor=WorksheetFunction.CountA(Columns(1))A Columns(1) az A oszlop, ehelyett írhatsz másik oszlopot, ahol biztosan ki van töltve minden sor, mert a CountA a Darab2 függvény megfelelője. Azt adja meg, hogy a jelölt területen (most 1 oszlopban) hány nem üres cella van.
Mikor ez megvan, a rögzített makrókban átírod a területet. Például olyan találsz benne, hogy Range("A1:H1524"), akkor ezt átírod Range("A1:H" & usor)-ra.
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
-
Delila_1
Topikgazda
A VB szerkesztőben ThisWorkbook laphoz tedd be az alábbi makrót:
A Private Sub Workbook_Open()
Sheets("menü").Activate
Range("A1").select
End SubA range("a1")-et elhagyhatod, vagy más cellára állíthatod a fókuszt.
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
-
Delila_1
Topikgazda
-
Delila_1
Topikgazda
Szavanként megszámolod, végül összegzed. A szerkesztőlécen látod a C2 képletét, amit jobbra-, és le másolsz.
Szerk.: csak az angol ABC betűit vittem be az első sorba, kiegészítheted a magyar ékezetesekkel.
[ 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.
-
Delila_1
Topikgazda
Az Összesen sorban (20. sor) SZUM függvény van, ami betűnként megszámolja, hogy az A oszlopban hány a, b, c, stb. karakter található.
Nézd meg, hogy az alma szónál az A betűhöz 2-t írt a függvény, a ribizlihez 3 db i-t.
Szűrni úgy tudsz, hogy *a*-t írsz keresési feltételnek. Ez azokat a sorokat szűri ki, amik tartalmaznak a betűt. Ám összeszámolni nem tudja.
[ 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.
-
Delila_1
Topikgazda
válasz motinka #20761 üzenetére
if target.column=2 then
Nem kell a select case, ha a teljes B oszlopon be akarod hozni duplaklikkre a naptár vezérlőt.
Teljes táblázatnál
if target.address="$A$1:$H$50" thenTermészetesen a saját táblázatod címét kell megadnod, fix hivatkozással.
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
A darabteli függvény azokat a cellákat számolja össze, amikben előfordul a keresett érték. Ha bármelyik cellában többször szerepel a kérdéses karakter, hamis eredményt kapsz.
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
Pl. ha a D3 cella értékét akarod így kiíratni, akkor ="a=" & D3
Formátumként is megadhatod az egyéni kategóriában:
"a=" # ##0, akkor nem kell a cellába beírnod az idézőjelek közötti részt.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 alfa20 #20779 üzenetére
Igen, annyi különbséggel, hogy a Dim sorokat a makró elejére szoktuk bevinni, hogy később könnyebben megtaláljuk.
Dim tbl1_fulnev As WorkSheet, tbl2_fulnev As WorkSheet, tbl3_fulnev As WorkSheet
Alá már jöhetnek az értéket adó Set sorok.A Dim változónév As Típus helyet foglal a memóriában a változónak. Ennek az az előnye, hogy ha a makró írása közben elgépeled egy változó nevét, aminek helyet foglaltál, már az indításkor rád kiabál, hogy nincs dimenzionálva egy változó. Ha ezt a lehetőséget kihagyod, nehezebben találod meg a hibát, ami abból adódhat, hogy 1-1 karakter eltéréssel írtad be a változót több helyre. Érdemes hozzászokni a dimenzionáláshoz.
Példa:
Szoveg="Ez itt egy szöveg"
Range("A10")=Szöveg
Ha nem deklaráltad a Szoveg változót, az A10 üres lesz, mert a Szöveg változó üres string, nem adtál neki értéket. Az is lehet, hogy nulla lesz az A10, mert nem közölted a VBA-val, hogy a Szöveg milyen típusú (szöveg, dátum, szám, logikai, stb.) változó legyen. Keresheted a hibát, és könnyű átsiklani 1 betű eltérésen. Ha viszont foglaltál neki helyet, indításkor jön az üzenet, hogy nincs Szöveg változód.A VBE Tools | Option menü Editor fülén jelöld be a Require Variable Declaration négyzetet. Ettől kezdve a moduljaid tetején automatikusan megjelenik az Option Explicit felirat, ami kötelezővé teszi a változók deklarálását, futtatáskor azonnal figyelmeztet a hiányra.
Szerk.: a helyfoglaláskor ne hagyd ki a típus megadását sem, akkor egy dátumot váró változónak nem adhatsz véletlenül szöveg típusú értéket. Előfordulhat, hogy 1-1 változóhoz változó típusú adatot kellene rendelned, ilyenkor a típust elhagyhatod, vagy Variant-ra állítod.
[ 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.
-
Delila_1
Topikgazda
válasz motinka #20786 üzenetére
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column=3 Then OpenCalendar
End SubEz akkor indítja a calendart, ha a C (harmadik) oszlop bármelyik celláján kattintasz duplán.
Persze nem tudom, mit tartalmaz az OpenCalendar makród.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 alfa20 #20790 üzenetére
Betettem a felsorolt számokat a H1:H12 tartományba.
A cella képlete, ahol le akarod kérdezni, hogy az A2 szerepel-e a listában:=HA(HIBÁS(FKERES(A2;H1:H12;1;0));C2;B2)
Ha 2003-asnál magasabb verziót használsz, a fenti helyett a HAHIBA függvényt is alkalmazhatod.
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 #02644736 #20782 üzenetére
A HOL.VAN függvény kikeresi a "Test Complete" szöveg sorát, ebből levonunk 1-et, az INDIREKT függvény pedig kiírja ennek a sornak az értékét.
=INDIREKT("A" &HOL.VAN("Test Complete";A:A;0)-1)
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 alfa20 #20794 üzenetére
Akkor egy másik megoldás:
=HA(HIBÁS(FKERES(A2;{130;131;132;133;160;161;170;171;190;191;375;376};1;0));C2;B2)
{ Bal Alt, + a számbillentyűzeten 0123
} Bal Alt, + a számbillentyűzeten 0125[ 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.
-
Delila_1
Topikgazda
válasz #02644736 #20800 üzenetére
Úgy tűnik, szeretsz velem levelezni. Ha nem így lenne, már először megírtad volna, hogy más lapokról akarod behozni az adatokat. Azt még most sem árultad el, hogy az egyes lapoknak melyik oszlopából várod az értékeket. Nem baj, a megadott képletet átalakítod, ha nem az A-ból.
A Munka1 lapon megadod az egyes lapok számát, ami nálam az első sorban van.
A szerkesztőlécen látod az A3 képletét, ezt másold jobbra az R (18) oszlopig.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 bandus #20863 üzenetére
Az első cellába beírod: 00:00:00. A mellette lévőbe 01:00:00. Kijelölöd a két cellát együtt, és a cellaformázásnál az egyéni kategóriánál megadod a formátumot: "H " óó:pp.
Most lemásolod az első cellát addig, míg eléri a 23 órát. A másik cellát kijelölve a jobb alsó sarkában lévő kis fekete négyzeten duplaklikk, kész a jobb oldali oszlopod.
A két oszlopot lemásolod közvetlenül a kitöltött cellák alá, és a formátumban a H-t átírod K-ra. Ezt ismételd meg a többi nap beírásához.
Mindig ezt a füzetet hívd be, és az új adatok beírása után a Mentés másként opciót választva más néven mentsd el.
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
A laphoz rendeld:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$15" Then Rejt
End SubModulba:
Sub Rejt()
Sheets("Munka2").Select
Rows("2:202").Hidden = False
Rows(Sheets("Munka1").Range("E15") + 2 & ":202").Hidden = True
End SubNálam Munka1 a lap, ahol az E15-ben megadod a megjelenítendő adatsorok számát, és Munka2 a másik. Ezeket írd ár a makróban a saját lapjaid nevére.
Mikor írsz az E15-be, a másik lapon végrehajtódik a rejtés, és az a lap lesz aktív.
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
Akkor a laphoz rendelt makróban a Target.Address-hez azt a címet írd be, amit a billentyűzetről viszel be, és megváltoztatja az E15 értékét. Idézőjelekre és $-okra ügyelj!
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
-
Delila_1
Topikgazda
válasz alfa20 #20877 üzenetére
A látható sorokat töröljük, majd a végén a többi sort láthatóvá tesszük a szűrő feltétel kihagyásával.
Sub szur()
Dim usor As Long
usor = Range("A" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("$A$1:$V$" & usor).AutoFilter Field:=2, Criteria1:="*alma*"
ActiveSheet.Rows("2:" & usor).SpecialCells(xlCellTypeVisible).Delete
ActiveSheet.Range("$A$1:$V$" & usor).AutoFilter Field:=2
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.
-
Delila_1
Topikgazda
válasz TomTeke2 #20879 üzenetére
A képletek másolása után a csatolást kell átírni az új füzetedre.
2003-as verzióban ezt a Szerkesztés | Csatolások menüpontban találod meg, ahol a (ha jól emlékszem) Módosítás gomb lenyomása után ki tudod tallózni az aktív füzetedet, mire megszűnnek az átirányítások.Magasabb verziókban ezt ügyesen elrejtették. A Gyorselérési eszköztárra ki kell tenned egy ikont. A További parancsoknál a Választható parancsok helye legyen a Minden parancs. Itt kikeresed a Fájlhivatkozások szerkesztése nevűt, kiteszed az eszköztárra, innen tudod meghívni a csatolás módosításához.
[ 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.
Új hozzászólás Aktív témák
- Politika
- Windows 10
- Kínai, és egyéb olcsó órák topikja
- Elkészült Oroszország első litográfiai berendezése
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Gumi és felni topik
- EAFC 24
- Ukrajnai háború
- Autós topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- AKCIÓ! - STEAM kulcsok / Punch Club, Oddworld: Soulstorm, Children of Morta, stb. - 2024.05.16.
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Új, bontatlan World of Warcraft gyűjtői kiadások
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen