Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
Próbáltam, de nem nem érti. Beírj az első celléba, ahova kell és finish : #NAME?.
Kipróbáltam egy az egyben is. Megadva szépen a ranget és szépen kezdi is kitölteni, de az első olyan után cella után ahova nem talál megfelelést "n/a" lenne leáll az egésszel.
Olvastam a neten, hogy a worksheetfunction.vlookup-ot kéne itt használni, mert az nem robban le az első sikeretelen találat után...
De basszus lezsibbadtam ettől :-).
Egy hajszál választ el a kész macrotól :-D...és annyire idegesítő hogy ez a vlookup kérdés nem is annyira egyszerű...
Most már el kell mennem, de holnap folyt köv...NEM ADOM FEL :-)))...olyan szépen haladtam :-)
For i = 1 To x wbCheckFile.Worksheets(i).Range("B:B").Insert Shift:=xlToRight wbCheckFile.Worksheets(i).Range("B1") = "UniqueCode" Set rWorkRange = wbCheckFile.Worksheets(i).Range("A2")
Do While rWorkRange.Value <> Empty rWorkRange.Offset(0, 1).Value = "=RC[21]&""_""&RC[24]&""_""&RC[26]&"" Q""&ROUNDUP(MONTH(RC[6])/3,0)&"" ""&YEAR(RC[6])" Set rWorkRange = rWorkRange.Offset(1, 0) Loop Next i
For i = 1 To x wbCheckFile.Worksheets(i).Range("B:B").Copy wbCheckFile.Worksheets(i).Range("B:B").PasteSpecial xlPasteValues wbCheckFile.Worksheets(i).Range("L:M").Insert Shift:=xlToRight wbCheckFile.Worksheets(i).Range("O:P").Insert Shift:=xlToRight
For i = 1 To x Set rWorkRange = wbCheckFile.Worksheets(i).Range("B2") Set vRng = wbPriceList.Worksheets(1).Range("B:M")
Do While rWorkRange.Value <> Empty rWorkRange.Offset(0, 10).Value = "=VLOOKUP(RC[-10],vRng,10,0)" rWorkRange.Offset(0, 11).Value = rWorkRange.Offset(0, 9).Value - rWorkRange.Offset(0, 10).Value Set rWorkRange = rWorkRange.Offset(1, 0) Loop Next i
Izé... Nekem se sikerült sehogy sem, pedig próbálkoztam...
Aztán utánanéztem, és ezt találtam:
"UDF's do not have the same flexibility as a standard Procedure. A UDF cannot alter the structure of a Worksheet, such as change the Worksheet name, turn off gridlines, protect the Worksheet etc. They cannot change a physical characteristic of a cell, including the one that houses the UDF. So we cannot use a UDF to change the font colour, background colour etc of any cell. They cannot be used to try and change any part of another cell in any way at all. This means a UDF cannot place a value into any other cell except the cell housing the UDF."
"Ebből csak azt nem látom még, hogy a cél-cellát hogy hivatkozzam meg az UDF-ben..."
Úgy látom, elsikkadt a 14083. hsz.
"Lehet egy Change eseménykezelővel jobban lehetne boldogulni"
Képlet számolása nem vált ki a Change eseményt.
Ha pl. B1 cellában a képlet =A1, és A1 megváltozik, akkor lesz Change, de ekkor a Target A1 lesz, és B1-et csak a Target.DirectDependents tartományból tudod kihámozni. Ha a Target.DirectDependents egyetlen cella, akkor szerencséd van. Ha több cella, akkor melyik lehet az, amit át kell színezni?
Én a forrás cellából csak rámásolnám .PasteSpecial Paste:=xlPasteFormats módon a célcellára a formátumot. A fene állítgatná egyesével azokat (mert erre következtettem a hszodból)
Sőt. A legegyszerűbb a teljes oszlopra átmásolni, lassítani nem nagyon lassít...
Nehogy egyesével állítgass be minden cellaformátum tulajdonságot AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBulgarianCatalanChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDetect languageDutchEnglishEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekHaitian CreoleHebrewHindiHungarianIcelandicIndonesianIrishItalianJapaneseKoreanLatinLatvianLithuanianMacedonianMalayMalteseNorwegianPersianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwahiliSwedishThaiTurkishUkrainianUrduVietnameseWelshYiddish⇄AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBulgarianCatalanChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekHaitian CreoleHebrewHindiHungarianIcelandicIndonesianIrishItalianJapaneseKoreanLatinLatvianLithuanianMacedonianMalayMalteseNorwegianPersianPolishPortugueseRomanianRussianSerbianSlovakSlovenianSpanishSwahiliSwedishThaiTurkishUkrainianUrduVietnameseWelshYiddishDetect language » Hungarian
Hát mert a kérdező az UDF saját cellájában szeretné látni a forrás-cella formázását.
Szóval a teendő:
- kitalálni mi a forrás cella (ez ugye bejövő adat, simán megy);
- kiolvasni a forrás-cella minden formázását (Bold, Italic, keret, szín, stb.)
- a cél cella formázását a fentiekkel azonossá tenni.
Ebből csak azt nem látom még, hogy a cél-cellát hogy hivatkozzam meg az UDF-ben...
Lehet egy Change eseménykezelővel jobban lehetne boldogulni (ott mondjuk az lenne relatíve bonyolult, hogy kiszedjük a cellatartalomból, hogy csak egy sima =B1 tipusú hivatkozás van benne és nem egy "Sheet3!A4+5"
Köszi! Valóban nem fórumoztam, plusz még ha fórumozok, akkor is ritkábban írok ide, mert nagyon eltolódott a topik a makróírás felé, amiben meg én is tanonc lehetnék, és csak lesem a válaszokat.
Elgondolkodtam rajta: például le lehetne kérdezni a cellára előre beállított formázást vagy feltételes formázást, vagy lehetne relatívan címezni a tőle eggyel balra levő cellát vagy ilyesmi.
Talán az afrikaanst választanám a listádból, ott most jó idő lehet.
SOS feladat, a G14 eredményét hozza át a H16-ba, de, ha negatív, akkor szorozza meg -1, hogy pozitív legyen, de, ha pozitív, akkor hagyja békén, mert ide, csak pozitív szám kerülhet.
Már nem nagyon emlékszem, de mintha a 2003 - 2007 verzióváltáskor merült volna fel, különböző függvények (dátum?) kapcsán. Talán még az Analysis Toolpak használata (illetve ennek bekapcsolása) is lehetett... Sajnos, nem tudok bővebben segíteni.
Majd nagyon, de nagyon figyelek, merthogy igazából teljesen ámátőőőr excel felhasználó vagyok. (Egyelőre fogalmam sincs mi az az UDF, de majd bólogatok, mintha érteném.)