01. september 2010 - 09:01Der 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!
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
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?
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
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?
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.