Avatar billede Slettet bruger
08. september 2006 - 08:37 Der er 3 kommentarer og
1 løsning

Kopier spredte celler

Hej

Starten af nedenstående kode har Bak været så venlig og dele med os andre. Den bliver forholdsvis brugt flittigt, dog støder den engang imellem på det problem at der laves run-time error ved denne linie "start.Offset(0, x) = Worksheets("Indtast").Range(CellsToCopy(x))" (fejlkode -2147417848 (80010108), Method '_Default' of object 'Range' failed) Fejlen opstår når man trykker på den knap jeg har lavet til at starte makroen og de celler der skal kopieres fra er tomme? Hvordan får jeg tilrettet koden så fejlen ikke opstår?



Private Sub KopierSpredteCeller()
Dim CellsToCopy
Dim x As Long
Dim start As Range
Worksheets("Indtast").Range("B7").Select
CellsToCopy = Array("B7", "B4", "C7", "C12", "C13", "C14", "C10", "D10", "B10", "D7", "E7", "F7", "G7", "C16", "C19", "C20", "C21", "F19", "F20", "F21")
Set start = Worksheets("POSTER").Range("A5000").End(xlUp).Offset(1, 0)
For x = LBound(CellsToCopy) To UBound(CellsToCopy)
  start.Offset(0, x) = Worksheets("Indtast").Range(CellsToCopy(x))
Next

Worksheets("POSTER").Select
    ActiveWindow.SmallScroll ToRight:=0
    Application.Goto Reference:="R6C1:R5000C20"
    Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Key2:=Range("D5") _
        , Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
        Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
        xlSortNormal

Worksheets("POSTER").Select
Range("E1").Select
Worksheets("Indtast").Select

End Sub
Avatar billede excelent Ekspert
09. september 2006 - 08:54 #1
Jeg har ikke kunnet fremprovokere nogen fejl, selv med tomme celler

men prøv evt. at indsætte denne i linie 5
On Error GoTo ud

og denne i næstsidste linie lige før End Sub
ud:
Avatar billede bak Forsker
09. september 2006 - 10:23 #2
Heller ikke her...
Dog skal du være opmærksom på at hvis der mangler den første af cellerne, sker den aktuelle overførsel fint, men den næste vil gå galt og overskrive den sidste linie i POSTER. Det skyldes at du ved hjælp af kolonne A i poster finder hvor den næste  linie skal anbringes.
Avatar billede Slettet bruger
11. september 2006 - 07:34 #3
Jeg har fundet ud af at hvis arket POSTER har autofilter på og man har udvalgt nogle dato, så bliver sidste linie altid overskrevet, som bak skriver.

Jeg har fjernet følgende fra koden:
Worksheets("POSTER").Select
    ActiveWindow.SmallScroll ToRight:=0
    Application.Goto Reference:="R6C1:R5000C20"
    Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Key2:=Range("D5") _
        , Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
        Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
        xlSortNormal

Dertil har jeg i ThisWorkbook lagt følgende kode ind i Sub'en Workbook_Open:
With Worksheets("POSTER")
  If .AutoFilterMode Then
    .Rows("4:4").autofilter
    End If
  .EnableAutoFilter = False
End With

Samt i kode Worksheet_Activate() på det ark jeg bruger som indtastning. Jeg har testet og testet og det ser ud til at være lykkedes, jeg har endnu ikke set fejlen igen.

Smid et svar så deler i point.
Avatar billede excelent Ekspert
11. september 2006 - 15:32 #4
ok
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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