Avatar billede krarup Nybegynder
01. september 2010 - 09:01 Der er 21 kommentarer og
1 løsning

Automatisk fordel data på ark2 og ark3

Hej Eksperter.
Jeg har et problem som jeg håber i kan hælpe mig med.
Jeg har et ark hvor der er godt ca. 500 rækker. I hver række står der i kolone A enten 21 eller 22. Jeg kunne så godt tænke mig en formel der kigge på om der står 21 eller 22. Hvis der står 21 skal hele rækken kopieres ind i ark 2, og hvis der står 22 skal hele rækken kopieres ind i ark 3.

Jeg har kigget på en løsning der benytter lopslag, men ved lopslag er det vist kun muligt og retunere en enkelt celler og ikke hele rækken.

Håber der er nogen der kender en let løsning på ovenstående!
Avatar billede supertekst Ekspert
01. september 2010 - 09:18 #1
Kunne en makro være en mulighed?
Avatar billede krarup Nybegynder
01. september 2010 - 09:27 #2
ja det kunne være lige så fint som en almindelig formel.
Avatar billede supertekst Ekspert
01. september 2010 - 10:47 #3
Rem Koden indsættes under Ark1 /højreklik / Vis programkode
Rem Koden kan aktiveres fra Ark1 / Alt+F8 / fordelPåArk / Afspil
Rem Evt. forbindes med en knap

Dim antalRæk As Long
Dim a1 As Worksheet, ræk1 As Long
Dim a2 As Worksheet, ræk2 As Long
Dim a3 As Worksheet, ræk3 As Long
Public Sub fordelPåArk()
    Set a1 = ActiveWorkbook.Sheets("Ark1")
    Set a2 = ActiveWorkbook.Sheets("Ark2")
    Set a3 = ActiveWorkbook.Sheets("Ark3")

Rem Antal rækker på ark1
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
   
Rem Rækkenr til ark2 / 3
    ræk2 = 1
    ræk3 = 1

    Application.ScreenUpdating = False
   
    For ræk1 = 1 To antalRæk
        Rows(ræk1).Select
        Selection.Copy
       
        If Range("A" & ræk1) = 21 Then
            a2.Select
            ActiveSheet.Rows(CStr(ræk2)).Select
            Selection.Insert Shift:=xlDown
            Application.CutCopyMode = False
            ræk2 = ræk2 + 1
        Else
            a3.Select
            ActiveSheet.Rows(CStr(ræk3)).Select
            Selection.Insert Shift:=xlDown
            Application.CutCopyMode = False
            ræk3 = ræk3 + 1
        End If
       
        a1.Select
        Application.CutCopyMode = False
    Next ræk1
   
    Application.ScreenUpdating = True
   
    MsgBox "Fordeling udført"
End Sub
Avatar billede krarup Nybegynder
01. september 2010 - 11:02 #4
Hold op hvor det virker :)

Mange tak for hjælpen! Kast et svar
Avatar billede krarup Nybegynder
01. september 2010 - 11:02 #5
hov, så ikke du havde lavet det som et svar.
Men endnu en gang tak for hjælpen!
Avatar billede supertekst Ekspert
01. september 2010 - 11:22 #6
Ok - selv tak
Avatar billede krarup Nybegynder
10. september 2010 - 13:06 #7
Lige et kort tillægsspørgsmål, som jeg håber du kan svare på. hvis der i sorteringsarket bliver tilføjet endnu kategori, eksempelvis 23, hvordan får jeg denne sorteret ligesom 21 og 22?
Avatar billede supertekst Ekspert
10. september 2010 - 13:24 #8
Er 23 den eneste tilføjelse - kommer 24 også?

