Telefonszámunk: 1-472-0679

[Resolved] repeat n times

Kezdőlap Fórumok Excel programozás [Resolved] repeat n times

Topic Resolution: Resolved

Ennek a témakörnek tartalma 3 hozzászólás, 3 résztvevő. Utolsó frissítés:  szamkukac 3 hónapja, 2 hete telt el a bejegyzés óta.

4 bejegyzés megtekintése - 1-4 / 4
  • Szerző
    Bejegyzés
  • #5007

    szamkukac
    Résztvevő

    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 Sub

    #5008

    delila
    Résztvevő

    Szia!

    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,
    Kati

    #5010

    Titok
    Résztvevő

    Szia!

    Vagy kérd be inputboxban.

    #5017

    szamkukac
    Résztvevő

    Bocs, 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

4 bejegyzés megtekintése - 1-4 / 4

Be kell jelentkezni a hozzászóláshoz.