Avatar billede vegaz Juniormester
22. marts 2015 - 22:57 Der er 10 kommentarer og
1 løsning

VBA; Vælge specifik data og overføre til andet Excel ark

Hej Eksperter

Jeg har forgæves prøvet at lave mig en makro (og søgt Google tyndt), hvor jeg i f.eks. kolonne A kan vælge forskellige celler og så køre makroen, hvor efter nogle specifikke celler fra disse cellers rækker bliver kopieret over i et andet ark til en specifik placering. Håber det giver mening.

Eksempel:
Altså hvis jeg i A1, A2, A3 og kører makroen, så bliver data fra følgende celler kopieret over i et nyt ark:

A1, A2, A3 --> B1, B2, B3
F1, F2, F3 --> D1, D2, D3
E1, E2, E3 --> F1, F2, F3
osv. så jeg selv kan ændre det efter behov.

Jeg ligger inde med to "test" data ark (de rigtige placeringer, etc.), det giver måske mere mening at se det.
God mandag :)
23. marts 2015 - 10:10 #1
Kan ikke gennemskue logikken i dine kolonner, men nedenstående kopierer det markerede til Ark2 - så har du lidt at arbejde videre på (håber jeg)

Sub KopiValgte()
    Dim c As Range
    For Each c In Selection.Cells
        c.Copy Destination:=Worksheets("Ark2").Range("B" & c.Row)
    Next
End Sub
Avatar billede vegaz Juniormester
23. marts 2015 - 10:55 #2
Hej Thor

Tak for dit svar.
Det er fordi jeg har et stort master data sheet, hvor jeg behøver at trække noget specifikt data ud og kopiere det ind i en ny workbook (og ikke ark).

Så idéen var at jeg kunne markere de firmanavne, i f.eks. kolonne A, jeg gerne ville ha kopieret data fra, over i et nyt excel ark.
Altså vil det give mening hvis jeg kan markere de firmanavne jeg skal bruge og så kopierer makroen præcis det specifikke data fra de respektive kolonner/celler som jeg skal bruge.

Altså hvis jeg markerer A2 og kører makroen, så skal den kopiere data fra A2, F2 og E2 og paste disse data ind i et nyt ark i B2, D2, F2.
Håber det giver bedre mening?
23. marts 2015 - 11:06 #3
Så når du skriver ark betyder det fil/workbook?
Hvad kalder du arkfaner inde i en fil/workbook?

Findes denne nye fil, eller skal den oprettes af makroen?
Avatar billede vegaz Juniormester
23. marts 2015 - 11:25 #4
Hej igen

Jeg har en fil/workbook med et ark(/sheet) som jeg vil ha data kopieret fra ind i en ny excel fil, som allerede er sat op med headers osv.

WAVE MDS.xlsm er hovedfilen
CIF.xlsm er filen der skal kopieres til
23. marts 2015 - 11:28 #5
Sub KopiData()
    Dim wkbNew As Workbook
    Dim wkbCurrent As Workbook
    Set wkbCurrent = ActiveWorkbook
    Set wkbNew = Workbooks.Add
   
    wkbCurrent.ActiveSheet.Range("A" & Selection.Row).Copy Destination:=wkbNew.Worksheets(1).Range("B" & Selection.Row)
    wkbCurrent.ActiveSheet.Range("F" & Selection.Row).Copy Destination:=wkbNew.Worksheets(1).Range("D" & Selection.Row)
    wkbCurrent.ActiveSheet.Range("E" & Selection.Row).Copy Destination:=wkbNew.Worksheets(1).Range("F" & Selection.Row)
End Sub
Avatar billede vegaz Juniormester
23. marts 2015 - 12:14 #6
Tak det løste jo lidt af det :)

Men selvom jeg vælger flere rækker i kolonne A, så kopierer den kun første "row".

Skal jeg bruge et for each, som du postede ovenfor?

Noget lignende?


Sub KopiData()
    Dim wkbNew As Workbook
    Dim wkbCurrent As Workbook
    Set wkbCurrent = ActiveWorkbook
    Set wkbNew = Workbooks.Add
    Dim c As Range

For Each c In Selection.Cells
    wkbCurrent.ActiveSheet.Range("A" & Selection.Row).Copy Destination:=wkbNew.Worksheets(1).Range("B" & Selection.Row)
    wkbCurrent.ActiveSheet.Range("F" & Selection.Row).Copy Destination:=wkbNew.Worksheets(1).Range("D" & Selection.Row)
    wkbCurrent.ActiveSheet.Range("E" & Selection.Row).Copy Destination:=wkbNew.Worksheets(1).Range("F" & Selection.Row)
Next
End Sub
23. marts 2015 - 12:22 #7
Ja, det er en god plan

For Each c In Selection.Cells
    wkbCurrent.ActiveSheet.Range("A" & c.Row).Copy Destination:=wkbNew.Worksheets(1).Range("B" & c.Row)
    wkbCurrent.ActiveSheet.Range("F" & c.Row).Copy Destination:=wkbNew.Worksheets(1).Range("D" & c.Row)
    wkbCurrent.ActiveSheet.Range("E" & c.Row).Copy Destination:=wkbNew.Worksheets(1).Range("F" & c.Row)
Next
Avatar billede vegaz Juniormester
23. marts 2015 - 12:30 #8
Jeg ville gerne acceptere dit svar, men det virker ikke helt.

Jeg får stadig kun den første linie i kolonne A´s data.
23. marts 2015 - 12:36 #9
Sub KopiData()
    Dim wkbNew As Workbook
    Dim wkbCurrent As Workbook
    Set wkbCurrent = ActiveWorkbook
    Dim valg As Range
    Set valg = Selection
    Set wkbNew = Workbooks.Add
   
    Dim c As Range
   
    For Each c In valg.Cells
        wkbCurrent.ActiveSheet.Range("A" & c.Row).Copy Destination:=wkbNew.Worksheets(1).Range("B" & c.Row)
        wkbCurrent.ActiveSheet.Range("F" & c.Row).Copy Destination:=wkbNew.Worksheets(1).Range("D" & c.Row)
        wkbCurrent.ActiveSheet.Range("E" & c.Row).Copy Destination:=wkbNew.Worksheets(1).Range("F" & c.Row)
    Next

End Sub
Avatar billede vegaz Juniormester
23. marts 2015 - 14:34 #10
Perfekt. Mange tak, Thor.

Hvis jeg gerne vil ha dataen til at starte med at blive pastet til række 13, kan du hjælpe med det?
Avatar billede vegaz Juniormester
23. marts 2015 - 16:46 #11
Har tilføjet .Cells(13, 1).Range("A" & c.Row)

wkbCurrent.ActiveSheet.Range("A" & c.Row).Copy Destination:=wkbNew.Worksheets(1).Cells(13, 1).Range("A" & c.Row)
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