Avatar billede hijklm Juniormester
29. august 2012 - 09:01 Der er 6 kommentarer og
1 løsning

HVIS, kopier til tomt felt mellem ark?

Jeg har brug for lidt kodehjælp....

Jeg har et Exceldokument med flere faneblade. Jeg vil gerne have løst følgende udfordring:

Hvis felt A1, A2 eller A3 på ark "Ark1" indeholder værdien 1, så kopier indholdet af B2, B3 og B4 til første ledige celle på "Ark2"?
Avatar billede Mads Larsen Nybegynder
29. august 2012 - 09:50 #1
Her er en idé til hvordan det kunne gøres.

Sub CopyData()
Dim FraArk As Worksheet
Set FraArk = Sheets("Ark1")
Dim TilArk As Worksheet
Set TilArk = Sheets("Ark2")

i = 1
Do Until Len(FraArk.Cells(i, 1).Text) = 0
    If FraArk.Cells(i, 1).Value = 1 Then
            o = 1
            Do Until Len(TilArk.Cells(o, 1).Text) = 0
                o = o + 1
            Loop
            TilArk.Cells(o, 1) = FraArk.Cells(i, 2).Value
    End If
i = i + 1
Loop
End Sub
Avatar billede hijklm Juniormester
29. august 2012 - 09:56 #2
Kanon, men hvor kommer jeg præciseringen med celler ind henne? Altså A1-A3 og B2-B4.
Avatar billede Mads Larsen Nybegynder
29. august 2012 - 10:10 #3
Er ikke helt sikker på jeg har forstået det rigtigt.

Altså hvis der står 1 i A1 eller A2 eller A3 - så skal B2-B4 kopieres?

Sub CopyDataNy()
    Dim FraArk As Worksheet
    Dim TilArk As Worksheet
    Set FraArk = Sheets("Ark1")
    Set TilArk = Sheets("Ark2")
   
    If FraArk.Range("A1").Value = 1 Or FraArk.Range("A2").Value = 1 Or FraArk.Range("A3").Value = 1 Then
        o = 1
        Do Until Len(TilArk.Cells(o, 1).Text) = 0
            o = o + 1
        Loop
        TilArk.Cells(o, 1) = FraArk.Range("B2").Value
        TilArk.Cells(o + 1, 1) = FraArk.Range("B3").Value
        TilArk.Cells(o + 2, 1) = FraArk.Range("B4").Value
    End If
End Sub
Avatar billede hijklm Juniormester
29. august 2012 - 10:19 #4
Super, dér var den og det var rigtigt forsået. :-)
Send svar for point og tak for hurtig respons.
Avatar billede Mads Larsen Nybegynder
29. august 2012 - 10:20 #5
Her er et svar :-)
Avatar billede hijklm Juniormester
29. august 2012 - 13:20 #6
Kan jeg få lidt mere hjælp.... Kunne godt tænke mig at hvis der stod 1 i D1, så overførte den indholdet af A1 til ark2´s A1, 1 i D2 overførte A2 til ark2´s A2 osv. osv.

Men jeg kan kun få den til at tjekke én celle med din kode som jeg har tilrettet lidt:

Sub CopyDataNy()
    Dim FraArk As Worksheet
    Dim TilArk As Worksheet
    Set FraArk = Sheets("Ark1")
    Set TilArk = Sheets("Ark2")
   
    If FraArk.Range("D1:D300").Value = 1 Then
        o = 1
        Do Until Len(TilArk.Cells(o, 1).Text) = 0
            o = o + 1
        Loop
        TilArk.Range("A1:B300") = FraArk.Range("A1:A300").Value
        TilArk.Range("B1:B300") = FraArk.Range("B1:B300").Value
       
    End If
End Sub
Avatar billede Mads Larsen Nybegynder
29. august 2012 - 13:51 #7
Hvis jeg forstår det rigtigt så er det lidt ligesom den første kode gjorde? :)

Denne her tager fra A1 til A(Række) ikke har en værdi.
Hvis der står 1 i D(Række) så kopiere den A(Række) til A(Række) på Ark2

Sub CopyData()
Dim FraArk As Worksheet
Dim TilArk As Worksheet
Set FraArk = Sheets("Ark1")
Set TilArk = Sheets("Ark2")

i = 1
Do Until Len(FraArk.Cells(i, 1).Text) = 0
    If FraArk.Cells(i, 4).Value = 1 Then
            TilArk.Cells(i, 1) = FraArk.Cells(i, 1).Value
    End If
i = i + 1
Loop
End Sub
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

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