Avatar billede brianmilan Juniormester
22. februar 2008 - 09:29 Der er 7 kommentarer og
1 løsning

Hente data fra navngiven kolonne i en anden Excel fil.

Hej.

Jeg har et Excel-ark hvor jeg bl.a. skal hente nogle data fra et ark i en anden Excel-fil, de data jeg godt kunne tænke mig at hente ligger i en kolonne (E) som jeg har navngivet som Kundenavn, men jeg kan ikke få dataene med over i hovedet arket, min Visual Basic kode i hovedearket ser sådan her ud:

Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    Set was = ActiveSheet
    Set wb = Workbooks.Open("c:\kunder\kunder.xls")
    For i = 1 To 500
        was.Range("R" & i).Value = wb.Sheets(1).Range("E" & i).Value
        was.Range("N" & i).ClearContents
        If IsEmpty(wb.Sheets(1).Range("E" & i)) = False Then
            was.Range("N" & i).Value = wb.Sheets(1).Range("E" & i).Value & "-" & wb.Sheets(1).Range("A" & i).Value & "-" & wb.Sheets(1).Range("K" & i).Value
        End If
    Next
    wb.Close
    was.Range("N2:R999").Sort _
    Key1:=was.Range("R2:R999"), _
        Header:=xlGuess
    Call navnengang
    Worksheets(1).EnableCalculation = True
    Application.ScreenUpdating = True

End Sub

Kan I hjælpe mig? :-)
Avatar billede supertekst Ekspert
22. februar 2008 - 13:12 #1
Har prøvet at køre en test. Data hentes korrekt over i hovedarket, men Call navnegang var jeg af gode grunde nødt til at REM'. Det skulle vel ikke være i den SUB, at problemet ligger?
Avatar billede brianmilan Juniormester
22. februar 2008 - 13:23 #2
Hej, sorry jeg har glemt at vise hvordan min Call navnengang ser ud, her kommer den:


Sub navnengang()
 
Dim Rng1 As Range
Dim rstart1 As Range
Dim Cell As Range
Dim Uniqs As Object 'New Dictionary

On Error GoTo fejl
Set ws = Sheets("UGE (1)")
Set rstart1 = ws.Range("R2")
Set Rng1 = ws.Range(rstart1.Offset(0, 0), ws.Cells(ws.Rows.Count, rstart1.Column).End(xlUp))
'Set Rk = ws.Range(startcelle.Offset(0, 0), ws.Cells(ws.Rows.Count, startcelle.Column).End(xlUp))

Set Uniqs = CreateObject("scripting.dictionary")
rstart2 = 2 'start række resultat
cstart2 = "S" 'kolonne for resultat
Application.ScreenUpdating = False
On Error Resume Next
  For Each Cell In Rng1
      Uniqs.Add UCase(Cell.Value), CStr(UCase(Cell.Value))
      If Err.Number = 0 And Cell.Value <> Empty Then
        ws.Cells(rstart2, cstart2) = Cell.Value
        rstart2 = rstart2 + 1
      End If
      Err.Clear
  Next Cell
Application.ScreenUpdating = True
Exit Sub
fejl:
End Sub
Avatar billede supertekst Ekspert
22. februar 2008 - 14:37 #3
Har tilføjet "navnegang" - der kommer du data i kolonne S - men umiddelbart er arket Uge (1) måske ikke det samme som ActiveSheet i 1. halvdel af koden?
(Set Was = ActiveSheet)
Avatar billede supertekst Ekspert
09. marts 2008 - 23:18 #4
Noget nyt??
Avatar billede brianmilan Juniormester
10. marts 2008 - 08:07 #5
Hej Supertekst, der er desværre ikke noget nyt, det driller mig stadig...
Avatar billede supertekst Ekspert
12. marts 2008 - 11:19 #6
Ok
Avatar billede brianmilan Juniormester
28. august 2014 - 20:38 #7
Hej Supertekst. vil du skrive svar, så skal jeg nok give dig point.
Avatar billede supertekst Ekspert
28. august 2014 - 22:24 #8
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