Avatar billede RazzP Mester
10. januar 2019 - 12:39 Der er 2 kommentarer og
2 løsninger

Indsæt værdi i filteret rækker vba

Hej.

Jeg søger et stykke vba til at indsætte en værdi i filteret rækker.
Jeg filtrer på fx. kolonne D og skal så have sat et "1" tal i kolonne P i alle de rækker der er filteret, hvordan gør jeg det?
Avatar billede jens48 Ekspert
10. januar 2019 - 14:51 #1
Det kunne for eksempel gøres med denne lille makro:

Sub Indsaet()
Dim LastRow As Integer
LastRow = ActiveSheet.UsedRange.Rows.Count
For x = 2 To LastRow
If Rows(x).Hidden = False Then Cells(x, 16) = 1
Next
End Sub
Avatar billede Dan Elgaard Ekspert
10. januar 2019 - 17:01 #2
Uuuuuuh, pas MEGET på, at definere variabler som 'Integer' - ISÆR, så man arbejder med rækker!

En integer variabel kan ikke holder værdier større end 32768, og der er over 1 million rækker i Excel!
Din kode vil give fejl, hvis 'UsedRange' er på mere en 32768 rækker!

Desuden findes 'Integer' ikke længere i VBA, og er blot bibeholdt for bagug kompatibilitet - internt i VBA-maskinen opfattes 'Integer' som en 'Long', og derfor bliver koden faktisk også hurtigere ved, at definere variablen som 'Long' (der både er hurtigere, og som kan klare samtlige af Excels rækker).

Kort og kort: Brug ALDRIG 'Integer', men ALTID 'Long'.
Avatar billede jens48 Ekspert
10. januar 2019 - 17:16 #3
Hej Dan,
Tak for din feedback
Avatar billede RazzP Mester
11. januar 2019 - 10:12 #4
Mange tak for hjælpen begge to, det virker som det skal
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