-
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
-
3DFan
aktív tag
válasz Fire/SOUL/CD #42849 üzenetére
Rákerestem, 2019-től van benne.
-
félisten
Félreértesz, a 2016/2019/365 az egy kódbázisra épül egy kaptafa, DEEEE, nem elég, hogy a MicroSoft azzal is szivatta a jónépet, hogy az asztali 2019-t csak W10 alá lehet pakolni, még rátett egy lapáttal, ennek eredménye, hogy az az asztali 2019-ben sincs FŰZ függvény, csak a nyamvadt 365-ben...
Én W10 alatt 2019-t használok, de Én sem tudom kipróbálni Mutt kódját, mert nincs FŰZ függvény, ugyanolyan képet tudnék berakni a 2019-ről, mint Te korábban...
UI: FŰZ fx-t 2016-ban/tól kompatibilitási okok miatt az ŐSSZEFŰZ "helyettesíti"...
[ 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)
-
adDis
csendes tag
Sziasztok!
Van egy fájlom, aminek több munkalapján is vannak kimutatások. Ennek egyik fülén szeretnék beállítani egy olyan feltételes formázást, hogy ha - mondjuk- az E oszlop adott sorába beírok egy I betűt, az ne csak az érintett munkalap érintett sorának - mondjuk - ABC oszlopába tartozó celláit színezze át, hanem egy másik munkalap egy konkrét celláját (v. tartományát) is.
Ugyanazon lapon meg tudom oldani a dolgot, de sehogy nem tudom belerakni az érvényességi terület kijelölésénél a másik munkalap celláját, bárhogy próbáltam.
Megoldható vajon elegánsan a feltételes formázás érvényességének kiterjesztése egyszerre két (vagy több) munkalapra is?Segítségeteket előre is köszönöm.
[ Szerkesztve ]
-
Fferi50
őstag
Szia!
Csoportos munkalap kijelölés esetén nem lehetséges feltételes formázást létrehozni.
Az érvényességi területnél nem hivatkozhatsz másik munkalapra.
Viszont a feltételnél lehet másik munkalapra hivatkozó képletet megadni.
A feltételes formázást megcsinálod az egyik munkalapra pl. a Munka2 munkalapra:
A formázandó cellák kijelölése képlettel, a képlet pl. ez:
=Munka1!$E$2="I" - megadod a formázást és az ezen a lapon érvényes területet.
Érvénybe helyezed.
Ezután ráállsz az érvényességi terület egy cellájára. Bekapcsolod a formátum másolót (jobb egérgomb - alsó sor jobb szélén ecset (ha rámutatsz, megjelenik a neve: Formátum másoló) bal egérgomb dupla katt. Bekapcsolódik. Átváltasz arra a munkalapra, ahol ugyanazt a formázást szeretnéd látni. Kijelölöd az itteni területet és rákattintasz. Majd így tovább a többi munkalapon is.
A formátum másoló addig marad bekapcsolva, amíg ESC-t nem nyomsz.Üdv.
-
Mutt
aktív tag
Sziasztok,
Excel 2016-tól van SZÖVEGÖSSZEFŰZÉS (TEXT.JOIN), ami jobb mint a FŰZ/ÖSSZEFŰZ.
Szintén tömbfüggvény, vagyis CSE kell hozzá:=SZÖVEGÖSSZEFŰZÉS("";;KÖZÉP(A1;SOR(INDIREKT("$A1:$A"&HOSSZ(A1)));1))
Excel 2010-től pedig van Power Query is, amelyben a Text.Reverse függvény is használható.
Itt csak az a probléma, hogy a fenti függény előtt/után mindig a megfelelő típus konverziót kell elvégezni különben hibaüzenet lesz az eredmény. A lenti példában annyi trükk van, hogy bináris (IGAZ/HAMIS) értéknél a másik bináris értéket adja vissza és nem a fordított szöveget.Korábbi Excelben marad a korábban mutatott VBA UDF.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
adDis
csendes tag
válasz Fferi50 #42854 üzenetére
Szia Feri! Köszönöm a segítségedet, ez a formázás jót fog tenni a táblázataimnak, mert segíteni fogja az eligazodást, és nagyon jól néz ki tőle!
Más kérdés, hogy 1060 cellára egyenként kell megcsinálnom ezt a másik munkalapra hivatkozó feltételű formázást (mert fontos az abszolút hivatkozás megtartása mindkét munkalapomon), de ezzel számoltam is, hogy ezt valószínűleg nem fogom tudni elkerülni. Ebben a részében sajnos nem segít a formátummásolás, de a többi remekül működik, 360 már el is készült a nap folyamán! Köszi még egyszer, Üdv.[ Szerkesztve ]
-
marec1122
senior tag
Sziasztok!
A következő kérdéssel fordulnék hozzátok. Adott A,C,E oszlop amik megnevezéseket tartalmaznak pl.: kispista. Namármost B,D,F oszlopok számot tartalmaznak. Az a kérdés, hogy egy cellába adok egy feltételt mondjuk ha B,D,F oszlop bármely eleme kispista, akkor a mellette található egész számot adja hozzá a cella tartalmához. Tehát szummázzuk a feltételnek megfelelően.
Csak megfontoltan :D "Öregember nem gyorsvonat!" John McClane
-
Delila_1
Topikgazda
válasz marec1122 #42859 üzenetére
"B,D,F oszlopok számot tartalmaznak."
"ha B,D,F oszlop bármely eleme kispista"Hogy lehet a B, D, F oszlop bármelyik cellája kispista, ha ezek az oszlopok számokat tartalmaznak? Ugorj neki újra.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
marec1122
senior tag
válasz Delila_1 #42860 üzenetére
ne haragudj , kicsit zavaros lett. Szóval A,C,E tartalma megnevezések. pl. kispista. Ezekhez az oszlopokhoz tartoznak szám érték oszlopok. Ezek B,D,F oszlopok. pl A1: kispita B1:20; A2:nagyjeno B2:13... Az a kérdés hogy egy cellába pl: G1: szummázni lehet e a 3 oszlop A,C,E kispita adatához tartozó szám értéket.
Csak megfontoltan :D "Öregember nem gyorsvonat!" John McClane
-
Andris246
tag
Sziasztok
A kérdésem az lenne hogy a bemásolt kódban hogyan tudom a SOR helyének a számát 1 cellában kezelni.
Vagyis ha a cellába 10-et írok akkor a 10-es cellában lévő adatott adja meg a függvény cellájában.=CSERE('H:\szamlalo\[BSA.xlsx]DB1400'!$D$23;1;2;"")
A $23 helyébe hogy írjam azt a cellát ami a számot tartalmazza.
Bocsánat ha nem teljesen érthető
Válaszokat köszönöm
[ Szerkesztve ]
-
Fferi50
őstag
válasz Andris246 #42866 üzenetére
Szia!
Ez egy képlet lenne, amiben a cella hivatkozást szeretnéd kicserélni?
Akkor a CSERE függvény nem igazán jó. A HELYETTE függvényt kell használnod:=HELYETTE("'H:\szamlalo\[BSA.xlsx]DB1400'!$D$23";"23";"10'")
Ha mégsem ezt szeretnéd, akkor mutasd meg lsz. példával.
Üdv. -
ace05
senior tag
Van oszlop diagramom. PL legyen egy dolgozat osztályozásról szó. Függőleges tengely az pontszámé, a vízszintes pedig a diákoké. Lenne egy harmadik érték sorom is ami az, hogy hanyast értek el a diákok. De ezt nem akarom, hogy megjelölje a diában. Itt azt szeretném, hogy írja a jegyet a vízszintes tengelynél a diákok neve alá. Ezt meg lehet automatán csinálni, vagy szöveg dobozzal kell harcolnom ?
-
félisten
-
Fferi50
őstag
Szia!
1. Vedd fel az osztályzatokat is egy adatsornak. Az adatfeliratokat add hozzá, helye alapnál belül. A kitöltést és a vonalat állítsd nincs-re.
Így a jegyek a diákok neve fölé kerül kb.
2. Az osztályzatokat tedd a vízszintes tengelyt képező nevek mellé/alá - attól függ, milyen irányú. Ezután a tengely feliratait a két sor/oszlop szerint jelöld ki.Üdv.
-
Andris246
tag
válasz Fire/SOUL/CD #42870 üzenetére
-
félisten
válasz Andris246 #42872 üzenetére
Ha Copy/Paste-el másoltad át a képletem és csak annyit módosítottál, hogy A1-ről E1-re, akkor lehet, hogy csak annyi a gond, hogy az E1 cella üres vagy 0, hisz előbbi esetben $D$ (ez is hibás hivatkozás), utóbbi esetben meg $D$0 lenne (ez is hibás, hisz a sorszámozás 1-ről indul, nincs 0-ás sor). Szóval E1-be 1 vagy nagyobb szám kerüljön...
[ 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)
-
Sesy
aktív tag
sziasztok
a következőt szeretném megoldani:
"munka2" lapon az A oszlopban a 2. sortól lefelé vannak egymás alatt számok pl: 36,36,37,38,36,36,37,38.... (bármennyi, különböző egész szám lehet)kezdetben csak "munka1" és "munka2" lap létezik
a makró megvizsgálja a "munka2" lap A2 celláját és ha nincsen a cellában szereplő nevű munkalap akkor létrehozza azt, és a B2 cellájába bemásolja a "munka2" lap A2-es cellájának a tartalmát.
ezután megvizsgálja a "munka2" lap A3 celláját és ha van olyan nevű munkalap már, akkor a B oszlop következő sorába bemásolja a tartalmát, ha nincsen a cellában szereplő nevű munkalap akkor létrehozza azt, és a B2 cellájába bemásolja a "munka2" lap A3-as
cellájának a tartalmát...
Ezt addig csinálja, amíg a "munka2" lap A oszlopában vannak számokAz már hab lenne a tortán, ha menet közben, vagy a végén a munkalapok a nevük szerin növekvő sorrendbe kerülnének....
egy oszlopban lévő különböző számokat már szét tudok dobálni az értéküknek megfelelő, már meglévő, előre elkészített munkalapra, de a fenti műveletet nem sikerül megoldanom.
a lényeg ugye az lenne, hogy nem tudom előre, hogy hány db különböző és összesen hány db számot kellene szétválogatnom...A végén az elkészült új munkalapokat, csak az újakat, az eredetileg meglévő "munka1" és "munka2" nevűt nem, majd szeretném egy sablon szerint formázni, mindet egyformára, ezt megtudom tenni egyszerre, vagy csak egyesével külön-külön?
még csak most ismerkedem a makró készítéssel és ez most kifogott rajtam...
előre is köszönöm a segítséget
[ Szerkesztve ]
Born stupid... Try again!
-
Fferi50
őstag
Szia!
Már megint kérdésem van:
Ha számok vannak a munka2 lap A oszlopában, akkor honnan tudjuk, hogy mi a neve a keresendő munkalapnak? Mert csak számokat nem szerencsés munkalapnévnek adni.
A formázáshoz:
Egy munkalapot megformázol. Utána a formátum másolóval annyi munkalapra másolod, amennyire akarod. (Formátum másoló bekapcsolása kijelölöd a másolandó részt. Jobb egérgomb - a jobb oldalon levő ecsetre duplakatt. Addig marad bekapcsolva, amíg ESC-t nem nyomsz neki.)
De a megformázott munkalapot sablonként is elmentheted és nyithatsz utána ugyanolyan munkalapokat.
ÜDv. -
Sesy
aktív tag
válasz Fferi50 #42876 üzenetére
Azért írtam számot, mert az adatbázisom első oszlopa egy számsor lesz és ennek az első két karaktere fogja meghatározni, hogy az adott adatot melyik munkalapra kell majd kimásolni egy munkalapról, ahová ömlesztve jönnek be az adatok
33 - Falazás
39 - Szárazépítés
stb...A formázást is makróval szeretném megoldani, ha van rá lehetőség...
Úgy képzelem, hogy egy munkalapra be olvasom az összes adatot, majd az első oszlopban lévő kód szerint , újonnan létrehozott munkalapokra szétválogatom az adatokat, majd a végén az adott sablon szerint formázom az elkészült munkalapokat...
A kiindulási munkalapon 9 oszlop lesz és több száz sor. A végére az adatok olyan 20-25 munkalapra válogatódnának szét.
Most azt már meg tudom csinálni, hogy ha előre elkészítem a munkalapokat akkor a megfelelő kódszámút a megfelelő lapra másolja... de így előre manuálisan definiálnom kell 99 munkalapot, amiből lehet, hogy csak 20-at fogok használni... ez így nem túl elegáns
Born stupid... Try again!
-
Andris246
tag
válasz Fire/SOUL/CD #42874 üzenetére
Igen írtam be számot nem hagytam üresen. 😉
Majd holnap este megnézem ismét melóban.
Lehet már műszak vége volt és benéztem vmit.Holnap este majd jelzek mire jutottam.
Köszi -
Fferi50
őstag
Szia!
A "kulcsok" megfeleltetését egy táblázatba érdemes foglalni. Szerintem érdemes a formázást egy munkalapon manuálisan megcsinálni, utána pedig ezt lehet másolni.
Nálam a kódtábla ugyanazon a lapon van, ahol az adatok, és az alábbi makrót erről az aktív munkalapról kell indítani:Sub osztas()
Dim sh As Worksheet, wb As Workbook, cl As Range, tabla As Range, klcs As String, mlapnev As String, sh1 As Worksheet
Set sh = ActiveSheet
Set tabla = Range("X1:Y100") 'itt van a kulcstábla
On Error Resume Next
For Each cl In sh.UsedRange.Columns(1).Offset(1, 0).Cells 'az első oszlopon a 2. cellától megy végig
If cl.Value = "" Then Exit For 'üres cella esetén kilép a ciklusból
klcs = Left(cl.Value, 2) ' az első két karakter a kulcs
mlapnev = tabla.Find(what:=klcs, LookIn:=xlValues, lookat:=xlWhole).Offset(0, 1).Value
If Err = 0 Then ' ha megtaláltuk az értéket a kulcstáblában, akkor
Set sh1 = Sheets(mlapnev)
If Err = 9 Then ' ha még nincs ilyen nevű munkalap
Sheets("Sablon").Copy after:=Sheets(Sheets.Count) ' a Sablon nevű munkalapot másoljuk
Set sh1 = Sheets(Sheets.Count) ' és átnevezzük
sh1.Name = mlapnev
Err = 0
End If
sh1.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = cl.Value 'a B oszlop első üres cellájába másoljuk a cella értékét
Else ' figyelmeztetés, hogy olyan kulcs van, amihez még nincs érték
MsgBox "Ehhez a kulcshoz nincs név: " & klcs, vbInformation
Err = 0 ' ezt az értéket figyelmen kívül hagyja és megy tovább
End If
Next
On Error GoTo 0
sh.Activate
MsgBox "kész vagyok", vbExclamation
End Sub
A már meglevő munkalapokon az adatok nem íródnak felül, tehát ismételt feldolgozás esetén duplázódnak.
Ha kérdésed van, írj bátran.
Üdv. -
Delila_1
Topikgazda
Fferi gyorsabb volt, de azért én is beteszem a saját makrómat.
Sub Szetvalogatas()
Dim sor As Long, lapnev As String, usor As Long, a
usor = Range("A" & Rows.Count).End(xlUp).Row
For sor = 2 To usor
lapnev = Right(Cells(sor, 1), Len(Cells(sor, 1)) - 3)
On Error Resume Next
Set a = Sheets(lapnev)
If Err.Number > 0 Then
Sheets.Add.Name = lapnev
Sheets(lapnev).Move After:=Sheets.Count
End If
Sheets(lapnev).Cells(sor, 2) = Sheets("Munka2").Cells(sor, 2)
Sheets("Munka2").Select
Next
Sheets("Munka2").Move After:=Sheets(1)
MsgBox "Kész a szétválogatás", vbInformation
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.
-
Delila_1
Topikgazda
Együttesen kijelölt lapokat lehet egyszerre formázni. Az első lapon állsz, majd a Shift gombot lenyomva tartva kijelölöd az utolsó formázni kívánt lapot.
A formázás elvégzése után feltétlen szüntesd meg az együttes kijelölést!Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
sosperec18
csendes tag
Kedves Fórumtársak!
Abban kérném a segítségeteket, miszerint van egy közel 1000 sorból álló oszlop, melyben különböző nevek szerepelnek, több név többször is szerepel.
Hogy lehetséges egy olyan "kimutatást" készíteni, hogy az egyes nevek mennyiszer szerepelnek az oszlopban. (Tehát nem egyessével, hanem összesítve, hogy xy 10x; zx 5x és így tovább...
Előre is köszönöm segítő válaszaitokat! -
Delila_1
Topikgazda
válasz sosperec18 #42883 üzenetére
Legyen fejléce a táblázatodnak.
Állsz a táblázatban, Beszúrás | Kimutatás. Megadod a helyét vagy új lapon, ahogy felajánlja, vagy az aktuális lapon kijelölsz egy cellát, ahol kezdődjön.
Kapsz egy párbeszéd ablakot, ahol fent látszanak a táblázat címsorai. A Sorok, és az Értékek mezőbe is behúzod a neveket tartalmazó oszlop címét. Ennyi.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
Abból indultam ki, hogy az A oszlopban
33 - Falazás
39 - Szárazépítés
nevek szerepelnek, ahogy írtad. Ennek megfelelően a beszúrt lapok neve Falazás, Szárazépítés, stb. lesz. Ennél nem kell külön segédtáblát felvenni a számokhoz tartozó nevekhez.[ 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.
-
visit
tag
Üdv!
Egy mappában van kb. 200 db xlsm fájlom. Mindegyikből törölni kellene egy - ugyanazt - munkalapot, és helyette beszúrni egy másikat. Mindegyikbe ugyanazt a munkalapot.
Lehet ezt valahogy automatizálni?
Köszönöm, ha válaszoltok! -
Fferi50
őstag
Szia!
Makróval szép sorban megnyitod mindegyiket, törlöd a munkalapot, majd beszúrod az újat. Ha ugyanoda kell beszúrni, akkor megjegyzed a törölt munkalap helyét és annak a helyére szúrod be - vagy először beszúrod elé az újat és utána törlöd a régit. Ezután mented és bezárod a fájt és nyitod a következőt.
Makrórögzítővel megcsinálsz egy ilyen műveletet, majd ciklussal végrehajtod a fájlokra.
A fájlneveket beteheted pl. egy munkalapra és az alapján mész végig, vagy használhatod a Dir() parancsot a fájlok megtalálására.
Üdv. -
félisten
Akkor még egy megoldás, csak a változatosság kedvéért...
Alaphelyzet
Makró futtatása után (Start Macro gomb)
1. új munkalap | 2. új munkalap | 3. új munkalap
Létrehozott munkalapok törlése után (Delete Created Sheets gomb)Macro forráskód
Option Explicit
'Globális deklarációk
Dim MySrcRange, MyTempRange, MyCell As Range
Dim MySheetNamesArray() As String
Dim MySheetNamesIndexArray() As Long
Dim MyArrayIndex, MyDestOffset As Long
Dim MySrcSheetName, MySrcCodesColumn, MySrcCodesRow, MyDestCodesColumn, MyDestCodesRow As String
Private Sub CommandButton1_Click()
'Képernyő frissítés KI
Application.ScreenUpdating = False
'Forrás munkalap és cella beállítása
MySrcSheetName = "Munka2"
MySrcCodesColumn = "A"
MySrcCodesRow = "2"
'Cél cella beállítása
MyDestCodesColumn = "B"
MyDestCodesRow = "2"
'Forrás munkalap kiválasztása
ThisWorkbook.Worksheets(MySrcSheetName).Select
'Tartomány létrehozása a forrás adatok alapján
Set MySrcRange = Range(MySrcCodesColumn & MySrcCodesRow & ":" & MySrcCodesColumn & Cells(Cells.Rows.Count, MySrcCodesColumn).End(xlUp).Row)
'Dinamikus tömbők átméretezése a tartományban található cellák száma alapján (üreseket is beleértve)
ReDim MySheetNamesArray(0 To MySrcRange.Count - 1)
ReDim MySheetNamesIndexArray(0 To MySrcRange.Count - 1)
MyArrayIndex = 0
'Végignézzük a forrástartomány használt celláit
For Each MyCell In MySrcRange
'Ha üres, akkor kihagyjuk
If Not IsEmpty(MyCell) Then
'Aktuális munkalap létezik?
If Not SheetExists(MyCell.Text) Then
'Nem létezik, létrehozzuk és beírjuk a forráscella értékét
ActiveWorkbook.Sheets.Add After:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count)
ActiveSheet.Name = MyCell.Text
Sheets(ActiveSheet.Name).Range(Cell1:=MyDestCodesColumn & MyDestCodesRow) = MyCell.Text
'Létrehozott munkalap nevét beírjuk a tömb megfelelő pozíciójába és megnöveljük a tömb indexét
MySheetNamesArray(MyArrayIndex) = MyCell.Text
MySheetNamesIndexArray(MyArrayIndex) = MySheetNamesIndexArray(MyArrayIndex) + 1
MyArrayIndex = MyArrayIndex + 1
Else
'Létezik, meghatározzuk a célcella eltolási értékét és beírjuk a forráscella értékét
MyDestOffset = GetDestRangeOffsetAsSheetName(MyCell.Text)
Sheets(MyCell.Text).Range(Cell1:=MyDestCodesColumn & (MyDestCodesRow + MySheetNamesIndexArray(MyDestOffset))) = MyCell.Text
'Eltolási értéket megnöveljöük az eltolási értékeket tartalmazó tömbben
MySheetNamesIndexArray(MyDestOffset) = MySheetNamesIndexArray(MyDestOffset) + 1
End If
End If
Next MyCell
'Forrás munkalap kiválasztása
ThisWorkbook.Worksheets(MySrcSheetName).Select
'Képernyő frissítés BE
Application.ScreenUpdating = True
'Start Macro gomb tiltása, Delete Created Sheets parancsgomb engedélyezése
CommandButton1.Enabled = False
CommandButton2.Enabled = True
End Sub
'Az adott munkalap létezik vagy nem
Public Function SheetExists(SheetName As String) As Boolean
Dim MyWorkSheet As Worksheet
Dim Result As Boolean
Result = False
For Each MyWorkSheet In ThisWorkbook.Sheets
If UCase(MyWorkSheet.Name) = UCase(SheetName) Then
Result = True
Exit For
End If
Next MyWorkSheet
SheetExists = Result
End Function
'A léterhozott munkalapon a cél cellák eltolási értékei
Public Function GetDestRangeOffsetAsSheetName(CurrentSheetName As String) As Long
Dim i As Long
For i = 0 To MySrcRange.Count - 1
If MySheetNamesArray(i) = CurrentSheetName Then
GetDestRangeOffsetAsSheetName = i
Exit For
End If
Next i
End Function
'A létrehozottt munkalapok törlése
Private Sub CommandButton2_Click()
Dim i As Long
'A megerősítő ablak(ok) megjelenésének tiltása
Application.DisplayAlerts = False
'Létrehozott munkalapok törlése
For i = 0 To MyArrayIndex - 1
If SheetExists(MySheetNamesArray(i)) Then Sheets(MySheetNamesArray(i)).Delete
Next i
'Forrás munkalap kiválasztása
ThisWorkbook.Worksheets(MySrcSheetName).Select
'A megerősítő ablak(ok) megjelenésének engedélyezése
Application.DisplayAlerts = True
'Start Macro gomb engedélyezése, Delete Created Sheets parancsgomb tiltása
CommandButton1.Enabled = True
CommandButton2.Enabled = False
End Sub[ 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)
-
Delila_1
Topikgazda
"ezután megvizsgálja a "munka2" lap A3 celláját és ha van olyan nevű munkalap már, akkor a B oszlop következő sorába bemásolja a tartalmát, ha nincsen a cellában szereplő nevű munkalap akkor létrehozza azt, és a B2 cellájába bemásolja a "munka2" lap A3-as
cellájának a tartalmát..."
Ebből nekem úgy tűnt, hogy az eredeti adat sorába kell másolni a B oszlop tartalmát.
Beteszek egy képet, kiemelve a módosításokat.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
Úgy látom, állandó változásban van szegény makró. A másolás sorai
ide = Sheets(lapnev).Range("B" & Rows.Count).End(xlUp).Row + 1
Sheets("Munka2").Range("A" & sor & ":F" & sor).Copy Sheets(lapnev).Range("B" & ide)
Sheets("Munka2").SelectMár csak azt kell megmondanod, hogy az A: F tartományt a másik lap A-ba, vagy B-be tegye. Ha A-ba, akkor
Sheets("Munka2").Range("A" & sor & ":F" & sor).Copy Sheets(lapnev).Range("A" & ide)
kell neked.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Sesy
aktív tag
válasz Delila_1 #42895 üzenetére
köszönöm, megnézem!
most tanulom a makró készítést, van egy tervem amit szeretnék megcsinálni
lépésről lépésre haladok, de mivel még hiányosak az ismereteim nem megy minden egyszerrevalószínűleg amit tegnap kiszenvedtem, egy hosszú kódban azt tized annyiból kihoznátok, de akkor nem érteném meg a működését... akár annak sem amit kapok tőletek!
azt sem szeretném, ha mindent ti oldanátok meg, mert akkor nincsen sikerélmény és nem ér semmit az egész...
pedig úgy látom ez nektek sokkal egyszerűbb lenne...
de meg akarom tanulni a dolgot, mert egyébként roppantul élvezemBorn stupid... Try again!
-
Sesy
aktív tag
válasz Delila_1 #42897 üzenetére
a kódodat értem, a te gondolkodásmódod közelebb áll az enyémhez, mint mint Fferi50-é
de ez benne a csodálatos, hogy kétféle megközelítéssel jutottatok ugyan arra az eredményre...
én meg ebből tanulok a legtöbbet
köszönöm mind kettőtöknek
ezek után még megnézem Fire/SOUL/CD javaslatát is és tényleg profi leszekfejlesztem a kódomat és a tudásomat, de jövök még szerintem biztosan
Born stupid... Try again!
Új hozzászólás Aktív témák
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- AKCIÓ! - STEAM kulcsok /Anuchard, Aragami, Children of Morta, stb. - 2024.04.17.
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!