Avatar billede ilcapitano Nybegynder
03. november 2010 - 11:26 Der er 5 kommentarer og
1 løsning

kopier hele rækken fra et ark til et andet, hvis condition passer

Hej Eksperter,

jeg får hver måned en excel fil, hvor der er mange ark. de første 20 ark, er annoncør navne med information på hvor meget de har leveret og det sidste ark, er en samlet oversigt over alle annoncørene, med alle deres leveringer. Min opgave er så at gå ind i det sidste ark, og tage annoncører ud med alle leveringerne, for derefter at kopierer dem til deres "eget ark"

Jeg tænker at jeg må kunne stå i annoncørens ark, og kigge i det overordnede ark, og få returneret hele række, hvis der er et match, - det ville sparer mig for enormt meget tid :D

Jeg ser meget frem til at høre fra jer, og skriv endelig hvis jeg skal uddybe.
Avatar billede supertekst Ekspert
03. november 2010 - 11:47 #1
En makro ville nok kunne udføre det automatisk. Hvad er conditionen?

Og så velkommen til...
Avatar billede finb Ekspert
03. november 2010 - 11:51 #2
Jeg går ud fra, at der i din månedlige fils (herefter kaldet MD_01.xls, MD_02.xls, osv.) sidste regneark (filens hovedark) er konsolideret/samlet månedens aktivitet for hver sælger.

Mener du: Du vil stå i MDL.xls og fordele annoncørerne ud i deres respektive filer (her kaldet ANN_O1, ANN_02, osv.), hvis de eksisterer i MDL.xls ?

Er det dette, du mener ?

Mvh finb
Avatar billede ilcapitano Nybegynder
03. november 2010 - 12:08 #3
Hej,

det var hurtigt der kom svar :)

@supertekst, jeg tror også en macro vil kunne hjælpe, men har ikke fundet en der virker ordentligt, konditionen er annoncørs navn.

@finb, md_01.xsl indeholder i dag en masse ark med annoncørens navne og MD_02.xsl, indeholder en oversigt over hvor meget hver annoncør har leveret i forskellige kategorier. Meningen er, idag, at jeg tager finder annoncøren i md_02.xsl, der optræder flere gange, da han kan levere i flere kategorier, og copy/paster det over i md_01.xsl under han ark.
jeg tænker jeg kan stå i md_01.xsl under arket for en annoncør, og søge i md_02.xsl, og hvis annoncørens navn eksistere, så kopierer den automatisk hele rækken ind i arket (md_01.xsl)
Avatar billede supertekst Ekspert
03. november 2010 - 15:28 #4
Hvis du sender en lille model af filer - så skal jeg prøve at skrive makroen.

@-adresse under min profil.
Avatar billede ilcapitano Nybegynder
04. november 2010 - 13:44 #5
Hej Peter,

tak super hjælp :)
Avatar billede supertekst Ekspert
04. november 2010 - 14:03 #6
Const alleSti = "C:\Documents and Settings\pb.KHNBPB\Skrivebord\923015_LeadsOpdatering\MedTekst\"
Dim alleXls As Object
Const alleFilNavn = "alle_leads.xls"                     

Const enkelteSti = "C:\Documents and Settings\pb.KHNBPB\Skrivebord\923015_LeadsOpdatering\MedTekst\"
Dim enkelteXls As Object
Const enkelteFilNavn = "med_de_enkelte_annoncører.xls"     

Dim antal As Long
Public Sub opdaterAnnoncører()
On Error GoTo lukAlle
    Application.ScreenUpdating = False
   
    antal = 0
   
    Set enkelteXls = ActiveWorkbook
    enkelteXls.Application.DisplayAlerts = False
   
    Set alleXls = CreateObject("Excel.Application")
    With alleXls
        .Workbooks.Open alleSti + alleFilNavn
'        .Visible = True
       
        traverserAlle
    End With
   
lukAlle:
    alleXls.Application.DisplayAlerts = False
    alleXls.Application.Quit
    Set alleXls = Nothing
   
    Set enkelteXls = Nothing
    Application.ScreenUpdating = True
   
    MsgBox ("Opdatering afsluttet - antal: " & CStr(antal))
End Sub
Private Sub traverserAlle()
Dim alleRækker As Long, ræk As Long, faneNr As String
    With alleXls
        .Sheets(1).Activate
       
        alleRækker = .ActiveCell.SpecialCells(xlLastCell).Row
   
        For ræk = 4 To alleRækker
            If .Range("D" & ræk) <> "" Then
                faneNr = .Range("D" & ræk)
                               
                .Rows(CStr(ræk) & ":" & CStr(ræk)).Select
                .Selection.Copy

                opdaterAnnoncør faneNr
            End If
   
        Next ræk
    End With
End Sub
Private Sub opdaterAnnoncør(faneNr)
Dim ræk As Long, antalRækker As Long
On Error GoTo fejl

    With enkelteXls
        .Sheets(faneNr).Activate
               
        For ræk = 3 To 65000
            If .ActiveSheet.Range("A" & ræk) = "" Then
                antal = antal + 1
                Rows(CStr(ræk) & ":" & CStr(ræk)).Select
                ActiveSheet.Paste
               
                Application.CutCopyMode = False
                Exit Sub
            End If
        Next ræk
    End With
    Exit Sub
   
fejl:
    MsgBox "Arket: " & faneNr & " findes ikke!"
End Sub
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