Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Solujen kopiointi useammasta työkirjasta

DonRosa [13.06.2006 11:36:57]

#

Terve,
olen uusi tulokas näille ja muutenkin VBAlle, joten ongelmani ehkä vaikuttaa helpolta (ehkä jopa naurettavalta) monilla. Tuskin tehtävä on kovin aikaa vievää, mutta olisin kiitollinen avusta tällä hetkellä koska olen aivan pihalla ja mun pitäisi saada tämä homma valmiiksi perjantain mennessä.

Koitan selittä ongelmani mutta kysykää ihmeessä jos jäi jotain epäselväksi.

Koodini näyttää tällä hetkellä seuraavalta:

Private Sub Kopiering_Click()


    Worksheets("BRL").Range("K3").Cut Destination:=Worksheets("TOTAL").Range("M3")

    Worksheets("BRL").Range("J3").Cut Destination:=Worksheets("TOTAL").Range("I3")

    Worksheets("BRL").Range("E3").Cut Destination:=Worksheets("TOTAL").Range("K3")

    Worksheets("BRL").Range("F3").Cut Destination:=Worksheets("TOTAL").Range("E3")

    Worksheets("BRL").Range("G3").Cut Destination:=Worksheets("TOTAL").Range("F3")

    Worksheets("BRL").Range("H3").Cut Destination:=Worksheets("TOTAL").Range("G3")

    Worksheets("BRL").Range("C3").Cut Destination:=Worksheets("TOTAL").Range("L3")

    Worksheets("BRL").Range("D3").Cut Destination:=Worksheets("TOTAL").Range("J3")

    Dim ws As Worksheet
    For i = 600 To 1 Step -1
        If ws.Cells(i, 4) = "" And ws.Cells(i, 6) = "" Then
            ws.Rows(i).Delete
        End If
    Next i

End Sub

Yllä oleva koodi on ihan sukka ja ei oikein sitä mihin pyrin, tahtoisin nimittäin seuraava.

1. Macro leikkaa Sheetin"BRL newbuildings" active rown kyseiset solut (ei kolmanen rivin kyseiset kuten omassa koodissani), ja liittää ne seuraavaan vapaan rivin tiettyihin soluihin (ei kolmannen rivin tiettyihin soluihin kuten omassa kooodissani). Tarkoitus olisi nimittäin liittää samanlainen commandbutton toiseenkin sheetiin joten macron olisi pakko liittää ne nimenomaan seuravaan vapaan riviin.

2. Macro poistaa lopuksi sheetistä "BRL ..." se rivi mitä äsken leikattiin.

PLEASE apua tarvitaan.

Kiitos jo etukäteen.

Hycke [13.06.2006 12:27:23]

#

Tuosta voi lähteä liikkeelle:

Sub btn()
    Dim i As Long, Rivi As Long

    Rivi = Selection.Row  'aktiivinen rivi

    'etsitään sheetin "total" seuraava tyhjä rivi
    i = 1   'aloitetaan rivistä 1
    Do Until Sheets("TOTAL").Cells(i, "A").Value = ""
        i = i + 1
    Loop

    'Kopioidaan arvot BRL-->TOTAL
    Sheets("TOTAL").Cells(i, "A").Value = Sheets("BRL").Cells(rivi, "A").Value
    Sheets("TOTAL").Cells(i, "b").Value = Sheets("BRL").Cells(rivi, "b").Value
    'jnejne....

    'poistetaan BRL rivi
    Sheets("BRL").Rows(Rivi).Delete

End Sub

EDIT:typoja

DonRosa [13.06.2006 12:59:48]

#

Oot nero,
Selkeä koodi ja selityksetkin vielä. Pelastit mun päivän, toivottavasti sullakin on hieno päivä.

Kiitän ja kumarran erittäin syvästi.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta