-
PROHARDVER!
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
veterán
válasz
botond187
#22788
üzenetére
Egyszerűbben, és kicsit gyorsabban is meg lehet csinálni.
Kell egy segédtábla (nálam a K:M tartomány), ahol a K oszlop tartalmazza azt a szöveges formában tárolt adatot, amihez rendeljük a többit, az L és M szintén szövegesen a csatolandó min és max értékeket.Nem írtad, az Excelnek melyik verzióját használod, ezért 2003-ban írtam, azt a magasabb verziójú Excelek elfogadják, csak makróbarátként kell menteni.
A füzetet feltettem ide.
Módosítandó sorok, ha a segédtáblát máshova teszed:
1.Set sorS = Columns(11).Find(ehhez, LookIn:=xlValues)
A Columns(11) most a K oszlopra mutat, mert a K a 11. oszlop.
2.
If Mid(Cells(sorK, "A"), 3) >= Cells(sorS, "L") And _
Mid(Cells(sorK, "A"), 3) <= Cells(sorS, "M") ThenEzeknél az "L" és "M" helyett írd a saját oszlopaid betűjelét
-
Fferi50
Topikgazda
válasz
botond187
#22788
üzenetére
Szia!
Paraméterezheted is a makrót.
Csinálsz egy táblázatot, amelybe berakod egy-egy oszlopba a "főcikk" tól-ig cikkszámokat, a másik 2 oszlopba pedig a hozzátartozó "kiegészítő" cikkek tól-ig határait.
Ezután a makródnak azt kell megnéznie, hogy az adott cikkszám mely határok közé esik és onnan kivenni a hozzátartozó határértékeket.
Kicsit csúnya mert még egy for ciklus van benne, de most hirtelen nem jut jobb eszembe (pedig biztosan van).For xx= 1 to 200
cikkszam=cells(xx,1).value
kiegalso=""
kiegfelso=""
for zz=1 to főcikkfeltételszám
if cikkszam>=cells(zz,10).value and cikkszam<=cells(zz,11).value then
kiegalso=cells(zz,12).value
kiegfelso=cells(zz,13).value
exit for
endif
next
if kiegalso<>"" then
kieg=""
for yy=1 to 200
if cells(yy,1).value>=kiegalso and cells(yy,1).value<=kiegfelso then
if kieg="" then
kieg=cells(yy,1).value
else
kieg=kieg & elválasztó & cells(yy,1).value
endif
endif
next
if kieg<>"" then
cells(xx,2).value=kieg
endif
endif
nextA határokat tartalmazó táblázat a 10-12. oszlopban van. A ciklushatárokat igazítsd a feltöltött sorokhoz.
A belső yy-os ciklus elvileg indulhat xx -től egy (1) helyett, ha a kiegészítő termékek cikkszáma nagyobb, mint a főtermékeké és a cikkszámok sorba vannak rendezve. A működéshez ez nem szükséges, akkor marad az 1, mint cikluskezdő (hiszen lehet, hogy az első cikkszám nem főtermék, hanem kiegészítő).Üdv.
-
slashing
senior tag
válasz
botond187
#22788
üzenetére
hát innentől már csak annyit kell csinálni hogy d1=kezdőérték e1=végérték d2=kigyűjtés kezdő értéke e2=kigyűjtés végértéke a makróban meg ezeket a cellákat el kell nevezni és azokkal helyettesíteni.
valahogy így:
Dim k1, v1, ki1, ki2 As String
k1 = Range("D1")
v1 = Range("E1")
ki1 = Range("D2")
ki2 = Range("E2")if cells(yy,1).value>= K1 and cells(yy,1).value<= V1 then
ugyan így a másik kettőnél is.
és mondjuk a legvégén a next előtti cells(yy, 2)-t átírni mondjuk ActiveCell-re és akkor oda rakja az adatokat amelyik cellára ráállsz a makrófuttatás előtt. Esetleg még egy gombot kirakni a lapra ami indítja a makrót.
Elvileg ennek így működnie kell....
Bocs Fferi50 hogy belekondárkodtam, remélem nem haragszol meg érte.
Új hozzászólás Aktív témák
- Canon MILC: EOS R és M topik
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Luck Dragon: Asszociációs játék. :)
- Milyen TV-t vegyek?
- Philips LCD és LED TV-k
- Samsung Galaxy Felhasználók OFF topicja
- Kormányok / autós szimulátorok topikja
- Samsung kuponkunyeráló
- 3D nyomtatás
- iPhone topik
- További aktív témák...
- Dell Latitude 7420 Core i7-1185 G7, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
- ÁRGARANCIA!Épített KomPhone i9 14900KF 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- Lenovo ThinkPad T14s Gen 3 i5-1245U 14" FHD+ 16GB 512GB 1 év teljeskörű garancia
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Fferi50

