Avatar billede jensen363 Forsker
18. oktober 2005 - 11:38 Der er 16 kommentarer og
1 løsning

Makro - hente data i skjulte arkfaner

En makro skal hente data over i Ark1 fra Ark2, men jeg vil gerne have Ark2 skjult for slutbrugeren ... kan dette ikke lade sig gøre.

VBA-koden i makroen kan ikke finde Ark2 hvis jeg skjuler det !!!
Avatar billede darth-domino Nybegynder
18. oktober 2005 - 11:42 #1
bruger du ikke bare:

sheets("Ark1").range("A1") = sheets("Ark2").range("A1")
Avatar billede darth-domino Nybegynder
18. oktober 2005 - 11:43 #2
Det virker fint her!
Avatar billede jensen363 Forsker
18. oktober 2005 - 11:48 #3
Sub Maxibreve_Makro()

    ActiveSheet.Unprotect  ' Fjern beskyttelse

'  Kopi rabatsatser
    Sheets("Ark2").Select
    Range("C3:C9").Select
    Selection.Copy
    Sheets("PrisKalkulation").Select
    Range("F5:F11").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False

Dele af koden ser således ud, og fungerer upåklageligt så længe Ark2 er synlig, men hvis jeg benytter mig af menulinien Formater>Ark>Skjul, og gør Ark2 helt utilgængeligt for slutbruger, fejler makroen !!!!
Avatar billede s_kjaer Praktikant
18. oktober 2005 - 11:49 #4
Den nemme løsning er at få macroen til at vise arket --> hente data--> skjule arket igen. Hvis du stopper "screen.updating" kan slutbrugeren ikke se at arket bliver vist og skjult igen.
Avatar billede s_kjaer Praktikant
18. oktober 2005 - 11:54 #5
Det skulle virke med denne:

Sub Maxibreve_Makro()

    ActiveSheet.Unprotect  ' Fjern beskyttelse

'  Kopi rabatsatser
Application.ScreenUpdating = False

    Sheets("Ark2").Visible = True
    Sheets("Ark2").Select
    Range("C3:C9").Select
    Selection.Copy
    Sheets("PrisKalkulation").Select
    Range("F5:F11").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
        Sheets("Ark2").Visible = False
       
        Application.ScreenUpdating = True
Avatar billede darth-domino Nybegynder
18. oktober 2005 - 11:58 #6
Application.ScreenUpdating = False
Sheets("Ark2").Visible = True

'  Kopi rabatsatser
    Sheets("Ark2").Select
    Sheets("Ark2").Range("C3:C9").Select
    Selection.Copy
    Sheets("Ark1").Select
    Range("F5:F11").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False

Sheets("Ark2").Visible = False
Application.ScreenUpdating = False
Avatar billede jensen363 Forsker
18. oktober 2005 - 12:00 #7
kjaer > du var først med den smarteste løsning :o)
Avatar billede stewen Praktikant
18. oktober 2005 - 12:01 #8
darth-domino: Pas lige på din Application.ScreenUpdating!

skal naturligvis afsluttes med Application.ScreenUpdating = True
Avatar billede s_kjaer Praktikant
18. oktober 2005 - 12:04 #9
Så har jeg også prøvet det... Du kan jo bare flytte "Screen.updating = True" hen i slutningen af din kode, alt efter hvor det passer bedst.
Avatar billede jensen363 Forsker
18. oktober 2005 - 12:13 #10
Takker for hjælpen :o)
Avatar billede bak Forsker
18. oktober 2005 - 12:13 #11
Problemet er at du vil selecte et skjult ark og det kan man ikke.
Det er også unødvendig. dette burde være nok

Worksheets("Ark2").Range("C3:C9").Copy
Worksheets("PrisKalkulation").Range("F5").PasteSpecial Paste:=xlPasteValues
Avatar billede s_kjaer Praktikant
18. oktober 2005 - 12:14 #12
Takker for point
Avatar billede s_kjaer Praktikant
18. oktober 2005 - 12:16 #13
Bak --> Jeg vidste at der måtte være en smartere måde, men det gik ud over mine evner..... Du burde have fået point for nu har du lært mig noget nyt igen....
Avatar billede bak Forsker
18. oktober 2005 - 12:20 #14
nej jeg har nok :-)
her er den lidt kortere version uden at bruge copy
Worksheets("PrisKalkulation").Range("F5:F11").Value = Worksheets("Ark2").Range("C3:C9").Value
Avatar billede jensen363 Forsker
18. oktober 2005 - 12:21 #15
Hatten af for Bak´s løsning
Avatar billede s_kjaer Praktikant
18. oktober 2005 - 12:25 #16
Må indrømme at det heller ikke er point der for mig til at være på exp - det er mest for at lære noget. Hvordan har du lært smarte/korte vba og hvordan lærer man det bedst? Undskyld jeg spammer spm., men det er lidt skræmmende at det jeg bruger 10 linier på kan skrives med en enkelt linie.
Avatar billede bak Forsker
18. oktober 2005 - 12:31 #17
Jeg har læst et par bøger (j. walkenbach's excel 2002 powerprogramming VBA) og set hvordan proffi'erne gør :-)
Samtidig har jeg altid haft gamle langsomme computere, der har gjort at jeg altid har skullet bruge de mest optimale koder.
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel