Jeg skal have lidt hjælp. Kan det lade sig gøre at flytte data fra et ark til andre ark dvs. kolonne A + B + C+ D + E + F i Bogføringsark ”ark“ skal flyttes til andre ark ”fane” der er nummereret f.eks 100 200 300 400 500 600 700 og der ud af
Dvs. at i Række B3 er et nummer f.eks 100 . Og F3 er et nummer f. eks 200 så skal den række A3+B3+C3+D3+E3+F3 både flyttes til ark 100 og ark 200
Der kan godt være mange linier i Bogføringsarket og de skal ikke lægges oveni hinanden når man køre makroen den skal starte i B3 og så 44 linier derefter springe 5 linier over og så samme procedure igen. Det vil være rart at de linier der bliver lagt over samtidig er skriverbeskyttet. så de ikke kan rettes
Denne springer ikke 5 over, men tager ikke records med hvor enten B eller F er blanke. Skrivebeskyttelse er noget du selv må klare. Standard er alle celler i et ark sat til skrivebeskyttet, det mangler bare at blive slået til under funktioner / Beskyttelse.
Sub transfer() Dim recv1 As Range, recv2 As Range On Error GoTo Fejl For Each c In Worksheets("Ark").Range("A2", Cells(65536, 1).End(xlUp)) If Not IsEmpty(c.Offset(, 1)) And Not IsEmpty(c.Offset(, 5)) Then Set recv1 = Worksheets(CStr(c.Offset(, 1))).Range("A65536").End(xlUp).Offset(1, 0) Set recv2 = Worksheets(CStr(c.Offset(, 5))).Range("A65536").End(xlUp).Offset(1, 0) Range(c, c.Offset(0, 6)).Copy recv1.PasteSpecial recv2.PasteSpecial End If Igen: Next Exit Sub
Fejl: MsgBox "et af disse ark eksisterer ikke " & _ vbCr & CStr(c.Offset(, 1)) & _ vbCr & CStr(c.Offset(, 5)) _ & vbCr & "Record bliver ikke overført" GoTo Igen End Sub
Dim sidsteR, aktuelleR Private Sub CommandButton1_Click() startKopiering
MsgBox ("Kopieringen er udført - kopiark beskyttet") End Sub Sub startKopiering() ActiveWorkbook.Worksheets(bArk).Activate aktuelleR = 3
Rem beregn sidste række i basisark ActiveCell.SpecialCells(xlLastCell).Select sidsteR = ActiveCell.Row
While aktuelleR < sidsteR
Rem 2 ark-referencer arkOK (2) arkOK (6)
aktuelleR = aktuelleR + 51 Wend End Sub Private Sub arkOK(kol) Dim tilArk tilArk = CStr(Cells(aktuelleR, kol))
If findesArk(tilArk) = True Then kopiAfArk tilArk, aktuelleR Else MsgBox ("Arket " + tilArk + " findes ikke!") End If End Sub Private Sub kopiAfArk(tilArk, raek) Dim fraStr, fra As Range, til As Range fraStr = "A" + CStr(raek) + ":" + "F" + CStr(raek + 43)
Set fra = Worksheets(bArk).Range(fraStr) fra.Copy
Set til = Worksheets(tilArk).Range("A1") til.PasteSpecial
With Worksheets(tilArk) .Protect password:=pw End With End Sub Private Function findesArk(Arknavn) For Each ws In ActiveWorkbook.Worksheets If ws.Name = Arknavn Then findesArk = True Exit Function End If Next End Function
kan det være fordi jeg i det første ark "ark1" har en makro der selv opretter ny ark efter de tal jeg indtaster i kolonne A .når jeg så køre den makro så tager den en kopi af ark3 " kontiark" og ligger ud i alle de nye faner. så er det jeg skal bruge en makro der er beskrevet i spørgsmålet ovenfor
når jeg køre makroen så stopper den i linie 540 og siger at arket ikke findes jeg har forinden oprettet fane 1000 og fane 1010 3B tastet 1000 og i 3F 1010 Hjælp.
Jeg vil foreslå, at du piller det gamle kode ud - således at der kun er en model ad gangen. Hvis det er min version - så fylder det kun 59 linier - så linie 540 siger ikke så meget, hvis jeg skal hjælpe
Har forøvrigt selv prøvet at anvende 1000 & 1010 - i 3B og 3F - arkene oprettet på forhånd - ingen problem.
OK - jeg havde opfattet, at du havde fået det til at fungere. Jeg kan på baggrund af den fremsendte fil se, at proceduren skal gentages i alle de følgende 44 linier. Det var ikke helt tydeligt for mig fra begyndelsen. Jeg vender tilbage.
det ser ud til at det virker men som du selv siger var det planen at bogføringsark når det blev opdateret selv skal forsvinde jeg ved ikke om det er en stører ændring jeg får først rigtig tid til at se på det imorgen . på forhånd tak
Gem dine 30 points til fremtidig anvendelse - det var en fornøjelse at kunne hjælpe.
mvh
Synes godt om
Ny brugerNybegynder
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.