Avatar billede janvogt Praktikant
06. juli 2006 - 14:09 Der er 3 kommentarer og
1 løsning

VBA - overfør månedens tal

Min problemstilling er lidt i stil med http://www.eksperten.dk/spm/719007.

Mappe1 er et rapporteringsark, hvor jeg ønsker at trække nogle tal fra Mappe2.

Det er tallene fra række 2 til 9 hver gang i begge ark, men kolonnen varierer efter hvilken måned det drejer sig om.
Månedsnummeret vælges i Mappe1 og er lagt i variablen "i".

Indtil videre er jeg nået frem til denne kode, men den virker ikke helt. Nogen som kan hjælpe?

Sub HentReal_fra_Mappe2()

Dim i, o, p As Integer
Dim arr(2 To 9, 1) As Variant

Application.ScreenUpdating = False

i = Worksheets("Ark1").Range("S22").Value + 1

On Error Resume Next
Workbooks("Mappe2.xls").Activate
If Err.Number <> 0 Then Workbooks.Open "C:\Mappe2.xls"

For o = 2 To 9
    arr(o, i) = Sheets("Ark2").Cells(o, i).Value
Next o
   
ActiveWorkbook.Close

Windows("Mappe1.xls").Activate

For p = 2 To 9
    Sheets("Ark1").Cells(p, i).Value = arr(p, i)
Next p

Application.ScreenUpdating = True

End Sub
Avatar billede excelent Ekspert
06. juli 2006 - 15:42 #1
Sub HentReal_fra_Mappe2()

Dim i, o, p As Integer
Dim arr(9, 9) As Variant

Application.ScreenUpdating = False
i = Worksheets("Ark1").Range("S22") + 1
On Error Resume Next
Workbooks.Open "C:\Mappe2.xls"
For o = 2 To 9
    arr(o, i) = Sheets("Ark2").Cells(o, i).Value
Next o
ActiveWorkbook.Close

For p = 2 To 9
    Sheets("Ark1").Cells(p, i) = arr(p, i)
Next p

Worksheets("Ark1").Range("S22") = i
Application.ScreenUpdating = True
End Sub
Avatar billede janvogt Praktikant
07. juli 2006 - 08:40 #2
Hm, virker stadig ikke.

Kan se du har sat linien : "Worksheets("Ark1").Range("S22") = i" ind til sidst.
Det skal den ikke. I celle S22 ligger en formel, som beregner månedsnummeret.
Grunden til, at jeg ligger én til er, at kolonne A er en tekstkolonne, som er identisk i både Mappe1 og Mappe2.
Avatar billede janvogt Praktikant
07. juli 2006 - 08:48 #3
Denne virker - der var en lille fodfejl :-) Smid et svar ...

Sub HentReal_fra_Mappe2()

Dim i, o, p As Integer
Dim arr(9, 13) As Variant

Application.ScreenUpdating = False
i = Worksheets("Ark1").Range("S22") + 1
On Error Resume Next
Workbooks.Open "C:\Mappe2.xls"
For o = 2 To 9
    arr(o, i) = Sheets("Ark1").Cells(o, i).Value
Next o
ActiveWorkbook.Close

For p = 2 To 9
    Sheets("Ark1").Cells(p, i) = arr(p, i)
Next p

Application.ScreenUpdating = True
End Sub
Avatar billede excelent Ekspert
07. juli 2006 - 10:47 #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