Avatar billede wesso Juniormester
29. april 2015 - 15:40 Der er 18 kommentarer og
1 løsning

HASTER... Sammenligne 2 kolonner og erstatte fra tilhørende nabo kolon

Hej

jeg har en haster opgave....

Jeg har 2 excel fil med 2 ark.

Ark1:  indeholder kundeoplysninger med bl.a. "Branche" kolonne.

Ark2 (jeg har selv oprettet): indeholder branche oplysning med 2 kolonner ("Branche" og "Hoved kategori")


... jeg har tilføjet en tom kolonne i ark1 "hoved kategori".

Jeg vil sammenligne "branche" fra Ark1 med "Branche" i Ark2:

Hver gang den finder en match, så skal "Hoved kategori" kolonne i Ark1 kopieres fra "Hoved kategori" kolonne i Ark2 for den fundene match.


HVORDAN GØRES DET ?


Vi kommer til at få leveret en excel fil hverdag med kundeoplysning, så jeg vil have det nemmere eksekveret...


HASTER I DAG ...


Jeg vil give 500 points men det tillader systemet ikke :)
Avatar billede supertekst Ekspert
29. april 2015 - 15:53 #1
Var det muligt du kunne uploade filen? - eller er der 2?
Avatar billede wesso Juniormester
29. april 2015 - 15:57 #2
jo ... hvor er det hen man kan uploade filer
Avatar billede wesso Juniormester
29. april 2015 - 16:01 #3
Der er kun en fil

Du kan hente den fil på:

http://telia-bizz.dk/branche2.xlsx
Avatar billede supertekst Ekspert
29. april 2015 - 16:08 #4
Ok - prøver at se på det..
Avatar billede wesso Juniormester
29. april 2015 - 16:17 #5
tak
Avatar billede supertekst Ekspert
29. april 2015 - 16:22 #6
Spørgsmål: Den fil i får hver dag - den ligner vel så Ark1?
Hvilket navn denne fil have?

VBA koden skal ligge i det , der p.t. udgør Ark2?
Avatar billede wesso Juniormester
29. april 2015 - 16:27 #7
kundeinfo1
kundeinfo2
.
.
.
.

kundeinfo7
Avatar billede wesso Juniormester
29. april 2015 - 16:36 #8
send et svar så jeg kan give dig point
Avatar billede supertekst Ekspert
29. april 2015 - 16:42 #9
Det er vist lidt for tidligt at give point :-)
Avatar billede wesso Juniormester
29. april 2015 - 17:04 #10
he he okay
Avatar billede supertekst Ekspert
29. april 2015 - 17:35 #11
Jeg fik vist ikke rigtig svar på #6

Navnene kundeinfo1 osv er de fortløbende i "det uendelige"?
Avatar billede wesso Juniormester
30. april 2015 - 10:01 #12
Ja den ligner Ark1 og filen hedder "kundeinfo"
Avatar billede supertekst Ekspert
30. april 2015 - 10:22 #13
Hej igen

Det eneste jeg mangler er identifikationen af den daglige fil, men det kræver at jeg ved, hvad den hedder!

Du har nævnt kundeinfo1, kundeinfo2.. kundeinfo7 i #7 - fortsætter den nummerering og hvor længe?

I #12 hedder filen kundeinfo.

Jeg kan ikke komme videre på det grundlag.
Avatar billede wesso Juniormester
30. april 2015 - 10:37 #14
den forsætter op til 14 gange:

kundeinfo1
.
.
.
kundeinfo14
Avatar billede supertekst Ekspert
30. april 2015 - 11:10 #15
Hvad så herefter - begynder forfra med 1 - 14?
Hvad sker der med de 14 filer herefter?
Avatar billede wesso Juniormester
30. april 2015 - 11:50 #16
Så er opgaven færdig ... der kommer ikke flere filer .... Filerne ligger bare på hd herefter
Avatar billede supertekst Ekspert
30. april 2015 - 12:10 #17
Ok - fortsætter
Avatar billede supertekst Ekspert
30. april 2015 - 13:30 #18
Hvis du sender en mail - @-adresse under min profil - så sender jeg filen m.m.


Rem ThisWorkbook
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Address = "$B$1" Then
        Ark1.hentHovedKategori
    End If
End Sub


Rem Branche hoved kategori
Rem ======================
Dim sti As String

Dim rådataFil As Object
Dim rådataFilNavn As String
Dim antalRækker As Long
Dim ræk As Long, branche As String, hovedKategori As String, filNr As Integer

Dim systemFil As Object
Public Sub hentHovedKategori()
On Error GoTo fejl

    sti = ActiveWorkbook.Path & "\"
    Set systemFil = ActiveWorkbook
   
    filNr = tælAntalKundeInfoFiler
   
    If filNr >= 1 And filNr <= 14 Then
   
        rådataFilNavn = "kundeinfo" & filNr & ".xlsx"
       
        Set rådataFil = CreateObject("Excel.Application")
        rådataFil.Workbooks.Open sti & rådataFilNavn
       
        rådataFil.Sheets("Rådata").Activate
        antalRækker = rådataFil.ActiveCell.SpecialCells(xlLastCell).Row
       
        ScreenUpdating = False
       
        For ræk = 2 To antalRækker - 1
            branche = rådataFil.ActiveSheet.Range("B" & ræk)
            rådataFil.ActiveSheet.Range("C" & ræk) = findHovedkategori(branche)
        Next ræk
       
        rådataFil.ActiveWorkbook.Save
        rådataFil.Application.Quit
        Set rådataFil = Nothing
       
        MsgBox "Hovedkategori er indsat"
    Else
        MsgBox "FilNr er identificeret til: filnr"
    End If
    Exit Sub
   
fejl:
    On Error Resume Next
    rådataFil.Application.Quit
    Set rådataFil = Nothing
    MsgBox "Der opstod fejl!"
End Sub
Private Function findHovedkategori(branche)
Dim ark, område As String
    Set ark = systemFil.Sheets(1)
    område = "A:A"
   
    With ark.Range(område)
        Set c = .Find(branche, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findHovedkategori = ark.Range("B" & c.Row)
        Else
            findHovedkategori = ""
        End If
    End With
End Function
Private Function tælAntalKundeInfoFiler()
Dim fs, f, f1, fc, fNavn As String, ext As String, antalFiler As Integer
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(sti)
    Set fc = f.Files
    antalFiler = 0
   
    For Each f1 In fc
        filNavn = LCase(f1.Name)
       
        If InStr(filNavn, "kundeinfo") = 1 Then
            antalFiler = antalFiler + 1
        End If
    Next
   
    tælAntalKundeInfoFiler = antalFiler
End Function
Avatar billede supertekst Ekspert
30. april 2015 - 15:28 #19
Filerne er sendt..
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

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