- Milyen okostelefont vegyek?
- Apple Watch
- Android alkalmazások - szoftver kibeszélő topik
- Xiaomi 15 - kicsi telefon nagy energiával
- Motorola Edge 50 Neo - az egyensúly gyengesége
- VoLTE/VoWiFi
- Realme GT Master Edition - mestermunka
- One mobilszolgáltatások
- Motorola Razr 60 Ultra - ez a kagyló könnyen megfő
- iPhone topik
-
Mobilarena
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
-
ROBOTER
addikt
válasz
Delila_1 #43204 üzenetére
Azt szeretném kérdezni, hogy egy dinamikusan létrehozott új worksheethez hogyan tudom a makrót hozzárendelni? Tehát van egy gombom, megnyomom, létrejön egy új sheet, azt agyba-főbe formázom (eddig jól működik), és a sheethez, és az azon létrehozott gombokhoz szeretnék eseménykezelőket rendelni (Change stb.), runtime.
-
carr
őstag
válasz
Delila_1 #43190 üzenetére
Most már csak számok vannak, de még mindig nem tudom hogyan tudom a sorokat az oszlopokhoz rendelni, ha pl adott az utca, és a hsz. de a hsz. szerint akarom növekvő sorrendbe tenni, akkor ne csak az adott oszlopot rendezze, de vigye magával az összes adott sorhoz tartozó infót?
-
carr
őstag
-
zsolti_20
senior tag
válasz
Delila_1 #43111 üzenetére
Bedobom ide a teljes kódot, így lesz a legjobb. Kicsi alakítottam rajta, de sajnos mindig errort kapok pont ott ahol el kellene kezdenie átmásolni.
Function getFile() As Workbook
Dim fn As Variant
fn = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls*), *.xls*", Title:="Select workbook")
If TypeName(fn) <> "Boolean" Then Set getFile = Workbooks.Open(fn)
End Function
Sub useGetFile()
Dim Dic As Object, key As Variant, oCell As Range, i&
Dim wb1 As Workbook, wb2 As Workbook
Dim wb1Sheet1 As Worksheet, wb2Sheet1 As Worksheet
Set wb2 = getFile
If Not wb2 Is Nothing Then
On Error Resume Next
Set wb2Sheet1 = wb2.Sheets("Sheet1")
On Error GoTo 0
If Not wb2Sheet1 Is Nothing Then
Set wb1 = Workbooks("1.xlsx")
Set wb1Sheet1 = wb1.Sheets("Sheet1")
i = wb1.Cells.SpecialCells(xlCellTypeLastCell).Row
For Each oCell In wb1.Range("A1:A" & i)
If Not Dic.exists(oCell.Value) Then
Dic.Add oCell.Value, oCell.Offset(, 3).Value
End If
Next
i = wb2.Cells.SpecialCells(xlCellTypeLastCell).Row
For Each oCell In wb2.Range("A2:A" & i)
For Each key In Dic
If oCell.Value = key Then
oCell.Offset(, 2).Value = Dic(key)
End If
Next
Next
Else
MsgBox "Sheet1 not found in " & wb2.Name, vbCritical
End If
'Maybe close wb2 here?
wb2.Close SaveChanges:=False
Else
Debug.Print "User cancelled"
End If
Set wb1 = Nothing
Set wb2 = Nothing
Set wb1Sheet1 = Nothing
Set wb2Sheet1 = Nothing
End Sub -
zsolti_20
senior tag
válasz
Delila_1 #43108 üzenetére
Már majdnem megvagyok a segítségeddel és pár órányi utána olvasással, csak 1 valamit kellene korrigálnom, a fájlneveket. A kódomban így szerepelnek:
Set w1 = Workbooks("1.xlsx").Sheets("Sheet1")
Set w2 = Workbooks("2.xlsx").Sheets("Sheet1")
A 2. fileban vannak számok amikhez az értékeket az 1. fileból kellene kiolvasnia, szóval csinál egy keresést az 1. fileban, és ha van egyezés akkor annak értékét ámtásolja a 2. fileba. Az első file neve az mindig fix azzal nincs is probléma, de a második az mindig változik, így állandóan át kellene írni a kódban.
Lehetséges a második file nevét úgy megkapni, hogy betallózom? Így kaphatnék egy dinamikus változót file névnek. -
zsolti_20
senior tag
válasz
Delila_1 #43106 üzenetére
Ígérem mára az utolsó kérdés
Van két excel fileom, az elsőben az A oszlopban lefelé vannak számok felsorolva, amik mellett a B oszlopban adat van megadva Pl 1 | a 2 | b stb...
Itt van jó pár száz sor. A másik excel fileban van a több száz szám közül néhány, van amikor 5 de van amikor 20. Szeretném ezeket a számokat megkeresni az első excel fileban, és a megfelelő szám mellé a megfelelő értéket átmásolni, hogy ne nekem kelljen egyesével kikeresgélni.Sub VlookMultipleWorkbooks()
Dim lookFor As Range
Dim srchRange As Range
Dim book1 As Workbook
Dim book2 As Workbook
Dim book2Name As String
book2Name = "1.xlsx" 'modify it as per your requirement
Dim book2NamePath As String
book2NamePath = ThisWorkbook.Path & "\" & book2Name
Set book1 = ThisWorkbook
If IsOpen(book2Name) = False Then Workbooks.Open (book2NamePath)
Set book2 = Workbooks(book2Name)
Set lookFor = book1.Sheets(1).Cells(5, 1) ' value to find
Set srchRange = book2.Sheets(1).Range("A:B") 'source
lookFor.Offset(0, 1).Value = Application.VLookup(lookFor, srchRange, 2, False)
End Sub
Function IsOpen(strWkbNm As String) As Boolean
On Error Resume Next
Dim wBook As Workbook
Set wBook = Workbooks(strWkbNm)
If wBook Is Nothing Then 'Not open
IsOpen = False
Set wBook = Nothing
On Error GoTo 0
Else
IsOpen = True
Set wBook = Nothing
On Error GoTo 0
End If
End Function
Ez a kód egész jó lenne, de a probléma az, hogy abba a sorba akarja beilleszteni az értéket ahonnan kimásolta előtte, de az adott szám nem a 68-ik sorban van hanem mondjuk a harmadikban.
A másik probléma hogy csak egy értéket másol át de én az összeset szeretném egyszerre. -
zsolti_20
senior tag
-
-
Roxy27
tag
válasz
Delila_1 #42997 üzenetére
Szia, megtennéd, hogy elküldöd rendesen Excel file-ba, hogy lássam mi mire vonatkozik pontosan? Ezt az Index dolgot nem ismerem egyáltalán.
Most csak egy minta táblát küldtem, hogy kb. mit kell megoldani. De a rendes táblázat azért nem teljesen így néz ki. Ezért kell pontosan látnom, hogy mit kell írnom az adott tartományok helyére. Köszi!
De ahogy nézem működik, csak be kell helyettesítenem...
-
zsolti_20
senior tag
válasz
Delila_1 #42977 üzenetére
Igen pont erre gondoltam. Nagy köszönet érte.
Már csak 1 valamit kell kitalálnom és megvan a tökéletes script.
Ha feltöltöm adatokkal A1-től E1-ig az első sort akkor megnyitja a következő sort. Megoldható, hogy törléskor amikor lezárja az alatta lévő sort akkor az adatokat is törölje ki amik a lezárt sorban találhatóak?
[link]
Ha itt törlöm manuálisan a harmadik sor adatait akkor lezárja a negyedik sort, azt szeretném megoldani hogy lezáráskor a cellák tartalmát is törölje. -
zsolti_20
senior tag
válasz
Delila_1 #42953 üzenetére
Köszönöm ez egész jónak tűnik, de sajnos akárhogy próbálom nem működik. Miután levédtem a lapot beillesztem a makrót, de vissza lépve egy cella sem módosítható.
Pontosabban ha A-E között feltöltöm a cellákat akkor tovább enged a következő sorra de az első sornál minden adat után felkell oldanom a védelmet.
-
daddy9
tag
válasz
Delila_1 #42955 üzenetére
A másodikra (42951 hsz) meg se moccan semmi.
Hiába kezdem úgy, hogy minden oszlop fel van fedve, aztán úgy, hogy az 5. oszloptól el van rejtve. Hiába írok bármit a 36. sorba, nem reagál rá.
Az általam #42944 hsz-be írt verzió működik, de nem szép. -
rudi666
csendes tag
válasz
Delila_1 #42933 üzenetére
Azért raktam aposztrófok közé, hogy szövegként kezelje, és csere keplettel növeljem a fájl sorszámot a képletben. (1600,1601....)
Mintha "lehuznám" a képletet.
Más megoldást nem találtam rá.
Ugye fájlra hivatkoztam, és azon belül nem engedte a sorszámot változóként kezelni.Egyébként sikerült megoldani.
Csere keplettel megnoveltem a fájl sorszámokat.
Majd újra beillesztettem az egész szövegként kezelt képletet, mostmár képletként 🙈 -
Sesy
aktív tag
válasz
Delila_1 #42900 üzenetére
Elkészültem a programommal, és nagyszerűen működik, nem volt egyszerű, mert igen sok feltételnek kellett teljesülnie, de sikerült.
Össze vegyítettem a Te és Fferi50 javaslatait és megdöbbentő módon sikerült megoldanom a problémáimat.
Mondjuk kiolvastam közben a Kovalcsik makró programozást
De megérte a szenvedés, igen büszke vagyok most magamra...Köszönöm a segítségeteket!
-
Sesy
aktív tag
válasz
Delila_1 #42897 üzenetére
a kódodat értem, a te gondolkodásmódod közelebb áll az enyémhez, mint mint Fferi50-é
de ez benne a csodálatos, hogy kétféle megközelítéssel jutottatok ugyan arra az eredményre...
én meg ebből tanulok a legtöbbet
köszönöm mind kettőtöknek
ezek után még megnézem Fire/SOUL/CD javaslatát is és tényleg profi leszekfejlesztem a kódomat és a tudásomat, de jövök még szerintem biztosan
-
Sesy
aktív tag
válasz
Delila_1 #42895 üzenetére
köszönöm, megnézem!
most tanulom a makró készítést, van egy tervem amit szeretnék megcsinálni
lépésről lépésre haladok, de mivel még hiányosak az ismereteim nem megy minden egyszerrevalószínűleg amit tegnap kiszenvedtem, egy hosszú kódban azt tized annyiból kihoznátok, de akkor nem érteném meg a működését... akár annak sem amit kapok tőletek!
azt sem szeretném, ha mindent ti oldanátok meg, mert akkor nincsen sikerélmény és nem ér semmit az egész...
pedig úgy látom ez nektek sokkal egyszerűbb lenne...
de meg akarom tanulni a dolgot, mert egyébként roppantul élvezem -
marec1122
senior tag
válasz
Delila_1 #42860 üzenetére
ne haragudj , kicsit zavaros lett. Szóval A,C,E tartalma megnevezések. pl. kispista. Ezekhez az oszlopokhoz tartoznak szám érték oszlopok. Ezek B,D,F oszlopok. pl A1: kispita B1:20; A2:nagyjeno B2:13... Az a kérdés hogy egy cellába pl: G1: szummázni lehet e a 3 oszlop A,C,E kispita adatához tartozó szám értéket.
-
daddy9
tag
-
daddy9
tag
válasz
Delila_1 #42787 üzenetére
A C33:E36 tartományban található értékek alapján osztogatom az okleveleket.
Az ügyes lányok pillangós + macis, az ügyes fiúk focis + macis oklevelet, a jók csak focis és pillangóst.(#42786) sztanozs
A leegyszerűsített példára lehet, hogy elég lenne, de nem 2-3 munkalap (nyomtatvány) készülne, hanem 20-25 és nem 4 féle feltétel alapján, hanem több. A példa direkt egyszerűsített, mert a logikájára próbálok rájönni, utána a "tartalommal feltöltést" már intézem. De köszönöm, hogy foglalkoztál vele! -
Sesy
aktív tag
válasz
Delila_1 #42715 üzenetére
köszönöm, hogy erre magamtól miért nem jöttem rá?
azt hogyan tudom megoldani, ha egy másik xlsx-ből érkező adatokkal feltöltök egy cellát, akkor annak automatikusan beállítsa a magasságát?
manuálisan megy, a sortöréssel több sorba gomb nyomogatásával, de ez így nem túl elegáns
-
Retro11
senior tag
válasz
Delila_1 #42469 üzenetére
Kedves Delila_1!
Köszönöm a segítséget, a formula működik!
Abban esetleg tudna segíteni, hogy hogyan tudom megszámolni mennyi egyedi/különböző azonosító található az "A" oszlopban ami "SZEG-el" kezdődik és 2020.12.11-ai dátummal rendelkezik?
Segítségét előre is köszönöm!
Üdv,
Retro11 -
szente
addikt
válasz
Delila_1 #42547 üzenetére
Köszi!
Megcsináltam így, bár nem vagyok maradéktalanul elégedett, mert jobb lett volna ha jól láthatóan meg tudom jeleníteni, hogy melyik csapattag mennyi pontot szerzett. Most csak annyi telt tőlem, hogy a részpontszámokhoz x+y-t(csapattag 1. + csapattag 2. pont) írtam. -
PeLa87
aktív tag
-
Retro11
senior tag
válasz
Delila_1 #42464 üzenetére
Kedves Delila_1,
Köszönöm, eddig megvagyok. A probléma ott kezdődik, hogy szeretném ezt megtoldani még egy kritériummal, mégpedig, hogy a találatok csak adott időpontból származzanak. Az időpontok külön cellákban vannak. Remélem sikerült érthetően leírnom.
Segítséged előre is köszönöm.
Üdv,
Retro11 -
Új hozzászólás Aktív témák
Hirdetés
- EAFC 25
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- MÁV topic
- Milyen okostelefont vegyek?
- REpont és hulladékgazdálkodás
- Autóápolás, karbantartás, fényezés
- Azonnali fáradt gőzös kérdések órája
- Autós topik
- Futás, futópályák
- Kevesebb dolgozó kell az Amazonnak, AI veszi át a rutinfeladatokat
- További aktív témák...
- ÁRGARANCIA!Épített KomPhone Ryzen 9 5900X 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Xiaomi Redmi 9, Xiaomi Redmi 9AT, Xiaomi Redmi 10, Xiaomi Redmi 10 2022
- LG 48C4 - 48" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - A9 Gen7 CPU
- Telefon felvásárlás!! Samsung Galaxy A16, Samsung Galaxy A26, Samsung Galaxy A36, Samsung Galaxy A56
- 13-14" Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged