31. august 2021 - 16:06Der er
10 kommentarer og 2 løsninger
Automatisk gemme rækker i excel afhængig af celle værdi
Hvis jeg f.eks indtaster "Service" i B3, vil jeg gerne have at række 3 bliver gemt. Kan dette lade sig gøre uden at jeg selv skal "run" marcro og i så fald hvorledes vil koden se ud?
Jeg forestiller mig at hver gang jeg indtaster "Service" i en given række i kollonne B, så gemmes den række som jeg indtaster "Service" i når jeg trykker enter. Er det muligt?
Ja rækken skal skjules, hvis jeg i en given kolonne skriver et bestemt ord skal rækken hvor jeg indtaster ordet skjules. Jeg har googlet mig til en VBA kode der virker, men jeg skal selv starte macroen. Det vil jeg gerne om Macroen kunne gøre automatisk.
Det virker :-). Ved du også hvorledes jeg kan lave om således at jeg ikke gemmer rækker afhængig af værdien i A21? Altså istedet for taste ordet Service i Macroen, såeldes hver gang jeg indtaster Service bliver rækken gemt uden at reffere til en celle?
Value = Range("A21").Value Then Cells - Kan jeg istedet for Range("A21") blot indskrive et ord? (Det er dog et mindre problem. Jeg kan leve med hvordan det fungere nu.
Jeg tror ikke helt jeg forstår, men hvis du lige nu har "service" til at stå i A21 og gerne vil have at den ikke henter værdien fra A21, men i stedet at det står i makroen, så er det nok bedst jeg ser hele din programmering så vi ikke dummer os.
Ud fra den ene linje du har givet nu virker det til at du kan blot skrive "Service" i stedet for hele Range("A21").Value (vigtigt du husker anførselstegn). Det kan dog være det laver fejl et sted.
NB. Vedr. Macroen for "hide rows" virker det fint, men... Det hele virker men langsomt. Jeg bruger nedenstående Macro og har tilføjet de 2 linier med Application.ScreenUpdating og det hjælper lidt, men stadig tager det 2 - 3 sekunder før jeg kan komme videre hver kan jeg laver noget/klikker i arket. Nogle gode ideer?
Hvis jeg nedsætter de 211 rækker går det naturligvis hurtigere, men jeg har 211 rækker hvor hver enkelt af rækkerne skal kunne gæmmes.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Men er der en grund til at du løber dem igennem alle 211 hver gang? Skal den ikke blot kigge på den række du netop har rettet i? Kopierer du dataen ind eller retter du enkeltvis?
Jeg er lidt i tvivl om hvad den betragter som activecell, men der må være en mulighed for at vurdere om ændring er indenfor din "tabel" og om cellen ligger i ColNum
Så noget med activecell.column = colnum eller noget i den stil som første check.
Ja, der er 211 rækker og nogle af dem skal sættes N/A og derefter gemmes. Ja, jeg sætter kun N/A i en celle/ Række ad gangen og kan jeg undgå at den ser alle rækkerne igennem hver gang vil det være super.
Måske noget i denne stil - du må selv lige tilrette med dine variable:
If ActiveCell.Column = 9 Then If ActiveCell.Row >= 11 And ActiveCell.Row <= 266 Then If ActiveCell.Value = "N/A" Then Rows(ActiveCell.Row).Hidden = True End If End If End If
Mange tak for jeres input :-) Det er en stor hjælp!
Synes godt om
Ny brugerNybegynder
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.