Hirdetés
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- gban: Ingyen kellene, de tegnapra
- GoodSpeed: Márkaváltás sok-sok év után
- D@reeo: Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
- Mr Dini: Mindent a StreamSharkról!
- GoodSpeed: A RAM-válság és annak lehetséges hatásai
-
LOGOUT
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
-
Delila_1
veterán
válasz
torment
#20297
üzenetére
Írd be a Munka2 lapra a 3 soros címet (ha még nem tetted meg), a makró elvégzi a többit.
Sub Valami()
Dim sor1 As Long, sor2 As Long, oszlop As Long
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Sheets("Munka1")
Set WS2 = Sheets("Munka2")
WS1.Activate
sor1 = 2: sor2 = 4
Do While Cells(sor1, 1) > ""
For oszlop = 1 To 5
WS2.Cells(sor2, oszlop) = Cells(sor1, oszlop)
Next
For oszlop = 6 To 9
WS2.Cells(sor2 + 1, oszlop - 4) = Cells(sor1, oszlop)
Next
For oszlop = 10 To 13
WS2.Cells(sor2 + 2, oszlop - 8) = Cells(sor1, oszlop)
Next
sor1 = sor1 + 1: sor2 = sor2 + 3
Loop
End Sub -
Delila_1
veterán
válasz
torment
#12203
üzenetére
A lapnév mindig szöveg formátumú, még ha "szemre" dátumot mutat is.
Szúrj be egy lapot Lista névvel, ide listázza majd ki a lapok makró a dátumos lapneveket.
Sub lapok()
Dim lap%, lapnév As String, usor%
For lap% = 1 To ThisWorkbook.Sheets.Count
lapnév = Sheets(lap%).Name
If Len(lapnév) = 10 And Mid(lapnév, 5, 1) = "." And Mid(lapnév, 8, 1) = "." Then
usor% = Sheets("Lista").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Lista").Range("A" & usor%) = lapnév
End If
Next
End SubA makróban feltételeztem, hogy a lapnevek 2011.12.01 formátumúak. A feltételt tartalmazó sort lehetne bővíteni, pontosítani. Itt csak a lapnév hosszát, és a két pont helyét ellenőriztettem.
-
Delila_1
veterán
válasz
torment
#12026
üzenetére
Perfag makrójába írtam be a
lap = "gép" & Range("X15") & "_heti" sort, és a másolásnál a lap helyét ennek megfelelően módosítottam.Sub Másol()
Sheets("Lemez_Spc").Select
Dim lap As String, sor As Integer, oszlop As Integer
lap = "gép" & Range("X15") & "_heti"
sor = Range("Y21")
oszlop = Range("Y6")
Range("B35:F42").Copy Sheets(lap).Range("B3").Offset((sor - 1) * 8, (oszlop - 1) * 5)
End Sub -
perfag
aktív tag
válasz
torment
#12016
üzenetére
Látom mire hazaértem megoldódott a dolog. Annyi baj legyen, ha már belekezdtem itt a kód:
Sub Másol()
Worksheets("Lemez_Spc").Select
sorok = Range("Y21")
oszlopok = Range("Y6")
Range("B35:F42").Copy Worksheets("Heti_adatbázis").Range("B3").Offset((sorok - 1) * 8, (oszlopok - 1) * 5)
End Sub -
Delila_1
veterán
válasz
torment
#12014
üzenetére
Nem offset-tel oldottam meg, hanem a több elágazású select case-zel.
A Select Case sorban meg kell adni a figyelendő változót, a Case1, Case2, ....Case7 sorokban pedig azt, hogy melyik érték esetén mit csináljon a program.
Sub Másol()
Dim sor%, oszlop%
Sheets("Lemez_Spc").Select
sor% = Range("Y21"): oszlop% = Range("Y6")
Select Case sor%
Case 1
sor% = 3
Case 2
sor% = 11
Case 3
sor% = 19
End Select
Select Case oszlop%
Case 1
oszlop% = 2
Case 2
oszlop% = 7
Case 3
oszlop% = 12
Case 4
oszlop% = 17
Case 5
oszlop% = 22
Case 6
oszlop% = 27
Case 7
oszlop% = 32
End Select
Range("B35:F42").Copy Sheets("Heti_adatbázis").Cells(sor%, oszlop%)
End SubSzerk:
A #12012-es hozzászólásban úgy látszik, mintha 2 sorban lenne megadva a honnan - hova másol, pedig 1 sorba kell írni, közötte szóközzel. Programkódként kellett volna megadnom. -
perfag
aktív tag
válasz
torment
#12013
üzenetére
Újabb kérdés: látni vélek egy rendezettséget, amit ofszet segítségével ki lehetne használni.
B3 az alap cella, ehhez képest a napok 5 oszloppal tolják el a cél tartományt, a műszakok pedig 8 sorral. Jól látom?
Most még dolgozom (? ha a tanítást annak lehet mondani), dél körül végzek, ha addig DelDelila nem oldja meg, küldöm a kódot. -
Delila_1
veterán
válasz
torment
#12009
üzenetére
Addig is, míg Perfag kérdéseire válaszolsz, a másolás egyszerűbb módja
sheets("Lemez_SPC").range("B35:F42").copy sheets("Heti_adatbázis").range("B3")
elegendő.
Ahhoz, hogy ne legyen mindenféle vigyori fej a képletben, ki kell jelölnöd, és a "Konvertálatlan" üzemmódot kell alkalmaznod. -
perfag
aktív tag
válasz
torment
#12009
üzenetére
Az a helyzet, hogy én nem értem (ez persze nem meglepő, ennyi IQ-cskával amennyi nekem van
.
"a hét napjai, naponta három műszak" az a "3x7 feltétel" azt hiszem. Na de hol adod meg ezeket az adatokat? És milyen formában?
"21 helyre kell adatot másolni." - kell, vagy lehet? 21-szer másolod ugyanazt az adatot valahova, vagy egyszer a 21 lehetséges hely valamelyikére? Ez a 21 hely 21 munkalap, vagy egy munkalap 21 különböző lehetséges tartománya? A felépítésről el kellene mondanod egy s mást.
Új hozzászólás Aktív témák
- Launch trailert kapott a Honkai: Star Rail
- Olcsó vs. drága egér: melyiknél érzed meg igazán a különbséget?
- Temu
- Steam topic
- Gumi és felni topik
- Fejhallgatós találkozó
- Fejhallgató erősítő és DAC topik
- Assetto Corsa Rally
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- KAÜ/Ügyfélkapu – már elérhető a kétfaktoros hitelesítés
- További aktív témák...
- Gamer PC-Számítógép! Csere-Beszámítás! I7 6700 / Rog RX580 8GB / 32GB DDR4 / 500GB SSD
- HIBÁTLAN iPhone 15 Pro 128GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3870, 100% Akksi
- Telefon felvásárlás!! Honor Magic6 Lite, Honor Magic6 Pro, Honor Magic7 Lite, Honor Magic7 Pro
- GYÖNYÖRŰ iPhone 15 Pro Max 512GB Blue Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4089, 100% Akksi
- HP EliteBook 840 G7 i5-10210U 16GB 256GB FHD 400nit 1 év garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest


Fferi50
