Avatar billede heeelp Nybegynder
26. november 2008 - 15:01 Der er 3 kommentarer og
1 løsning

Hente data hvis sheet findes

Jeg har brug for hjælp. Jeg skal hente/kopiere data ind i én fil ("samletdata") fra worksheets fra andre Excelfiler. Da jeg kun skal bruge nogle data fra nogle worksheets skal der først tjekkes om de findes. Hvis ikke skal der søges efter næste worksheet indtil listen er tom. Afhængig af hvilket worksheet der kopieres fra skal dataen indsætte i forskellige worksheets i "samletfil". Derfor tror jeg "case" eller "if" sætninger passer bedst, men ret mig hvis jeg tager fejl.

Jeg henter navnet for den excelfil jeg ønsker at hente data fra celle H14 i "førsteshee" i filen "samletdata".

    Dim fNAME As String
    Sheets("førstesheet").Select
    Range("H14").Select
    fNAME = Selection.Value
    GoTo fejl1 'Hvis der trykkes "cancel" stoppes makroen.
    Workbooks.Open Filename:=fNAME

HVIS sheetnavn1 FINDES:
        Sheets("sheetnavn1").Select
        Range("A1:B2").Select
        Selection.Copy
        Windows("samletdata.xls").Activate
        Sheets("sheet2").Select
        ActiveWindow.SmallScroll Down:=-3
        Range("A5").Select
        ActiveSheet.Paste
HVIS sheetnavn2 FINDES:
        Sheets("sheetnavn2").Select
        Range("C1:D10").Select
        Selection.Copy
        Windows("samletdata.xls").Activate
        Sheets("sheet4").Select
        ActiveWindow.SmallScroll Down:=-15
        Range("C27").Select
        ActiveSheet.Paste
HVIS sheetnavn3, 4, 5 MV. FINDES.
DEREFTER UDFØRES NEDENSTÅENDE:
    Application.CutCopyMode = False 'Tømmer Clipboard
    Sheets("førstesheet").Select
    Range("H14").Select
    Exit Sub
fejl1:
    MsgBox "Der blev ikke valgt en datafil."
    Application.CutCopyMode = False 'Tømmer Clipboard
    Windows("samletdata.xls").Activate
    Sheets("førstesheet").Select
    Range("H14").Select
End Sub
Avatar billede Lene Fredborg Ekspert
26. november 2008 - 16:43 #1
Du kan løbe igennem alle sheets sådan:

    Dim oSheet As Worksheet
   
    For Each oSheet In ActiveWorkbook.Worksheets
        Select Case oSheet.Name
            Case "sheetnavn1"
                'Din kode til det der skal ske her...
            Case "sheetnavn2"
                'Din kode til det der skal ske her...
            Case "sheetnavn3"
                'Din kode til det der skal ske her...
                'Tilføj alle de sheets, der skal tjekkes
        End Select
    Next oSheet

Hvis du har brug for samme handling for flere sheets, kan de listes i samme case-linje, adskilt af komma, f.eks.:

    Case "sheetnavn3", "sheetnavn4"

Hvis du har en handling, der skal udføres for de sheets, der evt. ikke er nævnt specifikt, kan du slutte med "Case Else" inden "End Select":

    Case Else
        'Din handling
Avatar billede heeelp Nybegynder
27. november 2008 - 09:10 #2
Tak for hjælpen. Jeg vender tilbage når jeg har arbejdet videre på det. Jeg har desværre først tid til at kigge på det på onsdag, håber det er i orden.
Avatar billede heeelp Nybegynder
16. marts 2009 - 21:03 #3
Beklager den sene tilbagemelding. Jeg har brugt dit forslag og vil gerne takke mange gange. Hvis du ønsker point, så smid et svar.
Avatar billede Lene Fredborg Ekspert
16. marts 2009 - 22:13 #4
Kommer her.
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
Kurser inden for grundlæggende programmering

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