Avatar billede petzel Novice
22. december 2009 - 12:55 Der er 6 kommentarer og
1 løsning

Makro som sammen kører data fra 3 filer. = 200 point

Hej, jeg her 3 ens regneark (fil 1, fil 2 fil 3)
De 3 regneark er 100 % ens i opbygningen, men er forbeholdt 3 forskælige forratningsgange, de intastet oplysninger er der for ikke ens.

I hver fil er der et ark som heder "kunder" der indtastes kunder i kolonne A. og oplysningerne anventes til en drop down liste i filen.

Nu til spørgsmålet:
Jeg ønsker at de 3 filer har samme kunder indtastet, dvs. hvis der i "fil 2" indtastes en ny kunde så skal den automatisk også opdateres i "fil 1" og "fil 3"
Men kunden skal kun stå der en gang (vigtigt!)
Opdateringen skal være automatisk og ikke noget med en knap.

Er det muligt vil jeg også gerne ha kunderne soteret i alfabetisk orden.

Giver det mening?

Tak
Avatar billede supertekst Ekspert
22. december 2009 - 15:05 #1
Kan lade sig gøre via VBA...

Skal forsøge senere....
Avatar billede petzel Novice
26. december 2009 - 21:49 #2
Hej, har du fået set på en løsning?
Avatar billede supertekst Ekspert
26. december 2009 - 23:41 #3
Endnu ikke - men det sker snart
Avatar billede supertekst Ekspert
27. december 2009 - 16:00 #4
Send en mail - så returnerer jeg en model, hvori alle 3 filer optræder.

(Mailadresse under min profil)
Avatar billede supertekst Ekspert
27. december 2009 - 23:25 #5
Rem Version 1 - VBA koden anbringes under arket "kunder"
Rem ====================================================
Dim filTabel As Variant, antalRækker As Long, filSti As String

Const ID = "fil 1.xls"

Dim xFil As Object
Private Sub Worksheet_Change(ByVal Target As Range)
Dim kundenavn As String
On Error GoTo gåVidere
   
    filTabel = Array("fil 1.xls", "fil 2.xls", "fil 3.xls")

    If Target.Column = 1 And Target.Text <> "" And LCase(ActiveWorkbook.Name) = ID Then
        antalRækker = findAntalRækker()
        kundenavn = Target.Value
       
        If findesKunde(kundenavn, antalRækker) > 0 And Target.Row < antalRækker - 1 Then
            Rows(Target.Row).Select
            Selection.Delete
        Else
            sorter antalRækker
            ActiveSheet.Columns.AutoFit
                 
            opdater2Andre antalRækker
            MsgBox ("Opdatering af kunder udført")
        End If
    End If
    Exit Sub
   
gåVidere:
'    Stop
End Sub
Private Function findSti()
    findSti = ActiveWorkbook.Path
    If Right(findSti, 1) <> "\" Then
        findSti = findSti + "\"
    End If
End Function
Private Function findAntalRækker()
    With ActiveSheet
        findAntalRækker = ActiveCell.SpecialCells(xlLastCell).Row
    End With
End Function
Private Function findesKunde(kundenavn, sidsterække)
    With ActiveSheet.Range("A1:A" & CStr(sidsterække))
        Set c = .Find(kundenavn, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            findesKunde = c.Row
        Else
            findesKunde = 0
        End If
    End With
End Function
Private Sub sorter(sidsterække)
    ActiveSheet.Range("A1:A" & CStr(sidsterække)).Select

    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End Sub
Private Sub opdater2Andre(sidsterække)
Dim f As Byte
    filSti = findSti
   
    ActiveSheet.Range("A:A").Select
    Selection.Copy
   
    For f = 0 To UBound(filTabel)
        If ActiveWorkbook.Name <> filTabel(f) Then
            Set xFil = CreateObject("Excel.Application")
            With xFil
                .Workbooks.Open filSti + filTabel(f)
                opdaterKunder sidsterække
            End With
        End If
    Next f
   
    Application.CutCopyMode = False
    Range("A1").Select
End Sub
Private Sub opdaterKunder(sidsterække)
    With xFil
        .Sheets("kunder").Activate
        .Range("A1").Select
       
        .ActiveSheet.Paste
        .Columns.AutoFit
        .Range("A1").Select
       
        .ActiveWorkbook.Save
        .Application.Quit
    End With
   
    Set xFil = Nothing
End Sub
Avatar billede petzel Novice
30. december 2009 - 10:53 #6
Tak for hjælpen, det ser ud til at virke..
Nu skal jeg bare ha flyttet det over i mine filer.

Send lige en besked så får du nogle "gryn"

Godt Nytår!!
Avatar billede supertekst Ekspert
30. december 2009 - 11:00 #7
Selv tak - også godt nytår til dig.
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