Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketKopiere rækker i nyt ark

 Besvar Besvar
Forfatter
anthonsen Se dropdown
Forum Begynder
Forum Begynder


Medlem: 21.Jun.2016
Status: Offline
Point: 12
Direkte link til dette indlæg Emne: Kopiere rækker i nyt ark
    Sendt: 26.Jun.2016 kl. 09:25
Ja det gjorde jeg. Du gav skabelonen og så kunne jeg selv få rettet det sidste til i forhold til det konkrete ark. Og jeg blev en smule klogere - igen👍🏼
Til top



Til top
froksen Se dropdown
Sølv bruger
Sølv bruger


Medlem: 21.Maj.2011
Land: DK
Status: Offline
Point: 196
Direkte link til dette indlæg Sendt: 26.Jun.2016 kl. 08:19
Hej anthonsen

Fik du løst dit problem? :)
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
Direkte link til dette indlæg Sendt: 22.Jun.2016 kl. 07:41
Enig med Froksen: Brug arkenes kodename til reference...

...men, jeg vil også anbefale, at sætte dem som variabler, med noget i denne stil:
Dim Fra As Worksheet
Set Fra = Ark1

Dim Til As Worksheet
Set Til = Ark2
Dels arbejder Excel noget hurtigere med definerede objekt variabler, end at bruge objektet direkte (ikke, at det har det store at sige her, men, det kunne tænkes, at være mange gange der skulle refereres til objektet)..
Dels bliver koden mere fleksibel og fremtidssikret, hvis henvisningerne skal ændres i fremtiden - så skal man kun ændre et sted, nemlig, der, hvor man sætter variablen.
Dels bliver koden også mere læsbar og forståelig, da man nu aldrig er i tvivl om, hvilke ark, der kopieres fra og til - det angiver variablen jo direkte Smile
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
froksen Se dropdown
Sølv bruger
Sølv bruger


Medlem: 21.Maj.2011
Land: DK
Status: Offline
Point: 196
Direkte link til dette indlæg Sendt: 21.Jun.2016 kl. 20:20
Hej 

Her to forslag. Det ene er meget simpelt, og er mest for at give dig en idé - det andet lidt mere avanceret, og kan sikkert gøres enklere. Se evt. vedhæftede: uploads/271/kopirerTilAndetArk.xlsm

Det enkelte forslag: Kopirer data fra det ene ark til det andet.
Det andet forslag: Kopirer data fra det ene til det andet, og sletter rækkerne der blev kopiret.

Koden ligger inde i "Ark1", som du kan se via VBA-editoren.

Håber det giver lidt idéer...

Forslag 1
Sub kopierTilAndetArk()
Dim rngCopy As Range
Dim rngPaste As Range

'Hvilket område der skal kopieres
'I stedet for Ark1, og Ark2, kan du bruge Worksheets ("Data") eller Worksheets ("Arkiv"). Jeg anbefaler dig dig, at bruge kodenavne til arkene.
Set rngCopy = Ark1.Range("A2:B9")

'Hvilket område der skal indsættes i
Set rngPaste = Ark2.Range("A2")

'Kopirer data - Du kan også lave cut i stedet.
rngCopy.Copy

'Indsætter data.
rngPaste.Insert
End Sub

Forslag 2 
Sub kopirerTilAndetArkOgSletFraGammelArk()
Dim rngAllDates As Range
Dim rngDate As Range
Dim nArchiveLastRow As Integer
Dim strRowsToDelete As String

'Hvor er data´erne der skal tjekkes.
Set rngAllDates = Ark1.Range("A2:A8")

'Går gennem alle datoerne
nArchiveLastRow = 1
For Each rngDate In rngAllDates

    'Hvis datoen er "mindre end" (ældre) end dags dato
    If rngDate.Value < Now Then
        Debug.Print "Dato ældre end dags dato - flyttes til arkiv"
        
        'Overfører værdien
        Ark2.Cells(nArchiveLastRow, 1) = rngDate.Value
        Ark2.Cells(nArchiveLastRow, 2) = rngDate.Offset(0, 1).Value
    
        'Hvis der er mere end én række og tekststrengen er længere end 0 tegn
        If rngAllDates.Count > 1 And Len(strRowsToDelete) > 0 Then
            strRowsToDelete = rngDate.Row & ":" & rngDate.Row & "," & strRowsToDelete
        Else
            strRowsToDelete = rngDate.Row & ":" & rngDate.Row
        End If
        
        'Går til næste række
        nArchiveLastRow = nArchiveLastRow + 1
    End If
Next rngDate

'Sletter rækkerne
Ark1.Range(strRowsToDelete).EntireRow.Delete

End Sub
Til top
anthonsen Se dropdown
Forum Begynder
Forum Begynder


Medlem: 21.Jun.2016
Status: Offline
Point: 12
Direkte link til dette indlæg Sendt: 21.Jun.2016 kl. 15:13
Hej

Er der nogen der kan hjælpe med følgende udfordring:

Jeg har et ark hvor der er noteret en dato i kolonne A, og forskellige andre ting i kolonne B-F. Jeg har selv skrevet noget kode til at få udfyldt felterne, men jeg vil gerne have, at når jeg opdaterer arket, så bliver de rækker med datoer der ligger tidligere end dags dato, altså er "overstået", bliver klippet over i et nyt ark der hedder arkiv.
Hvad skal jeg bruge for at kunne gøre dette?

På forhånd tusind tak
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk