14. november 2016 - 20:11Der er
15 kommentarer og 2 løsninger
Vælge varer på Ark 1
Hej , jeg pusler med at lave et program hvor man kan vælge nogle varer på ark 1 og så få de valgte varer på Ark 2, startende på linie 1 , således at varerne kommer efter hinanden i Ark 2:
Ark 1 ser således ud: A= sæt kryds for den varer som man vælger B = biled af varen C = beskrivelse af varen D = varenummer E = pris
Der kan være flere hundrede linier Eks. hvis jeg vælger varer i A ( med kryds ) 1, samt A 4, så skal de to varer komme frem med billed,beskrivelse,nummer og pris på Ark 2 Hvis X i A1 og A4 fjernes så skal varene også fjernes fra Ark 2 Er der en løsning på sådan et projekt ?
Det kan løses med en hjælpekolonne samt filtrering. Der er blot store problemer med sletning af billeder. Billeder skal slettes ved direkte aktivering på billederne. Et billed af gangen.
Lav i stedet en henvisning til et andet ark hvor billedet indlægges. LAv eventuelt en makroknap der aflæser hvenvisningen og hopper til stedet.
Prøv med denne makro. Højreklik på fanebladet (Ark1) og indsæt den under koder. Makroen kører hver gang der ændres i kolonne A. Maks antal valgte varer er 100, men det kan let rettes i linie 4, hvis nødvendigt.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A:A")) Is Nothing Then LastRow = Cells(65356, 3).End(xlUp).Row Worksheets("Ark2").Range("A2:E101").Delete For Each Shape In Worksheets("Ark2").Shapes Shape.Delete Next Y = 2 For x = 2 To LastRow If Cells(x, 1) = "X" Or Cells(x, 1) = "x" Then Range(Cells(x, 2), Cells(x, 5)).Copy Destination:=Worksheets("Ark2").Cells(Y, 1) Y = Y + 1 End If Next End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A:A")) Is Nothing Then LastRow = Cells(65356, 3).End(xlUp).Row Worksheets("Ark4").Range("A2:E101").Delete For Each Shape In Worksheets("Ark4").Shapes Shape.Delete Next Y = 2 For x = 2 To LastRow If Cells(x, 1) = "X" Or Cells(x, 1) = "x" Then Range(Cells(x, 2), Cells(x, 5)).Copy Destination:=Worksheets("Ark4").Cells(Y, 1) Y = Y + 1 End If Next End If End Sub
Og så lige den sidste Kan man tage de celler som man har krydset af i Ark3 og få indholdet fra de afkrydsede linier over på ark2 eksempel: Står i ark3 linie 38 og 39 , de to linier vil jeg gerne have over på Ark2 fra linie A 41 og nedaf , afhængig af hvor mange linier jeg afkrydser i Ark3
Samt evt andre afkrydsede linier i ark 3 til Ark2 linie 53 OSV.
Vil det sige at de både skal over på Ark4 og Ark2? Jeg forstår ikke helt det med linje 41 og linje 53. Skal det ikke blot starte med linje 41 og så blot fylde op nedefter?
jeg har grupperet Ark3 i 20 grupper, når jeg så vælger varer i en bestemt gruppe så skulle jeg gerne have en oversigt over de varer jeg har valgt, på Ark 2
Eksempelvis, vælger jeg varer i gruppe 3 Ark 3 som går fra linie 38 til 47 skulle jeg gerne have en oversigt på Ark2 , Gruppe 3 går fra linie A41 os så skulle de varer som jeg har valgt gerne komme på linje 41 og nedaf på Ark 2
Den samlede valgte oversigt skulle stadig gerne komme på Ark4
Det er meningen at der skulle kunne overføres i alt 20 grupper til Ark2 Jeg havde forestillet mig at den samme formel bare skulle gentages 20 gange , så kan jeg selv definere hvor de skulle sættes ind på ark 2
Jeg kan stadig ikke se hvordan du ønsker det, så jeg har sat et par kommentarer på makroen. Så kan du eventuelt selv modificere den.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A:A")) Is Nothing Then 'Aktivering når der skrives i kolonne A LastRow = Cells(65356, 3).End(xlUp).Row 'Rækken med sidste celle i kolonne C findes Worksheets("Ark4").Range("A2:E101").Delete 'Data i Ark4 slettes For Each Shape In Worksheets("Ark4").Shapes 'Billeder i Ark4 slettes (loop i 3 linier) Shape.Delete Next Y = 2 'første række hvor data indsættes i Ark4 For x = 2 To LastRow ' Rækker fra 2 til sidste række på Ark3 undersøges for "X" eller "x" If Cells(x, 1) = "X" Or Cells(x, 1) = "x" Then Range(Cells(x, 2), Cells(x, 5)).Copy Destination:=Worksheets("Ark4").Cells(Y, 1) 'hvis "X" eller "x", så kopieres række x, kolonne B til E til Ark4 række Y, kolonne A Y = Y + 1 'Y forøges med 1 End If Next End If End Sub
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.