Telefonszámunk: 1-472-0679

[Resolved] repeat n times

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

Topic Resolution: Resolved
4 bejegyzés megtekintése - 1-4 / 4
  • Szerző
    Bejegyzés
  • #5007
    szamkukac
    Felhasználó

      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
      Felhasználó

        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
        Felhasználó

          Szia!

          Vagy kérd be inputboxban.

          #5017
          szamkukac
          Felhasználó

            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.