Kezdőlap › Fórumok › Excel programozás › [Resolved] repeat n times
- This topic has 3 hozzászólás, 3 résztvevő, and was last updated 6 years, 4 months telt el by szamkukac.
-
SzerzőBejegyzés
-
2018-08-01-12:42 #5007
Sziasztok,
Előre jelzem, hogy nem tanultam VBA programozást, ezért a csacska kérdés, a makróból próbálom felcsipegetni az alapvető tudásmorzsákat. Készítettem egy makrót, ami egy kijelölt terület tartalmát önmaga alá másolja folyamatosan, most még csak a makrót indító billentyű nyomkodásával (ez egy nagyobb feladat pici része csak). De én azt szeretném, hogy ne kelljen egyenként x-szer megnyomnom a Ctrl+b-t, ha tudom, hogy ezt még 149x kell megtennem. Legegyszerűbb az lenne, ha beleírhatnám rögtön a makróba a ciklusok számát, nem olyan gyakran kell ez, hogy arra is kiterjedjen, hogy bekérje a makró az ismétlesek számát a futásnál, de ha egyszerű a megoldás, akkor ne kíméljetek. Ennyi a makró:Sub pttro()
‘
‘ pttro Makró
‘
‘ Billentyűparancs: Ctrl+b
‘
ActiveCell.Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
ActiveCell.Offset(29, 0).Range(„A1”).Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=30
Application.CutCopyMode = False
Selection.Copy
ActiveCell.Offset(29, 0).Range(„A1”).Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=9
ActiveCell.Select
End Sub2018-08-01-13:36 #5008Szia!
Próbáld így:
Sub pttro_1() Dim ciklus As Integer, usor As Long, ciklusszam As Integer ciklusszam = Range("I1") For ciklus = 1 To ciklusszam usor = Cells(ActiveCell.Row, ActiveCell.Column).End(xlDown).Row Range(Cells(ActiveCell.Row, ActiveCell.Column), Cells(usor, ActiveCell.Column)).Copy _ Cells(usor + 1, ActiveCell.Column) Cells(usor + 1, ActiveCell.Column).Activate Next Application.CutCopyMode = False End Sub
Itt az I1 cella tartalmazza az ismétlések számát. Ha ebbe a cellába beírt érték 3, akkor 3-szor fut le a ciklus, vagyis az eredetivel együtt összesen 4-szer szerepelnek majd egymás alatt az adataid.
Ha csak a megadott számban szeretnéd látni az adatokat, a
ciklusszam = Range("I1")
helyett írj
ciklusszam = Range("I1")-1
-et.Üdv,
Kati2018-08-02-09:45 #5010Szia!
Vagy kérd be inputboxban.
2018-08-06-16:23 #5017Bocs, most volt időm foglalkozni vele.
Végül sokkal egyszerűbb lett. Persze újra rögzítettem a makrót, mert sokat nyomkodtam összevissza. 🙂 a végén a lenullázás csak a biztonság kedvéért van.
Köszönöm a segítséget.Sub Makró8()
‘
‘ Makró8 Makró
‘
‘ Billentyűparancs: Ctrl+n
‘
Dim ciklus As Integer, usor As Long, ciklusszam As Integer
ciklusszam = Range(„I1”)
For ciklus = 1 To ciklusszam
ActiveCell.Range(„A1:D30”).Select
Selection.Copy
ActiveCell.Offset(30, 0).Range(„A1”).Select
ActiveSheet.Paste
ActiveCell.Select
Next
ciklusszam = 0
Application.CutCopyMode = False -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.