-
Fototrend
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
-
m.zmrzlina
senior tag
válasz Delila_1 #10490 üzenetére
Igen kell mert nem csak egyszerűen átmásolni akarom egyben az egészet, hanem egyenként minden cellát megcsócsálni.
Sub kiemel()
Dim cella As Range, kiemeles As String
For Each cella In Selection.Cells
kiemeles = WorksheetFunction.Substitute(Mid(cella.Value, WorksheetFunction.Search("(", cella.Value) + 1, WorksheetFunction.Search("%", cella.Value) - WorksheetFunction.Search("(", cella.Value) - 2), ".", ",")
Worksheets("riport").Cells(cella.Row - 10, cella.Column).Value = kiemeles * 1
Next
End SubAz útvonalas munkafüzet sikerén felbuzdulva szeretném kicsit emberi formára hozni egy régebbi munkafüzetemet amivel kapcsolatban itt érdeklődtem.
Ez a ciklus hamarabb lefut 13000 cellán mint amennyi idő alatt az eredeti fájl betöltődik.
A fájl mérete így kb 1/3-a az eredeti fájlnak de az UDF-es megoldásnál is gördülékenyebben működik.
-
vgergo
aktív tag
Sziasztok
Olyan problémám van, hogy az excel rosszul nyitja meg csv file-kat.
pl egy csv file-ra:
"a";"b"
"123E02";"abc"Beolvasás után E-t exponenciálisnak veszi.
Ha a csv file-t átalakítom erre:
"a";"b"
'123E02;"abc"
,akkor '123E02 jelenik meg és F2 ENTER lesz csak jó a mező értéke,Milyen formátumú legyen a csv file, hogy ha az intézőben 2x rákattintok, akkor jól jelenjen meg a csv file az excel-ben.
Előre is köszi a segítséget!
üdv.:vgergo
-
Delila_1
Topikgazda
válasz m.zmrzlina #10501 üzenetére
Nálam egész számokat adott a 2.9, vagy a 0.2 helyett.
Nem tudom már, mi volt a makróink között a különbség, ide rajzolom az enyémet.
A value legtöbb helyen alapérték, nem kell kiírni, anélkül is 50 cm a változó meghatározása.Sub kiemel()
Dim cella As Range, kiemeles As String
For Each cella In Selection.Cells
kiemeles = WorksheetFunction.Substitute(Mid(cella, WorksheetFunction.Search("(", cella) + 1, _
WorksheetFunction.Search("%", cella) - WorksheetFunction.Search("(", cella) - 1), ".", ",")
Worksheets("Munka2").Cells(cella.Row - 10, cella.Column) = kiemeles * 1
Next
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.
-
vgergo
aktív tag
válasz Delila_1 #10504 üzenetére
Sajnos nem működik.
A másik probléma ezzel, hogy én most egy olyan programot írok, amely csv file-k lesznek az outputjai és ezeket a file-kat egyszerű felhasználók csak 2x rákattintanak és tökéletes formátumban szeretnék ott látni az adatokat. Az az nem mondhatom nekik az, hogy megnyitás után csináld ezt meg ezt. Tehát nincs más választásom, mint olyan formátumot találni a csv file-oknak, amiket az excel automatikusan jól olvas be.
-
Delila_1
Topikgazda
válasz vgergo #10505 üzenetére
Ha Te adod meg az outputot, szövegként kellene mentened a számokat úgy, hogy & jellel hozzájuk fűzöl egy üres stringet.
Beolvasásnál van valami olyan opció, hogy számnak értelmez mindent, ami annak látszik.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
vgergo
aktív tag
válasz Delila_1 #10506 üzenetére
Beolvasásnál van olyan opció, hogy melyik oszlopot minek értelmezzen, csak ezek az emberek annyira egyszerű felhasználok, hogy csak 2 kattintással akarják megnyitni a csv file-t. Ők ragaszkodnak ahhoz, hogy olyan léegyen a csv file, hogy 2 kattintással megnyissák minden adat tökéletesen jelenjen meg náluk.
Üres stringgel is próbálkoztam, de nem tetszett nekik, mert mikor kimásoltak egy cella tartalmát, akkor automatikusan az üres stringet is másolták és ahová bemásolták az adatot az a program az üres string-gel már nem működött. -
Delila_1
Topikgazda
válasz vgergo #10507 üzenetére
Úgy értettem a dolgot, hogy a hosszú számok pl az A oszlopban vannak.
A csv fájllá alakítás előtt a makródban meghatározod az alsó sort:
as=range("a1000").end(xlup) ,
a következő sor range("a1:a" & as)=range("a1:a" & as)&""A behíváshoz rögzítesz egy makrót, ami tudja a számkénti megjelenítést, ehhez teszel ki nekik 1-1 gombot az eszköztárra.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
vgergo
aktív tag
válasz Delila_1 #10508 üzenetére
Várj, azt hiszem félreértettük egymást.
csv-t fájlt C++ ban írt progival állítom elő. A C++ program jól működik, ha pl notepad-ban nyitom meg a csv-ket, de nekem nem notepad kell, hanem excel-ben is jól jelenjenek meg.
A problémám csak annyi, hogy nem tudom, hogy milyen formátumú legyen a csv fájl tartalma, ha excel-lel megnyitva az az adat jelenjen meg amit akarok. Excelben NE kelljen semmit sem módosítani/csinálni, mert az excel nem én fogom használni, hanem olyan emberek, akik csak a csv file-re 2x rákattintanak és kész.123E456 elé/mögé mit írjak, hogy az excel cellában 123E456 jelenjen meg.
Eddig ezekkel próbálkoztam:
"123E456"
'123E456 ez majdnem jó volt, csak minden mezőben F2 Entert kell nyomni -
-
m.zmrzlina
senior tag
válasz Delila_1 #10503 üzenetére
Én csak annyi különbséget látok, hogy lehagytad a .Value-kat ill, hogy bennehagytál egy szóközt a "%" előtt (a végén csak egyet vonsz ki)
Ilyen a szerkezete a celláimnak:
07:27 (0.7 %)
02:10 (3.8 %)
01:14 (0.2 %)
00:00 (0.0 %)
00:37 (0.0 %)
00:00 (0.0 %)Azt tudom (nem olyan rég óta ) hogy a .Value-t el lehet hagyni de a magam számára is áttekinthetőbb a kód ha bennehagyom ezeket a nem kötelező részeket. Kis túlzással még a 2*2+2-t is zárójelezni szoktam (2*2)+2, hogy pár hét múlva is tudjam, hogy mit miért csináltam. (Aztán sokszor még így sem tudom )
-
Delila_1
Topikgazda
válasz m.zmrzlina #10512 üzenetére
Igen, ott 2-t kellett volna levonni.
Valamiért ez mégis tudja a 2,9-et.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz m.zmrzlina #10514 üzenetére
Ez jó kérdés!
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz m.zmrzlina #10516 üzenetére
Azonos területről azonos területre másoltam az adatokat a két makróval, közben nem változtattam semmi mást.
Nem is számít, hiszen Nálad jól működik, nekem meg nem kell, és ha kellene, az átírt makróval nálam is jól megy.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
VGYke
addikt
Sziasztok! Excelben adatlekérdezéssel nincs sok problémám, beleértve a web lekérdezést.
Viszont most a tudományommal megbuktam, kérlek segítsetek.
Van egy képletekkel teletömött excelem, ahol a kiindulási adattábla egy excel munkalap, amit le lehet tölteni a netről.
Szóval van egy www.akármi címem, amit a böngészőbe beírva, a böngésző helyből felajánlja az excel letöltését/megnyitását.
Ezt a www.akármi címet szeretném valahogy használni az excelemben, hogy megnyitásnál frissítse az adot munkalapot (amit egyébként is letöltene ha böngészőből indítom).
Lehetséges ez?kutya az ember legjobb barátja... lenne, ha tudna kölcsönadni
-
cellpeti
veterán
Üdv!
Az egyetemen a következő félévtől MS Excel 2010-vel fogunk dolgozni. Tudnátok jó könyvet(ha lehet magyar nyelven) ajánlani hozzá?
Tigris, tigris, csóvafény...
-
bnorci71
addikt
válasz Delila_1 #10500 üzenetére
Csináltam egy képet, hogy is néz ki a 2 tábla
Talán így egyszerűbb mint, ha magyarázom.
Excel 2003 amit használok, de ha 2007-be egyszerűbb a megoldás abba is meg tudom oldani
Közbe kezdett körvonalazódni amit el kellene érni
Az excel2-ből kellene "D" oszlopot megfelelően az excel1 házszám adatához hozzáfűzni.[ Szerkesztve ]
"If in doubt, flat out!" "Straight roads are for fast cars, turns are for fast drivers"
-
Geryson
addikt
Egyszerű problémám lenne, ki tudna segíteni? Az érvényesítésnél nem csak 10 elemet szeretnék látni. Lehetőség szerint vagy annyit, amennyi érték kiválasztható (ez néha 2, néha 20), vagy legyen mondjuk 20.
Rinderkennzeichnungsfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
-
félisten
válasz cellpeti #10519 üzenetére
Magyar? Felejtős... Angol E-book-ban tudok segíteni, van olyan könyv, ami pl semmi mással nem foglalkozik csak a Pivot table-el, de annak a legmélyebb bugyraival, de akad Excel 2010 Bible nevű olvasmány is, stb stb.
Egy viszont fontos: Mindegyikhez kell némi alap, mert egy expert-nek szóló kiadványban nem foglalkoznak kezdő szintű ismeretanyaggal, min. haladó előképzettség kell, valamint a 2010-es Excel könyvek is már gyakran halaó ismeretanyagot feltételeznek.Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
cellpeti
veterán
válasz Fire/SOUL/CD #10523 üzenetére
Hát nekem kezdőről kell, nem szoktam foglalkozni az Excel-vel általában. Szegély tudok csinálni táblázatnak és...ennyi Szóval nekem alapkönyv kellene
Tigris, tigris, csóvafény...
-
Delila_1
Topikgazda
válasz bnorci71 #10520 üzenetére
Írtam hozzá egy makrót, amit az excel1.xls füzetedhez másolj be.
Alt+F11-re bejön a VB szerkesztő. Bal oldalon kiválasztod az excel1-et, Insert menü, Module.
Jobb oldalon kapsz egy üres lapot, oda másold.Ha nem excel1 és excel2 a füzeteid neve, írd át a saját neveidre. Ugyanúgy a Munka1 lap nevét is, ha nálad más a lapok neve. Mindegyik füzet neve egyszer szerepel a makróban, a hozzá tartozó Munka1 lappal egy sorban.
A makró futtatásakor legyen mindkét füzeted nyitva.Sub kieg()
Dim sor%, usor%, lel, sor_lel%, WS As Object
Workbooks("excel1.xls").Sheets("Munka1").Activate
usor% = Range("C60000").End(xlUp).Row
Set WS = Workbooks("excel2.xls").Sheets("Munka1")
For sor% = 2 To usor%
With WS.Columns("I:I")
Set lel = .Find(Cells(sor%, "E"), LookIn:=xlValues)
sor_lel% = lel.Row
If Not lel Is Nothing And WS.Cells(sor_lel%, "D") > "" Then
Cells(sor%, "C") = Cells(sor%, "C") & ". " & WS.Cells(sor_lel%, "D")
End If
End With
Next
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.
-
bnorci71
addikt
válasz Delila_1 #10525 üzenetére
köszivalami hibát hoz,
a 40.sorig összefűzte, majd dob egy hibaüzenetetRun-time error '91':
Object variable or with block variable not setDebug gombra ezt sárgítja ki a makróból
sor_lel% = lel.Row
"If in doubt, flat out!" "Straight roads are for fast cars, turns are for fast drivers"
-
félisten
válasz bnorci71 #10526 üzenetére
A macro-ban nincs hibakezelés, mert azt feltételezi, hogy minden vizsgálat esetén megtalálja a keresett értéket. Ezek szerint nem, azaz van olyan sorod/cellád, amiben nem lehet megtalálni. Nem olvastam vissza, de feltételezem nem jelezted Delila_1 felé, hogy pl üres sorok/cellák is vannak...
cellpeti
Kezdőknek és egyből 2010 ez az, amit javasolni tudok (nem Magyar)[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
bnorci71
addikt
válasz Fire/SOUL/CD #10527 üzenetére
Na ehhez én már nagyon kevés vagyok,de -józan paraszti ésszel és logikával- az üres sor cella nem okozhatna neki gondot, mert az első sorba is van rögtön üres cell. A 40. sorig mégis lefut a makró.
"If in doubt, flat out!" "Straight roads are for fast cars, turns are for fast drivers"
-
félisten
válasz bnorci71 #10528 üzenetére
Mint írtam nem olvastam vissza és az üres sort is csak példának hoztam. Ezzel a sorral van gond
Set lel = .Find(Cells(sor%, "E"), LookIn:=xlValues)
Ha tudod ez mit is csinál(bízom benne, hogy tudod, nem csak úgy bemásolgatod a makrókat, anélkül, hogy ismernéd a működését), akkor hasonlítsd össze a 41.sort az előzőekkel, és remélhetőleg rájössz, hogy az miben különbözik az előző soroktól...
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
cellpeti
veterán
válasz Fire/SOUL/CD #10527 üzenetére
valamikor el kell kezdeni angolt tanulni
[ Szerkesztve ]
Tigris, tigris, csóvafény...
-
DopeBob
addikt
Sziasztok, egy kis tipp kéne
Elég nagy mennyiségű időpontot kell felvinni naponta Excelben (óra:perc). Ki lehet valahogy váltani a kettőspontot? Pl, hogy a vesszőt is elfogadja, és akkor elég a numpadot csépelni.
MZ/X
-
bnorci71
addikt
válasz Fire/SOUL/CD #10529 üzenetére
ha ismerném a makró működését nem kellene segítség
fogalmam nincs mit csinál, de majd jön Delila_1 és megmondja mi a hiba"If in doubt, flat out!" "Straight roads are for fast cars, turns are for fast drivers"
-
gigi183
csendes tag
válasz Delila_1 #10491 üzenetére
Sziasztok.
Megpróbáltam, de sajnos nem sikerült. Argument not optional feliratot dob ki. Nem tudom mi lehet a hiba. A makrókat engedélyeztem, gombhoz hozzárendeltem, de lehet valamit nem jól csináltam, nem értem
Illetve a kód amit küldtetek, az csak azt csinálja nem, hogy a 0-ás sorokat kitörölné, de nekem az kellene, hogy először eggyel csökkent minden értéket és utána ami 0 azt kitörli. Balra 3 cellányit jobbra meg 4-et most már, mert kibővítették a táblámatIlletve ha összehoznánk ezt, akkor ugyanúgy működne angol excel alatt is?
-
gigi183
csendes tag
válasz gigi183 #10533 üzenetére
Na próbálkoztam még, és működik, már csak annyit kellene megoldanom, hogy ha az aktuális lapot átmásolom mondjuk egy Today feliratú munkalapra, akkor az Nts oszlopban lévő számok eggyel csökkenjenek, vagy automatikusan, vagy gombbal.
Másik hülye kérdésem is lenne.
Van egy tábla, olyan mint amit először küldtem, (a rémes háttérszínes). Ebben dolgozik egy kollégám, aki folyamatosan aktualizálja. Namost valahogy meg kellene oldanom, hogy a fájl amivel dolgozik, nálam is megjelenjen, de az enyémben már lennének plusz sorok, teszemazt összesítések, ilyesmi, de azt nem szeretném, ha ő ezeket a sorokat bármiféleképpen módosítani tudja, legjobb, ha nem is látja. Meg lehet-e oldani valahogy az ilyen kapcsolatot két fájl között, vagy tudtok-e megoldást rá? Csavar még az egészben, hogy neki vannak összevont cellái, viszont az én fájlomban ezeket ki kell iktatni, vagyis azok a cellák amik össze vannak vonva úgy jelenjenek meg, hogy mindegyikben ugyanaz az érték van ami az összevont cellában (akár 5-6 soron keresztül is).Remélem érthetően fogalmaztam...
-
-
ArchElf
addikt
válasz DopeBob #10531 üzenetére
Alapból nem eszi meg, mert a vesszó az tizedesjegy (tehát a bevitelt számként értelmezi - a dátumot pedig az excel úgy tárolja (egyész szám - dátum; törtszám - óra-perc-másodperc-töredék). Pl ha 12,30-at írsz be, aakorazt automatikusan 1900.01.12 07:12-re konvertálja - de ahogy előttem leírták, két oszloppal már megoldható (vagy esetleg makróval, ami az összes bevitel után lefut az oszlopra).
Esetleg makróból:
Private Sub Worksheet_Change(ByVal Target As Range)
'+ jelre átalakít dátummá
'a 3. oszlopban
Dim OSZLOPSZÁM As Integer
OSZLOPSZÁM = 3
Dim c As Range
Dim dt As Date
If (Target.Columns.Count = 1 And Target.Column = OSZLOPSZÁM) Then
For Each c In Target.Cells
If InStr(c.Value, "+") > 0 Then
dt = CDate(Replace(c.Value, "+", ":", 1, 2))
c.Value = dt
End If
Next
End If
End SubAE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
m.zmrzlina
senior tag
válasz gigi183 #10534 üzenetére
Na próbálkoztam még, és működik, már csak annyit kellene megoldanom, hogy ha az aktuális lapot átmásolom mondjuk egy Today feliratú munkalapra, akkor az Nts oszlopban lévő számok eggyel csökkenjenek, vagy automatikusan, vagy gombbal.
Erre a problémára új modulba (Inset>Module) tedd be a következőt:
Sub masol()
Application.ScreenUpdating = False 'képernyőftissítést tilt
ActiveSheet.Copy after:=Sheets(ActiveWorkbook.Sheets.Count) 'lemásolja az aktív munkalapot és az utolsó munkalap után helyezi el
ActiveSheet.Name = ActiveSheet.Index + 1 'ad neki nevet
Range("E1048576").End(xlup).Select 'beáll az E oszlop utolsó cellájába
Do Until ActiveCell.Value = "nts" 'ciklus amíg fel nem ér a fejlécig
If ActiveCell.Value <> "" Then ActiveCell.Value = ActiveCell.Value - 1 'kivonja az egyet
If ActiveCell.Value = 0 Then 'ha nts=0
Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, 4)).Value = "" 'a kívánt cellák tartalmának törlése
End If
ActiveCell.Offset(-1, 0).Select 'egy cellát fel
Loop
Application.ScreenUpdating = True 'képernyőftissítést engedélyez
End SubNekem így néz ki a munkalapom amit kezel:
Kiindulásnak jó aztán majd pontosítasz.
-
Maestro85
tag
Sziasztok!
Lehet, hogy már kérdeztek ilyet, de nem sikerült megtalálnom.
Szóval az lenne a gondom, hogy van két településneveket tartalmazó oszlopom, az egyikben 467 név van, a másikban 1049. Össze kéne hasonlítani az egyiket a másikkal, hogy van-e egyezés. Tehát az A2 cella tartalmát keresse meg a C oszlopban, és a B oszlopba tegyen mondjuk 1-est, ha megtalálta, és oda tegyen jelet, ahol van. Szóval ha az A2 cella értéke a C22-es cellában található, akkor a B22-höz rakja a jelet.valahogy így kéne kinéznie:
oszlop A oszlop B oszlop C
1 telep_M van-e település
2 Ada 0 Belecska
3 Adorján 0 Gyirmót
4 Alibunár 1 Ada
5 Almád 1 AdorjánRemélem nem túl érthetetlen, ahogy leírtam, és még egyszer elnézést, ha már ki volt vesézve valamikor, de az elmúlt 2 órában erre próbáltam rájönni, rákeresni és sehogy sem sikerült
Köszönöm előre is a segítséget!
szerk: szétcsúszik a gyönyörű táblázatom de talán így is látszik
[ Szerkesztve ]
-
félisten
-
Maestro85
tag
válasz Fire/SOUL/CD #10540 üzenetére
Kipróbáltam, és úgy néz ki, hogy működik!
Köszönöm szépen! -
gigi183
csendes tag
válasz m.zmrzlina #10537 üzenetére
Nahát kedves m.zmrzlina (szeretem a fagyit ) teljesen lenyűgöztél. Itthon tökéletesen működik, remélem benn is fog Köszönöm szépen!!
Abban esetleg tudsz segíteni, hogy ha van egy táblázatom, mint amit először küldtem, hogy tele van cellaösszevonásokkal, de üres cellákkal is, hogy ha átmásolom egy másik fülre, akkor egyből megoldható legyen, hogy az összevont cellák helyett ezekben egyesével jelenjen meg az összevont felirat.
Pl A2:A5-ban van egy név, de szeretném, ha nekem mind a négy cellába kiírja ugyanazt. Láttam már erre megoldást visszaolvasgatva, csak az azért nem jó nekem, mert előfordulnak eredetileg üres cellák, és azt nem szeretném a legelső felette lévő értékkel kitölteni, hanem azok jók üresen. Persze lehet, hogy ezt már kérdezték és elsiklottam felette...
-
m.zmrzlina
senior tag
válasz gigi183 #10542 üzenetére
Örülök ha működik, ha valami gond van jelezd!
A másik problémád megoldására egy ilyesmiből érdemes kiindulni:
Sub unmerge()
Application.ScreenUpdating = False
Range("B1048576").End(xlup).Select 'beáll az B oszlop utolsó cellájába
Do Until ActiveCell.Value = "Name" 'ciklus amíg fel nem ér a fejlécig
ActiveCell.unmerge 'cellák szétválasztása
Selection.FormulaR1C1 = ActiveCell.Value 'üres cellák értéke = aktívcella értéke
ActiveCell.Offset(-1, 0).Select 'egy cellát fel
Loop
Application.ScreenUpdating = True
End SubA lényeg a ciklusmagban lévő első két sor. Természetesen ha más a tartomány vagy a kilépési feltétel akkor át kell írni de a szétválasztás és a kitöltés szerintem így működhet.
Én a #10537-ben lévő táblázat B oszlopában lévő összevont cellákon teszteltem.
Majd pontosíts!
-
m.zmrzlina
senior tag
Hogyan kell változóba írni azt, hogy egy kijelölt tartomány hány sorból és hány oszlopból áll?
-
félisten
válasz m.zmrzlina #10544 üzenetére
sorok_szama = Selection.Rows.Count
oszlopok_szama = Selection.Columns.CountEgy névvel ellátot tartományból pedig így
sorok_szama = Range("tartomany_neve").Rows.Count
oszlopok_szama = Range("tartomany_neve").Columns.Count[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
m.zmrzlina
senior tag
válasz Fire/SOUL/CD #10545 üzenetére
Köszönöm!
sorok_szama = Selection.Row.Count-tal próbálkoztam
Az a fránya "s" betű...
-
m.zmrzlina
senior tag
válasz gigi183 #10542 üzenetére
A cellák szétválasztására (ha nem csak egyetlen oszlopról van szó) itt egy másik megoldás:
Sub unmerge_v2()
Dim sor As Integer, oszlop As Integer
sor = Selection.Rows.Count 'kijelölt tartomány mérete
oszlop = Selection.Columns.Count 'köszönet érte Fire-nek :-)
For j = 1 To sor
For i = 1 To oszlop
ActiveCell.unmerge 'cellák szétválasztása
Selection.FormulaR1C1 = ActiveCell.Value 'üres cellák értéke = aktívcella értéke
ActiveCell.Offset(0, 1).Select 'eggyel jobbra
Next
ActiveCell.Offset(1, -oszlop).Select 'vissza a sor elejére
Next
End SubArra figyelj, hogy amikor elindul a makró akkor legyen kijelölve a teljes tartomány amiben szétválasztandó celláid vannak.
Természetesen ez a kód is gyorsabban lefut letiltott képernyőfrissítéssel.
-
m.zmrzlina
senior tag
válasz m.zmrzlina #10547 üzenetére
Bocsánat, most látom, hogy ez a kód feltölti az üres cellákat az aktív cella értékével. (amit nem szeretnénk). Ennek kiküszöbölésére tedd be a következő sort az oszlop változó értékadás után a külső FOR ciklus elé:
Cells(Selection.Row, Selection.Column).Select
Ez ugyan megszünteti a a kijelölést de itt már nem baj mert a tartomány mérete ekkor már benne van a változóban.
-
artiny
őstag
MS Excel 2007 ben hogyan kell ezeket megcsinálni?
Ebben a táblázatban láttam őket:
http://www.mediafire.com/?xb38oom83813zkm1.) süllyesztett,domború cellát
-süllyesztett hatású pl: C7 cella
-domború hatású pl: B30-ól jobbra kettővel a MEASURE oszlop2.)legördülő lista: B41
3.)számláló gomb,az értéket tudjuk növelni,csökkenteni vele: N23
4.) Hogyan lehet letiltani a belekattintás lehetőségét egyes részeknél a táblázatba?
-
félisten
válasz artiny #10549 üzenetére
1. cellaformázás / Kitöltés és Szegély
3. Fejlesztőeszközök lap/Vezérlők csoport/Beszúrás/Űrlap-vezérlőelemek/Léptetőnyíl (ez az objektum épp nem szerepel a linkben, de a lényeg/az elv benne van). Miután beszúrtad a léptetőnyilat, jobb egér jarta/Vezérlő formázása/többi a képen
4. Zárolt cellák, lapvédelem
Nagyon leegyszerűsítve a kijelölt opció elől ki kell venni a pipátJobb egér a cellán (vagy több kijelölt cellán)/cellaformázás/védelem fül. Itt állíthatod, hogy a cellák zároltak legyenek avagy sem
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
Új hozzászólás Aktív témák
- Milyen TV-t vegyek?
- Honda topik
- No Voice in the Galaxy
- gban: Ingyen kellene, de tegnapra
- KERÉKPÁR / BRINGA / ALKATRÉSZ beárazás
- Call of Duty: Modern Warfare III (2023)
- VR topik (Oculus Rift, stb.)
- Poco X6 Pro - ötös alá
- Kerékpárosok, bringások ide!
- Szevam: Érzelmi magabiztosság/biztonság - miért megyünk sokan külföldre valójában?
- További aktív témák...