-
GAMEPOD.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.
Új hozzászólás Aktív témák
-
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
-
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
-
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
-
zz76zz
csendes tag
válasz Bocimaster #14044 üzenetére
Az a baj, hogy azt nem fogadja logikailag el, hogy
A1="2012*"
mert ugyan a többi feltétel egzakt a harmadik ha feltétel a 2012 vel kezdődő adatokat is igaznak kellene vennie. . .www.vagyunk.hu
-
zz76zz
csendes tag
válasz Bocimaster #14084 üzenetére
Az a baj, hogy ha szöveggé konvertálod át a cellákat, akkor viszont nem tudod formázni.
3 külön cellába tudod tenni, de az nem túl szép megoldás.
Esetleg beviteli mezőket alkalmazhatsz. . . bár jó lenne pontosan tudni mi a feladat.www.vagyunk.hu
-
zz76zz
csendes tag
jó felteszem másképp a kérdést, átha így valaki:
miért nem jó ez a képlet?:
=HA(A1="n";1;HA(A1="item";1;HA(1=SZÖVEG.KERES("2012*";A1;1);1)))
szerintem azt kellene csinálnia, hogy egyet ad, ha n, item vagy 2012 vel kezdődő szöveg van az a1 es cellábanwww.vagyunk.hu
-
zz76zz
csendes tag
válasz cousin333 #14098 üzenetére
Ez nagyon szép megoldás. Köszönöm szépen! Nem ismertem ezen lehetőségeket. Már csak annyi gondom van, hogy a scrip futtatása köznem a dátumokat átformázza és katyavaszos lesz. Hiába raktam át szövegessé a cellákat, amikor a script nekikezd, akkor átnézi újra és átírja. Olvastam fórumokat, de kielégítő megoldást nem találtam. . . ha valaki tud segíteni megköszönöm.
OO nem rakja át ott viszont nem működött egyik függvény sem.www.vagyunk.hu
-
zz76zz
csendes tag
végül sikerült, kis segítséggel összehozni. de (ugye, mert mindig van egy de) 2007 es excelben csináltam és, ahol használnák 2003 van, ami nem ismeri a hahiba utasítást (meg lehet másikat sem.
van e valamilyen fordító, vagy akármi más megoldás, hogy tudkjon azon is futni?
az office kompatibilitás csomag nem hozott eredményt.
a kód kommentezve, ha érdekel valakit:Sub Makró1()
'
' Makró1 Makró
''
'mielőtt bármit csinálnánk szám formátumra vesszük az egészet. ez azért kell, hogy az excel ne formázza automatikusan dátummá bizonyos karaktersorozatokat'
Selection.NumberFormat = "@"
'az excel mégis dátumozna, ezért a / vezérlőkaraktereke eltávolítjuk'
Selection.Replace What:="/", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'a számokat a pdf x.0 formában hozza. ez zavarhat a későbbi számolásban: leszedjük'
Selection.Replace What:=".0", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=FalseRange("A1").Select
Range("A1:A6000").Select'oszlopra bontjuk a katyvaszt'
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1)), TrailingMinusNumbers:=TrueRange("N1").Select
'az N, item, és 12vel kezdődőek megjelölése'
ActiveCell.FormulaR1C1 = _
"=IF(RC[-13]=""n"",1,IF(RC[-13]=""item"",1,IF(SEARCH(""12*"",RC[-13],1)=1,1,"""")))"
Range("N1").Select'6000 sor mélységig vizsgálunk'
Selection.AutoFill Destination:=Range("N16000"), Type:=xlFillDefault
Range("N16000").SelectRange("A1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$Z$6000").AutoFilter Field:=14, Criteria1:="1"
Rows("2:6000").Select
'megjelöltek másolása a munka2 be'
Selection.Copy
Sheets("Munka2").Select
Range("A2").Select
ActiveSheet.Paste
Range("A1").Select
'beszúrunk 6 oszlopot a későbbi részműveletekhez'
Columns("B").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("E:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B,C,E:E,F,N,O").Select
Range("O1").Activate
'a szöveges cellaformátumot átalakítjuk általánosra különben a képleteink szövegként leperegnek az excelről'
Selection.NumberFormat = "General"
Range("B1").Select
'dátum van e az első oszlopban?'
ActiveCell.FormulaR1C1 = "=IFERROR(1=SEARCH(""12*"",RC[-1],1),0)"
Range("C1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=0,LEFT(RC[5],6),RC[-2])"
'ha igen, akkor onnan szedjük a dátumot, ha nem akkor másik dátum oszlopból'
Range("B11").Select
'3000 sormélységig vizsgálunk'
Selection.AutoFill Destination:=Range("B13000"), Type:=xlFillDefault
Range("B13000").Select
Range("E1").Select
'a fentihez hasonló vizsgálat rendelésszámra'
ActiveCell.FormulaR1C1 = "=IFERROR(1=SEARCH(""4521*"",RC[-1],1),0)"
Range("F1").Select
'ha nincs, akkor az forcast rendelés'
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=0,""Forecast"",RC[-2])"
Range("E11").Select
Selection.AutoFill Destination:=Range("E13000"), Type:=xlFillDefault
Range("E13000").Select
Range("N1").Select
'keressük a cikkszámokat'
ActiveCell.FormulaR1C1 = "=IFERROR(1=SEARCH(""sfv-*"",RC[-6],1),0)"
Range("N1").Select
Selection.AutoFill Destination:=Range("N13000"), Type:=xlFillDefault
Range("N13000").Select
Range("O2").Select
'ha találunk adott helyen, akkor beírjuk, ha nem, akkor úgy veszzük mintha az előző cikk volna'
ActiveCell.FormulaR1C1 = "=IF(RC[-1],RC[-7],R[-1]C)"
Selection.AutoFill Destination:=Range("O23000"), Type:=xlFillDefault
Range("O23000").Select
'vizsgáljuk hogy n van e, mert akkor mást kell beírni'Range("i1").Select
ActiveCell.FormulaR1C1 = "=IFERROR(1=SEARCH(""n"",RC[-8],1),0)"
Selection.AutoFill Destination:=Range("i1:i3000"), Type:=xlFillDefault
Range("i1:i3000").SelectRange("j1").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1],RC[1],RC[-3])"
Selection.AutoFill Destination:=Range("j1:j3000"), Type:=xlFillDefault
Range("j1:j3000").Select
'számformátumizálás'Columns("J:J").Select
Selection.NumberFormat = "0"Columns("C").Select
Application.CutCopyMode = False
Selection.Copy
Range("Q1").Select
'értéket básolunk irányított beillesztéssel'
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("R2").Select
Application.CutCopyMode = False
'a dátumjaink ééhhnn formában vannak. kicsit kiszépétjük, hogy ééééhhnn formába kerüljenek'
ActiveCell.FormulaR1C1 = "=RC[-1]+20000000"
Range("R2").Select
Selection.AutoFill Destination:=Range("R23000"), Type:=xlFillDefault
Range("R23000").Select
'kiszűrjük azon sorokat, amik nem tartalmaznak már számunkra értékes információt'
Range("A1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$AD$3000").AutoFilter Field:=18, Criteria1:=">2010" _
, Operator:=xlAnd
Columns("D").ColumnWidth = 13.57
Columns("F").ColumnWidth = 10.86'munka3 ba másoljuk a kész adatokat és formázgatjuk:'
Range("F,J:J,O,R").Select
Range("R1").Activate
Selection.Copy
Sheets("Munka3").Select
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
Sheets("Munka2").Select
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Sheets("Munka3").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "rendelésszám"
Range("B1").Select
ActiveCell.FormulaR1C1 = "mennyiség"
Range("C1").Select
ActiveCell.FormulaR1C1 = "cikk"
Range("D1").Select
ActiveCell.FormulaR1C1 = "szállítási idő"
Range("E1").SelectColumns("A").Select
Columns("A").EntireColumn.AutoFit
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("A1").SelectEnd Sub
www.vagyunk.hu
-
-
zz76zz
csendes tag
válasz vzsryl #14241 üzenetére
Azért azt a 2 GB xls-t is górcső alá venném. . .
Nincs annyi adat szerintem, amit egy átlátható xls tartalmazna.
Példa: el volt "harapózva" egy xls em mérete. Tesztelgettem egy adott feladatot.
Majd minden adat nélkül csak 30 sor makrót tartalmazó xls lett 4MB.
Na mondom ez nem járja.
Nyitottam egy üres file-t és bemásoltam csak a makrót a szerkesztőbe. Így lett ugyan azt a funkciót ellátó file 46kB. . .www.vagyunk.hu
-
zz76zz
csendes tag
válasz D@ni88 #14260 üzenetére
"Azért azt a 2 GB xls-t is górcső alá venném. . .
Nincs annyi adat szerintem, amit egy átlátható xls tartalmazna.
Példa: el volt "harapózva" egy xls em mérete. Tesztelgettem egy adott feladatot.
Majd minden adat nélkül csak 30 sor makrót tartalmazó xls lett 4MB.
Na mondom ez nem járja.
Nyitottam egy üres file-t és bemásoltam csak a makrót a szerkesztőbe. Így lett ugyan azt a funkciót ellátó file 46kB. . ."
A lényeg, hogy az Excel dagasztja a file-okat. A csökkenést még nem tapasztalt érdekesség.www.vagyunk.hu
-
zz76zz
csendes tag
válasz ChiliChili #14290 üzenetére
http://office.microsoft.com/hu-hu/excel-help/osszefuz-HP005209020.aspx
www.vagyunk.hu
-
zz76zz
csendes tag
válasz ChiliChili #14308 üzenetére
Dehogynem ez a kész cucc.
Amire vigyázz: példámban a b oszlop szöveg formátum a c pedig általános. Ezt előre állítasd be.[ Szerkesztve ]
www.vagyunk.hu
-
zz76zz
csendes tag
Sziasztok!
A kérdés az lenne, hogy tud e az excel a hét száma alapján egy dátumot adni.
Pl megadom, hogy 2012 meg, hogy 30 és abból kiszámolja, hogy: 2012.07.23.
(Az adott hét hétfője)www.vagyunk.hu
-
zz76zz
csendes tag
válasz Delila_1 #14926 üzenetére
Működik 2012 től 2016 ig. Nem szép, de működik.
'a hét jelölésből levenni a W-t'
=CSERE(G8;1;1;"")
'értéket képzünk'
=ÉRTÉK(G6)
'meghatározzuk hányadik napja az évnek'
=SZORZAT(G5;7)
'kiszámítja, hogy mennyit kell hozzáadni a napok számához, év szinten.'
'jelenleg 2016.12.31. ig működik'
'később átírhat egy munkaóra alatt további évekre'
=HA(G4=2012;"40903";HA(G4=2013;"41267";HA(G4=2014;"41631";HA(G4=2015;"41995";HA(G4=2016;"42366";"Hibás év!")))))
'vizsgálat és számítás, attól függően, hogy az év első hete e vagy későbbi és vagy évi első munkanapot vasz, vagy adott hét első hétfőjét'
=HA(ÉS(G4=2012;G5=1);"40909";HA(ÉS(G4=2013;G5=1);"41275";HA(ÉS(G4=2014;G5=1);"41640";HA(ÉS(G4=2015;G5=1);"42005";HA(ÉS(G4=2016;G5=1);"42373";G3+G7)))))
'dátumképzés'
=ÉRTÉK(G1)www.vagyunk.hu
-
zz76zz
csendes tag
Már csak a neheze van.
Végig kellene menni egy táblázaton, ahol a cikkszám és a dátumhoz vagy tartozik érték vagy nem. Ha igen akkor be kellene tenni oly módon egy új sorba oszloponként, hogy cikkszám, dátum, mennyiség. Ha nincs, akkor kihagyni. Ebből a soremelésre nincs ötletem leginkább feltételesen.www.vagyunk.hu
-
zz76zz
csendes tag
válasz zz76zz #14936 üzenetére
Erre semmi ötlet? Leírom érthetőbben hátha
Van egy oszlop cikkszámokkal, a fejlécben egymást követő dátumok.
A cikkeket a bizonyos dátomokkor vagy rendelik vagy nem.
Ebből olyat kell csinálnom, ahol soronként jönnek egymás után a időpontal a termékek és a mennyiség. Ahol nincs az eredetiben mennyiség, azt ki kellene hagyni.www.vagyunk.hu
-
zz76zz
csendes tag
Help plízzz!
Dátumból szeretnék szöveg formátumot.
Ha megcsinálom azt hogy átmásolom másik oszlopba kiveszem a pontokat és szöveges cellaformátumot csinálok, akkor minden okés, de amint makróba teszem, átalakítja a exceles tárolási formára pl: 41106erre fordította a makrorögzítő, amit fentebb leírtam:
Columns("B:B").Select
Selection.Copy
Columns("F:F").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Columns("F:F").Select
Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Application.CutCopyMode = False
Selection.NumberFormat = "@"
Mi a hiba? vagy hogyan tudnám egyszerűbben átalakítani?www.vagyunk.hu
-
zz76zz
csendes tag
válasz WildBoarTeam #15015 üzenetére
Van olyan, hogy szövegből oszlopok és határolónak a szóközt választod, de nem tudom javul e a helyzet . . . gondolom nem ugyan azon oszlopba kerülnek.
Mondjuk utána lehetne "/" jelre is bontani a cellákat és akkor már rendezhető lesz. Nem tudom segített ewww.vagyunk.hu
Új hozzászólás Aktív témák
- Vezetékes FEJhallgatók
- OnePlus 7 - magabiztos folytatás
- nVidia kártyát mindenkinek!
- Autós topik látogatók beszélgetős, offolós topikja
- Házimozi haladó szinten
- Számtech boltosok memoárjai, azaz amikor kiborulunk...
- Kertészet, mezőgazdaság topik
- gban: Ingyen kellene, de tegnapra
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- További aktív témák...
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )