Avatar billede hd01 Nybegynder
13. maj 2003 - 15:13 Der er 24 kommentarer og
1 løsning

gentage kopiering via makro

Er der nogen der kan hjælpe med en makro ?

Den skal tage en kopi af f.eks. 6Rx7C i ark 1, som så skal indsættes i et andet ark. (Den del kan jeg godt finde ud af)

Når denne kopi er foretage skal man kunne trykke på kanppen igen så der dannes endnu en kopi magen til den tidligere. Denne kopi skal placeres ligeunder den tidligere kopi. osv osv. Det vil sige hvis man kører makroen 10 gange så vil der være 10 ens kopiere under hindanden.

på forhånd tak
Avatar billede janvogt Praktikant
13. maj 2003 - 15:28 #1
Hvordan ser din kode ud?
Avatar billede hd01 Nybegynder
13. maj 2003 - 15:51 #2
Det er nedenstående makro jeg skal have til at blive gentaget under den indsættelse der sker.

Sub Button6_Click()
'
' Button6_Click Macro
' Macro recorded 13-05-2003 by Tim
'

'
    Range("A1:G6").Select
    Selection.Copy
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("A7").Select
    Application.CutCopyMode = False
End Sub
Avatar billede janvogt Praktikant
13. maj 2003 - 16:09 #3
Prøv

Sub Button6_Click()
'
' Button6_Click Macro
' Macro recorded 13-05-2003 by Tim
'
   
    Range("A1:G6").Select
    Selection.Copy
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveCell.End(xlDown).Offset(1, 0).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub
Avatar billede janvogt Praktikant
13. maj 2003 - 16:10 #4
Den finder den første ledige celle på ark 2 og indsætter området der.
Avatar billede hd01 Nybegynder
13. maj 2003 - 16:16 #5
Det er næsten perfekt.

Hvad jeg gerne vil have lavet om er følgende:

Kan man få makroen til at finde første ledige celle efter række 10 på ark 2
Avatar billede janvogt Praktikant
13. maj 2003 - 16:20 #6
Ja så skal du bare ændre linien
Range("A1").Select til
Range("A10").Select
Avatar billede hd01 Nybegynder
13. maj 2003 - 16:27 #7
Hvis jeg blot laver denne ene ændring får jeg en fejlmelding frem - skal der laves andre ændringer ??
Avatar billede janvogt Praktikant
13. maj 2003 - 17:04 #8
Næ, det virker fint her.
Knappen skal dog ligge på ark 1.
Avatar billede janvogt Praktikant
13. maj 2003 - 17:09 #9
Prøv evt. at lave en alm. makro altså:

Sub CopyBlock()
'
' Button6_Click Macro
' Macro recorded 13-05-2003 by Tim
'
   
    Range("A1:G6").Select
    Selection.Copy
    Sheets("Sheet2").Select
    Range("A10").Select
    ActiveCell.End(xlDown).Offset(1, 0).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub

som du så kobler på en knap.
Avatar billede hd01 Nybegynder
13. maj 2003 - 18:16 #10
Beklager man jeg modtager stadig en fjelmelding - det kan godt være pga min kompetance indenfor makro. Men jeg modtager følgende fejlmelding: "Run-time error 1004"
Avatar billede hd01 Nybegynder
13. maj 2003 - 18:37 #11
Jeg har været ved at lege lidt, og fundet frem til følgende. Hvis rækkerne 1 til 11 på ark 2 er blanke, Så virker makroen ikke. Dog står der noget i disse felter er der ingen problemer. Kan det ikke laves således at række 1 til 11 kan være blanke, således det kopierede bliver indsat fra række 10 ??
Avatar billede janvogt Praktikant
14. maj 2003 - 12:58 #12
Jo sagtens, prøv:

Sub CopyBlock()
    Range("A1:G6").Select
    Selection.Copy
    Sheets("Sheet2").Select
    If Range("a11").Value = "" Then
        Range("A10").Select
        ActiveSheet.Paste
    Else
        Range("A10").Select
        ActiveCell.End(xlDown).Offset(1, 0).Select
        ActiveSheet.Paste
    End If
    Application.CutCopyMode = False
End Sub
Avatar billede janvogt Praktikant
14. maj 2003 - 13:06 #13
Hov, der var en fejl, hvis kun A10 er udfyldt.
Prøv i stedet:

Sub CopyBlock()
    Range("A1:G6").Select
    Selection.Copy
    Sheets("Sheet2").Select
    If Range("a10").Value <> "" And Range("a11").Value = "" Then
        Range("A11").Select
        ActiveSheet.Paste
    Else
        If Range("a11").Value = "" Then
            Range("A10").Select
            ActiveSheet.Paste
        Else
            Range("A10").Select
            ActiveCell.End(xlDown).Offset(1, 0).Select
            ActiveSheet.Paste
        End If
    End If
    Application.CutCopyMode = False
End Sub
Avatar billede hd01 Nybegynder
14. maj 2003 - 13:43 #14
Det virker bare perfekt - du har fotjent dine 30 point.
Avatar billede hd01 Nybegynder
14. maj 2003 - 13:46 #15
Jeg ligger lige et tillægsspørgsmål ud.

Kan man have et felt hvori der kan påføres et tal. Det tal skal så styrre hvor mange kopier den skal lave.
Avatar billede bak Forsker
14. maj 2003 - 14:11 #16
Hvis du taster antallet af kopier ind i Sheet1 celle K1

Sub StyrKopier
Dim i as long
for i = 1 to Sheets("Sheet1").Range("K1").Value
    Call CopyBlock
next
End Sub
Avatar billede hd01 Nybegynder
14. maj 2003 - 14:21 #17
Nu kan det godt være at jeg spørger lidt dumt, men hvordan får jeg BAK's makro ind, så den virker i janvogt's makro
Avatar billede bak Forsker
14. maj 2003 - 14:29 #18
bare lig den ind samme sted som jan's makro
Avatar billede hd01 Nybegynder
14. maj 2003 - 14:39 #19
Hvis jeg kopiere den ind som nedenstående og sætter tallet 6 ind i celle k1 - får jeg desværre ikke 6 kopier som ønsket.

Sub CopyBlock()
    Range("A1:G6").Select
    Selection.Copy
    Sheets("Sheet2").Select
    If Range("a10").Value <> "" And Range("a11").Value = "" Then
        Range("A11").Select
        ActiveSheet.Paste
    Else
        If Range("a11").Value = "" Then
            Range("A10").Select
            ActiveSheet.Paste
        Else
            Range("A10").Select
            ActiveCell.End(xlDown).Offset(1, 0).Select
            ActiveSheet.Paste
        End If
    End If
    Application.CutCopyMode = False
End Sub
Sub StyrKopier()
Dim i As Long
For i = 1 To Sheets("Sheet1").Range("K1").Value
    Call CopyBlock
Next
End Sub

Hvad gør jeg galt
Avatar billede bak Forsker
14. maj 2003 - 15:43 #20
Jeg har lige modificeret den første lidt. Jeg får 6 kopier nu, når jeg starter makroen StyrKopier

Sub CopyBlock()
    Sheets("sheet1").Range("A1:G6").Copy
    Sheets("Sheet2").Select
    If Range("a10").Value <> "" And Range("a11").Value = "" Then
        Range("A11").Select
        ActiveSheet.Paste
    Else
        If Range("a11").Value = "" Then
            Range("A10").Select
            ActiveSheet.Paste
        Else
            Range("A10").Select
            ActiveCell.End(xlDown).Offset(1, 0).Select
            ActiveSheet.Paste
        End If
    End If
    Application.CutCopyMode = False
End Sub

Sub StyrKopier()
Dim i As Long
For i = 1 To Sheets("Sheet1").Range("K1").Value
    Call CopyBlock
Next
End Sub
Avatar billede hd01 Nybegynder
14. maj 2003 - 15:58 #21
Hej bak - Det virker, mange tak for hjælpen.

Nu er jeg rimmelig ny på denne side. Kan jeg give dig point efter, at jeg har givet de point der oprindelig var på spørgsmålet. Skal jeg oprette et nyt spørgsmål - for at kunne belønne dig.
Avatar billede janvogt Praktikant
14. maj 2003 - 15:58 #22
Det er, som bak skriver, makroen StyrKopier, som skal kobles på din knap.
Avatar billede bak Forsker
14. maj 2003 - 16:01 #23
Nej, det er ikke nødvendig med points her :-)
Avatar billede hd01 Nybegynder
14. maj 2003 - 16:04 #24
Jeg takker for hjælpen :-)

Jeg vender sikkert snart tilbage med nye spørgsmål.
Avatar billede janvogt Praktikant
14. maj 2003 - 16:05 #25
Vi skal nok være der :-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester