-
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
-
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
- Elemlámpa, zseblámpa
- Luck Dragon: Asszociációs játék. :)
- Semmibe veszi a KRESZ-t a Tesla Mad Max módja
- Eredeti játékok OFF topik
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Futás, futópályák
- Kínai és egyéb olcsó órák topikja
- Nintendo Switch 2
- Milyen Android TV boxot vegyek?
- MSI afterburner
- További aktív témák...
- Apple iPhone X Space Gray Ikonikus dizájn, Face ID, OLED kijelző 64 GB Használt, megkímélt ,100%
- Motorola Edge 40 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Corsair K70 RGB TKL // EU // Számla + Garancia //
- Dell Latitude 9410 // i7 10. gen. // 16/356GB // Számla + Garancia //
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest