Avatar billede p_h_g Nybegynder
25. februar 2012 - 11:28 Der er 2 kommentarer og
1 løsning

Loop til at kopiere data til et andet ark indtil den møder et tom felt

Hej Håber der er nogen der kan hjælpe mig med et lille stykke "hurtig" kode der kan følgende:

Funktionen skal starte på fanen "DATA" i en given kolonne f. eks. "P" i række nr. "5" 

Derfra skal den finde første udfyldte celle i  kolonne "P"

Når den gør det skal den kopier indholdet i den celle til cellen  "F5" på fanen "TAL"

Den skal også tage indholdet af cellen i kolonne "D" og "E" i samme række og kopier indholdet i de celler til cellerne "B5" og "D5" på fanen "TAL"

Så indsættes der en ny række i fanen "TAL" så den gamle  række "5" rykker ned og bliver til "6"

Den skal så gentage dette ned gennem kolonne "P"  indtil den støder på en tom celle.

Som bonus ville det være super at den som kontrol kunne springe linien over hvis et af cellerne der skal kopieres i "D" og "E" er tom (men det er bonus og ikke et must)
Avatar billede supertekst Ekspert
25. februar 2012 - 14:18 #1
Rem Anbringes under arket DATA / Vis programkode
Rem ============================================
Dim DATA As Worksheet
Dim antalRæk As Long

Dim TAL As Worksheet
Public Sub TestOgFlyt()
    Application.ScreenUpdating = False
   
    Set TAL = ActiveWorkbook.Sheets("TAL")
    Set DATA = ActiveWorkbook.Sheets("DATA")
    flag = False
   
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
    For ræk = 5 To antalRæk
        If Range("P" & ræk) <> "" Then
            If Range("D" & ræk) <> "" And Range("E" & ræk) <> "" Then
                kopierTilTal Range("P" & ræk), "F5"
                kopierTilTal Range("D" & ræk), "B5"
                kopierTilTal Range("E" & ræk), "D5"
           
                indsætRække "5:5"
            End If
        End If
    Next ræk
   
    Application.ScreenUpdating = True
End Sub
Private Sub kopierTilTal(værdi, mål As String)
    TAL.Activate
    With TAL
        .Range(mål).Value = værdi
    End With
   
    DATA.Activate
End Sub
Private Sub indsætRække(foranRække)
    TAL.Activate
    With TAL
        .Rows(foranRække).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    End With
   
    DATA.Activate
   
End Sub
Avatar billede p_h_g Nybegynder
28. februar 2012 - 19:52 #2
Takker Super! :)
Avatar billede supertekst Ekspert
28. februar 2012 - 21:03 #3
Selv tak..
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