Avatar billede sjoran Nybegynder
21. september 2007 - 12:07 Der er 5 kommentarer og
1 løsning

Tage kolonneoverskrifter med .

Jeg har for noget tid siden fået nedenstående kode af Supertekst herinde fra og den virker helt fint.

http://www.eksperten.dk/spm/777533

Men jeg ville mægtig gerne have den til også at tage kolonneoverskrifterne med. Altså skal den ud over at hente de data der passer med min parameter og tage række 1 med. Hvordan tilretter jeg nedenstående så den også tager kolonne overskriften med.

Rem Version 2
Rem =========
Const fil3Sti = "S:\Okonomi\Projektoverblik\Projekt_timer\Projekt opfølgning\Bogforte_timer_hist.xls" 'TILPASSES
Dim ræk1, xls
Public Sub hentData2()      '------> kaldes fra fil1 Alt+F8 - Afspil / eller opret knap
Rem slet gl. indhold i fil1 / Ark1
    With ActiveWorkbook.Sheets(6)
        .Range("A1:Z65500").ClearContents
    End With
   
Rem hent parameter i den active celle (hvorsomhelst)
    If ActiveWorkbook.Sheets(2).Cells(5, 2) <> "" Then
      ræk1 = 1
      hentFraFil2 ActiveWorkbook.Sheets(2).Cells(5, 2)
    End If
   
    lukfil2
End Sub
Private Sub hentFraFil2(param)
Dim celle2
    Set xls = CreateObject("Excel.Application")
    With xls
        .Workbooks.Open fil3Sti
        For ræk2 = 1 To 65500
            celle2 = .Cells(ræk2, 1)
Rem test om tom celle i kolonne A - hvis Ja - afslut
            If celle2 = "" Then
                lukfil2
                Exit Sub
            Else
                If celle2 = param Then
                    .Range(CStr(ræk2) + ":" + CStr(ræk2)).Select
                    .Selection.Copy

Rem indsæt den fundne række på Ark1 (Fil1)
                    ActiveWorkbook.Sheets(6).Activate
                    Cells(ræk1, 1).Select
                    With Selection
                        Paste
                    End With
                                       
                    ræk1 = ræk1 + 1
                End If
            End If
        Next ræk2
    End With
End Sub
Private Sub lukfil2()
On Error Resume Next
    xls.Application.DisplayAlerts = False
   
    xls.ActiveWorkbook.Close
    xls.Application.Quit
    Set xls = Nothing
End Sub
Avatar billede kabbak Professor
21. september 2007 - 16:33 #1
jeg har rettet i denne, prøv at tjekke

Private Sub hentFraFil2(param)
Dim celle2
    Set xls = CreateObject("Excel.Application")
    With xls
        .Workbooks.Open fil3Sti
        .Rows(1).Copy ActiveWorkbook.Sheets(6).Cells(ræk1, 1) ' overskrifter
        For ræk2 = 2 To 65500
            celle2 = .Cells(ræk2, 1)
                        Rem test om tom celle i kolonne A - hvis Ja - afslut
            If celle2 = "" Then
                lukfil2
                Exit Sub
            Else
                If celle2 = param Then
                    .Range(CStr(ræk2) + ":" + CStr(ræk2)).Copy ActiveWorkbook.Sheets(6).Cells(ræk1, 1)
                    ræk1 = ræk1 + 1
                End If
            End If
        Next ræk2
    End With
End Sub
Avatar billede kabbak Professor
21. september 2007 - 16:34 #2
jeg glemte noget



Private Sub hentFraFil2(param)
Dim celle2, Ræk1 As Long
Ræk1 = 2
    Set xls = CreateObject("Excel.Application")
    With xls
        .Workbooks.Open fil3Sti
        .Rows(1).Copy ActiveWorkbook.Sheets(6).Cells(1, 1) ' overskrifter
        For ræk2 = 2 To 65500
            celle2 = .Cells(ræk2, 1)
                        Rem test om tom celle i kolonne A - hvis Ja - afslut
            If celle2 = "" Then
                lukfil2
                Exit Sub
            Else
                If celle2 = param Then
                    .Range(CStr(ræk2) + ":" + CStr(ræk2)).Copy ActiveWorkbook.Sheets(6).Cells(Ræk1, 1)
                    Ræk1 = Ræk1 + 1
                End If
            End If
        Next ræk2
    End With
End Sub
Avatar billede sjoran Nybegynder
26. september 2007 - 23:04 #3
Det giver mig en fejl

Der kommer en pop up frem hvori der bare står 400. Det er en micrisoft visual basic pop up hvor man så kan trykke OK eller help.

Jeg kan se du har slettet noget i den oprindelige kode i dette afsnit. Fra select og frem har du slettet.

ActiveWorkbook.Sheets(6).Activate
                    Cells(ræk1, 1).Select
                    With Selection
                        Paste
                    End With
Avatar billede kabbak Professor
27. september 2007 - 12:01 #4
Private Sub hentFraFil2(param)
    Dim celle2
    Set xls = CreateObject("Excel.Application")
    With xls
        .Workbooks.Open fil3Sti
        .Rows(1).Copy
        ActiveWorkbook.Sheets(6).Activate
        Cells(ræk1, 1).Select
        With Selection
            Paste
        End With
        ræk1 = ræk1 + 1
        For ræk2 = 1 To 65500
            celle2 = .Cells(ræk2, 1)
            Rem test om tom celle i kolonne A - hvis Ja - afslut
            If celle2 = "" Then
                lukfil2
                Exit Sub
            Else
                If celle2 = param Then
                    .Range(CStr(ræk2) + ":" + CStr(ræk2)).Select
                    .Selection.Copy

                    Rem indsæt den fundne række på Ark1 (Fil1)
                    ActiveWorkbook.Sheets(6).Activate
                    Cells(ræk1, 1).Select
                    With Selection
                        Paste
                    End With

                    ræk1 = ræk1 + 1
                End If
            End If
        Next ræk2
    End With
End Sub

Prøv nu
Avatar billede sjoran Nybegynder
30. september 2007 - 14:02 #5
Det virker som det skal.

Læg et svar
Avatar billede kabbak Professor
30. september 2007 - 20:54 #6
et svar ;-))
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