Hviskun 23 er det rimeligt enkelt - vender tilbage med koden - ellers en lidt anden situation - men også mulig.
Avatar billede krarup Nybegynder
10. september 2010 - 13:28 #9
Det kan desværre sagtens tænkes at 24 kommer på et tidspunkt :(
Avatar billede supertekst Ekspert
10. september 2010 - 13:33 #10
ok - ser lige på det..
Avatar billede supertekst Ekspert
10. september 2010 - 13:42 #11
Kunne du forestille dig, at arkene til fordeling på forhånd fik ændret navn til værdien?

Så vil det gøre alting lettere..
Avatar billede krarup Nybegynder
10. september 2010 - 13:46 #12
Mener du at arket hvor 22 bliver sorteret ud på hedder "22"? i såfald ville det ikke være noget problem.
Avatar billede supertekst Ekspert
10. september 2010 - 13:53 #13
Ja - det mener jeg - så når der kommer et nyt nummer - så opretter du blot et ark med dette nummer som navn..
Avatar billede krarup Nybegynder
10. september 2010 - 13:56 #14
Det ville faktisk være en rigtig fed feature :)
Avatar billede supertekst Ekspert
10. september 2010 - 14:09 #15
er på vej...
Avatar billede supertekst Ekspert
10. september 2010 - 14:13 #16
NB Arkene behøver ikke stå i rækkefølge. Er et ark ikke oprettet kommer deren melding og der fortsættes med næste ark.


Rem version 2
Rem =========
Rem Koden indsættes under Ark1 /højreklik / Vis programkode
Rem Koden kan aktiveres fra Ark1 / Alt+F8 / fordelPåArk / Afspil
Rem Evt. forbindes med en knap

Dim antalRæk As Long
Dim a1 As Worksheet, ræk1 As Long, arkNr As String
Dim ax As Worksheet, rækx As Long
Public Sub fordelPåArk()
    Set a1 = ActiveWorkbook.Sheets("Ark1")

Rem Antal rækker på ark1
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
   
    Application.ScreenUpdating = False
   
    For ræk1 = 1 To antalRæk
        Rows(ræk1).Select
        Selection.Copy
       
Rem hent nr fra kolonne A
        arkNr = Range("A" & ræk1)

Rem aktiver det pågældende ark
On Error GoTo fejl

        Set ax = ActiveWorkbook.Sheets(arkNr)
        ax.Select
       
        If arkNr <> "" Then
            rækx = ActiveCell.SpecialCells(xlLastCell).Row
            If rækx = 1 And ax.Range("A1") <> "" Then
                rækx = rækx + 1
            End If
           
            ActiveSheet.Rows(CStr(rækx)).Select
            Selection.Insert Shift:=xlDown
            Application.CutCopyMode = False
           
        End If
        a1.Select
        Application.CutCopyMode = False
    Next ræk1
   
    Application.ScreenUpdating = True
   
    MsgBox "Fordeling udført"
    Exit Sub
   
fejl:
    If arkNr <> "" Then
        MsgBox "Ark " & arkNr & " er ikke oprettet"
    End If
   
    Application.CutCopyMode = False
    arkNr = ""
    Resume Next
End Sub
Avatar billede krarup Nybegynder
10. september 2010 - 14:30 #17
Det spiller altså bare!

Endnu engang tusinde tak for hjælpen!
Avatar billede supertekst Ekspert
10. september 2010 - 14:39 #18
Fint - selv tak..
Avatar billede srsten Nybegynder
22. april 2013 - 18:27 #19
Jeg har med stor glæde prøvet at arbejde videre med dit forslag 2, hvor makroen tager højde for, at der kan komme x antal ark - i mit tilfælde årstal.

Jeg kan bare ikke få to ting til at fungere:

1) Hvordan får jeg data ind, så de starter på række 6 i de ark, de skal fordeles på?

2) Jeg har oprettet en dataforbindelse til en underliggende database, hvor brugeren løbende skal kunne opdatere data fra - så hvordan får jeg overskrevet de data, der er fordelt, når der sker en ny opdatering af data?

På forhånd tak for hjælpen
Avatar billede supertekst Ekspert
22. april 2013 - 23:18 #20
Jeg tror du skal oprette et nyt spørgsmål - det er jo trods alt 1½ år siden - kniber med tiden..
Avatar billede supertekst Ekspert
22. april 2013 - 23:29 #21
Nej - > 2½ år
Avatar billede srsten Nybegynder
23. april 2013 - 07:24 #22
Gør jeg :-)
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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