-
IT café
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
-
cousin333
addikt
válasz buherton #13992 üzenetére
Nem hiszem, hogy korlát lenne. Inkább a 81. sorban (vagy rekordban) van valami, ami nem tetszik neki (pl nem szám van ott, ahol ő azt vár). Nem ír ki valami hibaüzenetet?
De továbbiakat csak akkor tudunk mondani, ha valami konkrétumot kapunk.
[ Szerkesztve ]
"We spared no expense"
-
buherton
őstag
válasz cousin333 #14004 üzenetére
Közben rájöttem, hogy user error volt . A hiba üzenet szövege ennyit volt: 400 . Az volt a probléma, hogy egy cellában lévő értékből munkalap nevet szerettem volna készíteni. Ez mind addig jó volt, amíg bele nem ütközött egy olyan értékhalmazba, amiben volt kettős pont. Emiatt dobta a hiba üzenetet nekem.
Pont ma volt egy másik hasonló eset, amikor egyik excel fájl cellájáról egy másik excel cellájára hivatkoztam (ezt is automatizáltam), és az elérési útban nem lehet aposztróf, ezért ekkor is ilyen 400-as hibát dobott vissza.
Ez a harmadik VBA-m, és az ilyen "apróságok"-ra még nem tudok könnyen rájönni, mert nincs meg a rutin, hogy hol mi miatt állhat meg. Osztályokkal is sokat bajlódok, mert nem mindegy, hogy mikor mit írok.
Az már csak hab a tortán, hogy két gépen dolgozok. Egyiken magyar office 2010 van, a másikon angol office 2003. Fájlformátumot a 2010-ben mindig be kell állítani, az ilyen Sheets("Sheet1")-eket el lehet felejteni, túl nagy cellát sem lehet másolni 2003-ban, stb...
Eddig teljesen hidegen hagyott az excel, most meg teljesen bele zúgtam, hogy bármit megcsinálhatom benne.
Hogyan lehet olyan function készíteni, hogy ne legyen bemenő változó, és ne térjen vissza semmivel? Egyáltalán lehet ilyen? Formázásokat szeretném kitenni függvényekbe. Vagy ilyenkor az objektum referenciája lesz a bemenő változó?
[ Szerkesztve ]
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
cousin333
addikt
válasz buherton #14005 üzenetére
"Az már csak hab a tortán, hogy két gépen dolgozok. Egyiken magyar office 2010 van, a másikon angol office 2003."
Részvétem...
"Hogyan lehet olyan function készíteni, hogy ne legyen bemenő változó, és ne térjen vissza semmivel? Egyáltalán lehet ilyen?"
Tudtommal nem lehet. A function azért function, mert értékkel tér vissza. Cellát formázni meg pláne nem lehet vele, még azt sem, amelyikbe beleírod.
Szubrutinnal viszont tudsz formázni, nem kell, hogy bemenete vagy kimenete legyen. Csak a hívását kell megoldanod valahogy. Vagy egy másik függvény triggereli (szubrutin, nem function!), vagy mondjuk egy gombra kötöd.
[ Szerkesztve ]
"We spared no expense"
-
buherton
őstag
válasz cousin333 #14006 üzenetére
Nagyon köszi a segítséget!
Sub asd()
Sheets(1).Activate
Sheets(2).Activate
Sheets.Add
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.Cells.Interior.Color = 15773696
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Cells.Interior.Color = -16776961
End SubKét formázást használok egy excelen belül, így két utat kellett találni, és meg is van . Áááh baromi jó ez a VBA.
Még egy kérdésem lenne, aztán leállítom magam. Ha mondjuk van egy kifejezés Static Planar, akkor hogyan tudom pl. a két nagy kezdő betűt kiszedni? Illetve pontosabban megfogalmazva, hogyan tudok egy stringen belül egyesével végig menni a karakteren? Ezzel együtt, hogyan tudok összeállítani stringet?
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
Delila_1
Topikgazda
válasz buherton #14008 üzenetére
Ehhez nem kell makró. A =KISBETŰ(A1) függvény megteszi.
Mire jó egymás után a
Sheets(1).Activate
Sheets(2).Activate ?Ez annyit csinál, hogy egymás után a két lapot aktívvá teszi. Mivel az első lap aktiválása után nem csinálsz semmit, az első sor kihagyható.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
buherton
őstag
válasz Delila_1 #14009 üzenetére
Köszi! Én vagyok a hibás, mert nem írtam le rendesen a feladatot. Az a feladat, hogy adott pl. a Static Planar, akkor abból a nagy betűket olvassa ki, és tegye bele egymásik cellába. Viszont ha nem több szóból áll a kifejezés, akkor olvassa be az első nagy betűt, és a közvetlenül utána közvetkező kisbetűt is. Bonyolódik a dolog, azzal, hogy nem lehet két azonos rövidítés.
Csak példának lett betéve . A másodiknál különböző műveleteket csináltam, hogy még mire fog leftuni az sheet active szubrutin
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
Cheesy
őstag
Sziasztok
A következőt nem sikerül megoldanom:
1. A1-A5 cellákban zsalukő méretek
2. B1-B2 cellákban zsalukő súlyokEgy tetszőleges cellába (pl. másik munkalap D1) kellene egy legördülő menü, mely tartalmazza A1-A5 cellák tartalmát (idáig megy, el is neveztem "méretek"-nek), majd a mellette lévő cellába kiírja a hozzá tartozó súlyt. Tehát, ha A2-t választom legördülőből, akkor B2-t írja ki a másik munkalapon a D2-be.
Remélem érthető valamelyest... segítségeteket előre is köszönöm!
www.vakbelmutet.hu
-
Delila_1
Topikgazda
válasz buherton #14010 üzenetére
Az A1:A10 tartomány rövidítését beírja a B1:B10 tartományba, és megvizsgálja a COUNTIF (darabteli) függvénnyel, hogy hány db ilyen van a B oszlopban. Ha 1-nél több, akkor a B oszlopba az A megfelelő cellájának az első és harmadik betűjét írja. Lehetne cifrázni, mert előfordulhat, hogy több azonos alakul ki így is. Ahhoz újabb ciklusok kellenek, egy Do-Loop, és egy For-Next. Ha több időm lesz, és szükséges, megírom.
Sub rovidites()
Dim sor%, szo$, betu%
For sor% = 1 To 10
szo$ = Cells(sor%, "A")
If InStr(1, szo$, " ") Then 'ha van benne szóköz
For betu% = 1 To Len(szo$)
If Asc(Mid(szo$, betu%, 1)) > 64 And Asc(Mid(szo$, betu%, 1)) < 91 Then 'nagybetű
Cells(sor%, "B") = Cells(sor%, "B") & Mid(szo$, betu%, 1)
End If
Next
Else
Cells(sor%, "B") = Left(szo$, 2)
End If
If WorksheetFunction.CountIf(Columns(2), Cells(sor%, "B")) > 1 Then _
Cells(sor%, "B") = Left(szo$, 1) & Mid(szo$, 3, 1)
Next
End Sub[ 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.
-
detroitrw
addikt
Sziasztok!
Egy olyan kérdésem lenne hogy miként lehet egy bizonyos cellába iratni a fájl mentési idejét?
Élőlábnak már megcsináltam, de fogalmam sincs hogy kéne konkrét cellába (L5) rakatniez az élőláb tartalma:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Calculate the date and time stamp string
Dim TS As Date
TS = Now
Dim TSS As String
TSS = FormatDateTime(TS, 1) & " "
'Place time stamp into the cell labeled SaveTimestamp
'Range("SaveTimestamp").Value = TSS
'Place time stamp into the header or footer for printing
Dim WS As Worksheet
For Each WS In Worksheets
WS.PageSetup.LeftFooter = " City," & TSS
'WS.PageSetup.LeftFooter = ThisWorkbook.FullName
Next WS
End Submiként kéne átírni hogy az L5-ös cellába legyen a tartalom?
Előre is köszönöm a segítséget
-
Oly
senior tag
Sziasztok
Adott egy ComboBox, aminek a forrását egy nagy adattáblából akarom szűréssel megoldani.
A Rowsource-ba kellene beraknom egy filtert?Az űrlapon van egy TextBox, ami alapján a táblában lévő adatokból csak a hozzá tartozót kellene betöltenie.
Gyümölcs - Alma
Gyümölcs - Körte
Autó - Opel
Autó - BMW
Szín - Zöld
Szín - KékHa a textbox értéke gyümölcs, akkor a Combobox-ban csak az Alma és Körte legyen.
A dolgot bonyolítanám azzal, hogy a ComboBox-ban 2 oszlop értékét is megjeleníteném.Segítségetek előre is köszönöm.
SonyEricsson T20 - T68 - T610 - K700 - W800 - K750 - K800 - C702 - P1 - MOTO Defy - Galaxy S Advance - Galaxy S4 - Lumia 820 - Honor 7 - iPhone 5S
-
bozsozso
őstag
Sziasztok,
Szeretnék makróban olyat csinálni, hogy egy adott oszlopban adott szöveget keressen meg és ha megtalálta akkor a ennek a sornak az összes adatát másolja át mondjuk az adatok munkalap 2.sorába majd keresi a következőt ha megvan az meg mehet a következő sorba. Makrórögzítéssel megcsináltam auto szűrő majd másol beilleszt a megfelelő helyre, de nincs ettől jobb, "elegánsabb" megoldás? Valamint esetleg olyat, hogy ha az oszlopban amiben keresek bármi módosítás történik akkor legyen végrehajtva a makró?
Pl.:Érték1 jó 5,00
Érték2 rossz 10,00
Érték3 nagyon rossz 15,00
Érték4 jó 48,00Szeretném ahol jó szerepel az kerüljön át az adatok munkalapra a 2. sortól kezdődően.
Érték1 jó 5,00
Érték4 jó 48,00Előre is köszönöm a segítséget.
[ Szerkesztve ]
-
detroitrw
addikt
Ezt lehetne szerintetek valahogy automatizálni?
- a zöld a fix
- a sárgába kéne az adatokat automatikusan bevinni amíg a kék el nem éri a 0 (nulla) értéket
majd sort vált s folytatja tovább ...
- remélem érthető -
cousin333
addikt
válasz detroitrw #14021 üzenetére
Ki szerelmes ennyire a szorzatösszeg függvénybe, hogy még egy egyszerű kivonáshoz is ezt használja?
Gondolom a zöldben megadott számú és hosszúságú léceket(?) kellene kihozni a megadott hosszakból úgy, hogy minél optimálisabb legyen az elosztás.
"We spared no expense"
-
buherton
őstag
válasz Delila_1 #14015 üzenetére
Köszi! Végre ezen a vonalon is elindulhatok . Csak a probléma, hogy nincs elég időm kidolgozni rendesen .
Lehet olyat csinálni, hogy a makróból létrehozott excelhez rendelek saját makrót? Például én azt szeretném ha a makró által létrehozott excelben ha beírok egy számot akkor a másik lap váltson piros háttérre valamilyen esemény hatására. Nekem elég az absztrakt megközelítés is. Fontos, hogy ahhoz az excelhez tartozzon, vagyis önállóan működjön, és makró legyen ne függvény, és nem tudom hogy angolul hogyan keressek rá.
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
Delila_1
Topikgazda
válasz buherton #14024 üzenetére
Költözés (és T-home) miatt nincs internetem, ezért nem válaszoltam előbb.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And IsNumeric(Target) Then
Sheets("Munka2").Cells.Interior.ColorIndex = 3
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.
-
#90999040
törölt tag
válasz detroitrw #14023 üzenetére
Megoldani meg lehet, csak kérdés, hogy mennyi idő alatt.
Sima függvényekkel szerintem teljesen kizárt, vba-val lehetséges. De azért gondolj bele:
Úgy látom, hogy 72 darab léc van jelenleg. Ennek a 72 elemnek kell(ene) az ismétlés nélküli permutációja, ami ugye 72! (faktoriális) ez ~~8,50478588567862E+101 eset, azaz kb. 8 a 101-ediken. Namost ezt ha most elindítod, akkor talán( ) 1 hét múlva végez.
Esetleg azt meg lehetne próbálni, hogy bizonyos hulladékszálakot megadni, és ha ez a százalék elég nagy, akkor van esély, hogy előbb talál egy ezen belülit.
Vagy random generálással is lehetne, szerencsés esetben előbb-utóbb beleakad egy alkalmas lehetőségbe....
-
cousin333
addikt
válasz #90999040 #14027 üzenetére
Szerintem meg ismétléses permutáció lenne, mert az egyforma hosszú léceket nem lehet megkülönböztetni. Akkor pedig 72! / (12! * 6! * 6! * 12! * 24! * 12!), ami persze még mindig nem kevés.
De a megoldás nem ilyen bonyolult, mert nem kell ennyi esetet végigvenni éppen azért, mert a szálak hossza fix, tehát a lécek nem jöhetnek akármilyen sorrendben.
[ Szerkesztve ]
"We spared no expense"
-
detroitrw
addikt
válasz #90999040 #14027 üzenetére
ennél már akkor egyszerűbb ha egy táblakiosztó progiba beadom a tábla szélességű hosszakat s így úgy működne mintha szálkiosztana ...
de ott is ismételten kézzel kéne bevinni az adatokat ami további hibalehetőséget generál
mert az a kis egyszerű excel amit csináltam legalább képes arra hogy a végösszegeket ellenőrizze hogy biztos minden elemből a megfelelő darabszám szerepel e
a táblakiosztási módszerbe meg az lenne a jobb hogy ott tudok a vágóréssel is kalkulálni
mod: s merre lehetne elindulni amúgy?
[ Szerkesztve ]
-
#90999040
törölt tag
válasz cousin333 #14029 üzenetére
Igen, ismétléses kell, de abból indultam ki, hogy ahhoz, hogy algoritmus szintjén ki tudd szűrni az ismétlődéseket, ahhoz jó eséllyel le kell generálni az ismétlés nélküli eseteket...
De ha felesleges körök nélkül sikerülne is csak az ismétléseseket egyből eltalálni, még az is 1,7322649796561E+48, szóval iszonyatosan sok, és akkor még nem is vettük figyelembe, hogy ez csak a konkrét példára vonatkozik, ami természetesen még negatív irányba is változhat...De a megoldás nem ilyen bonyolult, mert nem kell ennyi esetet végigvenni
Semennyire sem bonyolult, ha írsz olyan algoritmust, ami elsőre eltalálja a legjobb megoldást, mert ekkor 1 kísérlet bőven elég.
Azon az úton még el lehetne indulni, hogy az adott fix hossz ismeretében csak a lehetséges megoldásokat figyelembe venni. Ez az algoritmus viszonylag gyorsan lefut(kb. 1 másodperc sem), de a gondok utána jönnek. Ugyanis ezekkel az adatokkal a lehetséges esetek száma 1048. Ebből 238 olyan, amelyekre még a legrövidebb szál sem férne rá pluszban a 6 méterre. Ha biztosra kellene menni, akkor a következő eseteket kellene vizsgálni:
N K
1048 19
1048 20
1048 21
..... és még ki tudja meddig???mert a hosszokból az következik, hogy elvileg 19 darab 6 méteresnek elégnek kellene lennie(elméletileg). Azért több K-ra, mert egyáltalán nem biztos, hogy a valóságban is elég a 19 szál(mi van, ha pl. csak 23 szál a legkedvezőbb???). Ha az 1048 helyett a 238-al(tehát csak azokkal foglalkozunk, amire több már biztos, hogy nem fér rá), még akkor is elég sok esetnél tartunk...
-
detroitrw
addikt
válasz #90999040 #14031 üzenetére
nem a legjobb megoldás lenne a lényeg, mivel kézzel se arra törekszek!
prioritás alapján megyek végig szal előre kerülnek a legmagasabb értékek ... mert fölösleges először a kisebbeket kiosztaniill. ott van az is amit említettem hogy egy bizonyos cella értékétől függően új sort válthatna
pl. ha az érték ~200 -ra csökken (ill. min. db x 5 meglegyen)[ Szerkesztve ]
-
cousin333
addikt
válasz detroitrw #14032 üzenetére
A sokféle lehetséges variáció miatt nem elhanyagolható a kézi módszer.
Én készítettem egy gépi változatot, ami a Solver funkcióra alapoz, és brute-force módszert használ: [link].
Persze igyekeztem minimalizálni a lehetőségeket számos korlátozás bevezetésével. Mindenesetre nálam gond nélkül futott egy órát, és még nem adott végleges eredményt. Igazából nem tudom, meddig futna...
Az egyes cellákat kicsit nehéz kibogarászni, mert a lehető legtöbb konkrét számot és a legkevesebb képletet szerettem volna felhasználni, így remélve azt, hogy gyorsul a számolgatás.
A lényeg, hogy az egyes sorokban látod a különböző elosztási típusokat (max. 5-öt), ahogy te is csináltad a kézi módszernél. A rendszer azt számítja, hogy melyik hosszból mennyit használjon, illetve az adott osztást hány lécen alkalmazza.
A Solver a maradék hosszok négyzetösszegét igyekszik minimalizálni, ami nem feltétlenül a legoptimálisabb cél, de talán nem okoz olyan nagy hibát.
[ Szerkesztve ]
"We spared no expense"
-
detroitrw
addikt
válasz cousin333 #14033 üzenetére
Szia!
köszi hogy foglalkoztál vele
bár azt nem tudom miként lehet automatizálásra bírni
meg ezt még át kéne írni hogy másnak is érthető legyeneddig ezt találtam [link]
elég komoly cucc s 1-2 esetbe kihozta kevesebb szálból
s nincs szükség gépelésre, copy&paste módszerrel fel lehet tölteni az adatot, ill az eredményt könnyen vissza lehet másolni
és még vágórést is meglehet adni
annyi hogy 60 napig ingyenes (na de akkor mire lenne jó a virtualpc? )van egy másik is [link]
ezt viszont nem tudom beüzemelni[ Szerkesztve ]
-
buherton
őstag
válasz Delila_1 #14025 üzenetére
Ez idáig oké, de ezt hogyan tudom az összesre excel fájlra kiterjeszteni, hogy azok önállóan is tudjanak működni?
Közben van egy másik problémám is. Ezt "egyszerűen nem engedi bemásolni a cellába .
SheetNumberReport-ban 2 az érték, ami létezik.
ReportBook.Worksheets("Summary").Range(SheetNumberReport, "N") = "=IF(COUNTIF('CT alr. (Linux) - LT - 001'!H5:H31;Summary!Q2)='CT alr. (Linux) - LT - 001'!A5;Summary!Q2;Summary!Q3)"
A függvényt ha manuálisan másolom be, akkor jól működik!
[ Szerkesztve ]
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
#90999040
törölt tag
válasz detroitrw #14032 üzenetére
Egy új munkalapra másold át az A1 : B7 tartományt(hogy az új munkalapon is az A1 : B7-ben legyen. Az A10-be írd be a 6000-et(mert milliméterben számol).
ALT+F11, majd INSERT menü -> Module.
Ebbe a modulba másold be ezt:Sub frissit()
Set cel = Range("D1")
maxsordarab = 20000
sor = 1 + cel.Row
oszlop = cel.Column
eredetisor = sor
Range("A1").CurrentRegion.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
hosszok = Application.Transpose(Range("A2:A7"))
szalhossza = Range("A10").Value
darabok = Application.Transpose(Range("B2:B7"))
vegsodarabok = Application.Transpose(Range("B2:B7"))
For i = LBound(vegsodarabok) To UBound(vegsodarabok)
vegsodarabok(i) = Application.Min(Application.RoundDown(szalhossza / hosszok(i), 0), darabok(i))
Next
ReDim kimenet(1 To maxsordarab, 1 To 9)
ossz = 0
osszeg = 0
teljes = 0
n = UBound(darabok) - 1
ReDim tomb0(0 To n)
q = -1
Do
While q < n
q = q + 1
tomb0(q) = 0
Wend
ossz = ossz + 1
tele = True
m = 0
For i = 0 To n
If tomb0(i) < darabok(i + 1) Then
If osszeg + hosszok(i + 1) <= szalhossza Then
tele = False
Exit For
End If
End If
Next
If tele Then teljes = teljes + 1
Dim maxdarab As Integer
maxdarab = 200
If tele Then
For i = 0 To UBound(tomb0)
m = m + hosszok(i + 1) * tomb0(i)
kimenet(1 + sor - eredetisor, 1 + i) = tomb0(i)
If tomb0(i) <> 0 Then
If Application.RoundDown(darabok(i + 1) / tomb0(i), 0) < maxdarab Then maxdarab = Application.RoundDown(darabok(i + 1) / tomb0(i), 0)
End If
Next
kimenet(1 + sor - eredetisor, 1 + i) = (szalhossza - m) / szalhossza
kimenet(1 + sor - eredetisor, 1 + i + 1) = "*"
kimenet(1 + sor - eredetisor, 1 + i + 2) = maxdarab
sor = sor + 1
Else
For i = 0 To UBound(tomb0)
m = m + hosszok(i + 1) * tomb0(i)
kimenet(1 + sor - eredetisor, 1 + i) = tomb0(i)
If tomb0(i) <> 0 Then
If Application.RoundDown(darabok(i + 1) / tomb0(i), 0) < maxdarab Then maxdarab = Application.RoundDown(darabok(i + 1) / tomb0(i), 0)
End If
Next
kimenet(1 + sor - eredetisor, 1 + i) = (szalhossza - m) / szalhossza
kimenet(1 + sor - eredetisor, 1 + i + 2) = maxdarab
sor = sor + 1
End If
Do While q > -1
If tomb0(q) < vegsodarabok(q + 1) Then
tomb0(q) = tomb0(q) + 1
osszeg = osszeg + hosszok(q + 1)
If osszeg > szalhossza Then
osszeg = osszeg - hosszok(q + 1)
tomb0(q) = tomb0(q) - 1
osszeg = osszeg - hosszok(q + 1) * tomb0(q)
q = q - 1
Else
Exit Do
End If
Else
osszeg = osszeg - hosszok(q + 1) * tomb0(q)
q = q - 1
End If
Loop
Loop While q > -1
sor = sor - 1
For i = 1 To 9
kimenet(1, i) = kimenet(1 + sor - eredetisor, i)
kimenet(1 + sor - eredetisor, i) = ""
Next
ActiveWindow.FreezePanes = False
Range(Cells(eredetisor - 1, oszlop), Cells(maxsordarab, oszlop + 8)).ClearContents
Range(Cells(eredetisor, oszlop), Cells(eredetisor + maxsordarab - 1, oszlop + 8)).Value = kimenet
Range(Cells(eredetisor - 1, oszlop), Cells(eredetisor - 1, oszlop + 5)).Value = Application.Transpose(Range("a2:a7").Value)
Cells(eredetisor - 1, oszlop + 6).Value = "Hulladék"
Cells(eredetisor - 1, oszlop + 7).Value = "Teljes"
Cells(eredetisor - 1, oszlop + 8).Value = "Max darab"
Cells(eredetisor, oszlop).CurrentRegion.Sort Key1:=Cells(eredetisor, oszlop + 6), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Cells(eredetisor, oszlop + 10).FormulaR1C1 = "=1+RC[-2]"
Cells(eredetisor + 1, oszlop + 10).FormulaR1C1 = "=(1+RC[-2])*R[-1]C"
Cells(eredetisor + 1, oszlop + 10).Copy Destination:=Range(Cells(eredetisor + 2, oszlop + 10), Cells(sor, oszlop + 10))
Cells(eredetisor, 1).Select
ActiveWindow.FreezePanes = True
End SubA makró elindítása után(itt arra figyelni kell, hogy az új munkalap legyen az aktív) a D:H oszlopokban megjelennek a darabszámok(a fejléc a hosszt tartalmazza). A J oszlopban a hulladék, a K oszlopban levő csillag azt jelenti, hogy az adott 6m-es szálra már a legkisebb(jelen esetben 410 mm-es) darab sem fér rá.
Az L oszlopban az adott szál maximális darabszáma szerepel.A legfontosabb: N oszlopban jelzi, hogy hány esetet kellene megvizsgálni - no ez az, ami miatt napok/hetek/évek kérdése, hogy mikor végezne az összes eset megvizsgálásával.
[ Szerkesztve ]
-
saab00
csendes tag
Sziasztok !
Egy olyan kérdésem lenne hogy hogyan lehet azt excelben(2003) megoldani, hogy van egy táblázatom napi dátummal,hónap, rendszámmal(összevissza), km stb.......és egy másik táblázatba a rendszám(sor)hoz és a hónap(oszlop)-t figyelembe véve összegezze az előző táblázatból az adatokat (pl. a km-t) (ugye egy rendszám többször is előfordul egy adott hónapban) ...vagyis hogy ne kelljen kétszer beírni ugyanazt az adatot de rendszám és hónap alapján szűrje és összegezze az értékeket !?
--
-
És még egy: az fkeres fügyvénynél be lehet azt állítani h a keresési tartományban(ami nincs alapból sorba rendezve) ha több találat van csak a legutolsót vegye figyelembe ill. h pl.a 3. oszlopban az egy sorral lejjebb lévőt adja eredményül ??
-
Köszönöm ! -
föccer
nagyúr
Üdv!
Mivel tudom megoldani azt, hogy amikor makróbol akarok egy xls fájlt megnyitni, akkor az adott fájlt egy opendialog-ból lehessen kiválasztani.
Köszi,
üdv, föccer
mod:
Sub macro1()
Filter = "Excel files (*.xls),*.xls"
Caption = "Kérem, adja meg a fájl elérési útját!"
SelectedFile = Application.GetOpenFilename(Filter, , Caption)
ActiveSheet.Range("A1").Value = SelectedFile
End SubEz így elvileg működik?
üdv, föccer
[ Szerkesztve ]
Építésztechnikus. Építőmérnök.
-
bugizozi
őstag
válasz föccer #14039 üzenetére
Sub Get_Data()
FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a file to import", _
FileFilter:="Excel Files *.xls (*.xls),")
''
If FileToOpen = False Then
MsgBox "No file specified.", vbExclamation, "Duh!!!"
Exit Sub
Else
Workbooks.Open Filename:=FileToOpen
End If
End SubVCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
zz76zz
csendes tag
Sziasztok!
Kezdő (illetve már elfelejtő) Excel VB író vagyok.
A kérdés az lenne, hogy egyáltalán kell e makró?A feladat kellemetlenül sok sorból kitörölni azokat az oszlopokat, amik nem felelnek meg bizonyos kritériumoknak.
A lényege ennek az lenne, hogy pdf ből áttesznek nagy sok sort és a gombnyomásra rendeződnének az adatok. Az oszlopszétszedés nem gond, makro rögzíti majd.
Egy laza ha függvénysorral le tudom szűkíteni, hogy mondjuk az adott megmaradni kívánt sorban van e egy x vagy sincs. (sgondolom a makrorögzítő ezt is veszi). De hogyan szabadulok meg úgy a többi sortól, hogy a sorrendem megmaradjon?
Vagy egyszerűbb lenne, ha mindent egy makro végezne?
Makro tud sort törölni bonyolult szövegbeni tartalmazódás szerint?
Túl sokat kérdezek?
Túl össze vissza? Bocswww.vagyunk.hu
-
Bocimaster
csendes tag
Sziasztok!
Az volna a kérdésem, hogy hogyan tudom beállítani egy cellába -egyéni cellaformázással-a bankszámlaszám formátumát (3*8 szám, 2 kötőjellel elválasztva)?Előre is köszönöm.
[ Szerkesztve ]
Az ösztön mindig többet ér az észnél.
-
zz76zz
csendes tag
válasz Bocimaster #14044 üzenetére
Oké köszi holnap megpróbálom, hogy a makrorögzítő különböző táblákon, is "jól" viselkedik e.
www.vagyunk.hu
-
bozsozso
őstag
Sziasztok,
Szeretnék makróban olyat csinálni, hogy egy adott oszlopban adott szöveget keressen meg és ha megtalálta akkor a ennek a sornak az összes adatát másolja át mondjuk az adatok munkalap 2.sorába majd keresi a következőt ha megvan az meg mehet a következő sorba. Makrórögzítéssel megcsináltam auto szűrő majd másol beilleszt a megfelelő helyre, de nincs ettől jobb, "elegánsabb" megoldás? Valamint esetleg olyat, hogy ha az oszlopban amiben keresek bármi módosítás történik akkor legyen végrehajtva a makró?
Pl.:Érték1 jó 5,00
Érték2 rossz 10,00
Érték3 nagyon rossz 15,00
Érték4 jó 48,00Szeretném ahol jó szerepel az kerüljön át az adatok munkalapra a 2. sortól kezdődően.
Érték1 jó 5,00
Érték4 jó 48,00Előre is köszönöm a segítséget.
-
zz76zz
csendes tag
válasz Bocimaster #14048 üzenetére
Bankszámlaszám csak 3*8 vagy 2*8 jegy lehet. Ha 2*8 akkor ki kell egészíteni 8db 0 val
www.vagyunk.hu
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest