Oprettet ons. d. 10. marts 2010 kl. 20:53:07

spliit
spliit (4.145 point. Point ude: 30)

Hvorfor virker følgende vbakode ikke

Hej
Er der nogen der kan gennemskue hvorfor følgende kode ikke virker.


Public Sub Create_graf()

Dim R As Long, Data As Variant, I As Long, X As Integer, Data2 As Variant
   
   
    Sheet17.Columns("A:B").ClearContents    ' tømmer kolonne A og B i det ark du står på
    Data = Sheet2.Range("B13").CurrentRegion 'læses ind i variablen Ddata
   
    R = 1
    For I = 1 To UBound(Data)

        If Data(I, 2) >= [D9] And Data(I, 2) <= [F9] Then 'Data(I, 1)
            For X = 1 To UBound(Data, 2) ' skriver i det aktive ark
                Cells(I, 1) = Data(I, 2)
                Cells(I, 2) = Ark1.Cells(I, 5)
               
            Next
           
            R = R + 1
     
           
        End If
    Next
End Sub



Jeg har et ark hvor der er en lang liste nedaf med datoer. Starter i celle B13. I et andet ark har jeg celle "D9" hvor man skriver start dat og celle "F9" hvor man skriver slutdato. I kolonne A og B vil jeg så have samme ark til at skrive den periode man vælger. Min makro stopper ved følgende linje når jeg kører den "If Data(I, 2) >= [D9] And Data(I, 2) <= [F9]"

Håber virkelig nogen har en ide om hvad fejlen kan være, for har virkelig brugt mange timer på at forsøge at løse det...

På forhånd tak

Skrevet ons. d. 10. marts 2010 kl. 21:23:07| #1

kabbak
kabbak (151.384 point)
www.kabbak.dk
hvis [D9] og [F9]  ikke er i det ark du står på, så skal du have arknavnet med

[ark1].[D9]
[ark1].[F9]

Skrevet ons. d. 10. marts 2010 kl. 21:28:38| #2

kabbak
kabbak (151.384 point)
www.kabbak.dk
Public Sub Create_graf()

Dim R As Long, Data As Variant, I As Long, X As Integer, Data2 As Variant
 
 
    Sheet17.Columns("A:B").ClearContents    ' tømmer kolonne A og B i det ark du står på
    Data = Sheet2.Range("B13").CurrentRegion 'læses ind i variablen Ddata
 
    R = 1
    For I = 1 To UBound(Data)

        If Data(I, 2) >= [Ark1].[D9] And Data(I, 2) <= [Ark1].[F9] Then 'Data(I, 1)
            For X = 1 To UBound(Data, 2) ' skriver i det aktive ark
                  Sheet17.Cells(I, 1) = Data(I, 2)
                  Sheet17.Cells(I, 2) = Ark1.Cells(I, 5)
             
            Next
         
            R = R + 1
   
         
        End If
    Next
End Sub

Skrevet ons. d. 10. marts 2010 kl. 21:31:04| #3

kabbak
kabbak (151.384 point)
www.kabbak.dk
Sheet17.Cells(I, 1) = Data(I, 2)
Sheet17.Cells(I, 2) = Ark1.Cells(I, 5)

skal være

                  Sheet17.Cells(R, 1) = Data(I, 2)
                  Sheet17.Cells(R, 2) = Ark1.Cells(I, 5)

Skrevet ons. d. 10. marts 2010 kl. 21:43:32| #4

kabbak
kabbak (151.384 point)
www.kabbak.dk
denne er nu gennemtestet:


Public Sub Create_graf()

    Dim R As Long, Data As Variant, I As Long, X As Integer, Data2 As Variant


    Sheets("Sheet17").[A:B].ClearContents    ' tømmer kolonne A og B i det ark du står på
    Data = Sheets("Sheet2").Range("B13").CurrentRegion    'læses ind i variablen Data

    R = 1
    For I = 1 To UBound(Data)

        If Data(I, 2) >= [Ark1].[D9] And Data(I, 2) <= [Ark1].[F9] Then    'Data(I, 1)
            For X = 1 To UBound(Data, 2)    ' skriver i det aktive ark
                Sheets("Sheet17").Cells(R, 1) = Data(I, 2)
                Sheets("Sheet17").Cells(R, 2) = Data(I, 5)

            Next
            R = R + 1
        End If
    Next
End Sub

Skrevet ons. d. 10. marts 2010 kl. 22:25:36| #5

spliit
spliit (4.145 point)
Nej det var desværre ikke kun det.
Den siger stadig efter linje
If Data(I, 2) >= [Sheet2].[D9] And Data(I, 2) <= [Sheet2].[F9]

"Run time error"
Substript out of range

er der andre mugligheder hvorfor det sker...?
Du har ret i at det fungerer når man laver det i et helt nyt excel dokument.. Men hvis jeg benytter makro i det excel ark hvor alt dataen ligger kan jeg ikke få det til at fungere...

Skrevet tor. d. 11. marts 2010 kl. 09:31:30| #6

kabbak
kabbak (151.384 point)
www.kabbak.dk
Du skal huske på, at hvis du vil starte i række 13, så skal du ikke have data i række 12, hvis du har det, kommer de også med i variablen.
CurrentRegion er et samlet område, der er adskilt af tomme celler.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Svar til: X i en celle giver et andet resultat i anden...

Oprettet den 11. februar 2012 kl. 14.15
ashurra giver 100 point for svar | Giv et svar »

Hjælp til formel rente/antal dage

Oprettet den 11. februar 2012 kl. 12.14
petert giver 30 point for svar | Giv et svar »

Problemløser, "HVIS" formel, eller andet til optimering?

Oprettet den 11. februar 2012 kl. 02.36
Olav123 giver 150 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger