Avatar billede lail Forsker
06. januar 2020 - 10:26 Der er 12 kommentarer

VBA hjælp

Jeg har nogle områder jeg folder ind og ud
Så snart jeg åbner et nyt område =folder ud

Lukker jeg andet område jeg måtte have åbent - så der altid kun er et område åbent af gangen som udgangspunkt

Men alle de områder der foldes ind har jeg stående mange steder (der er i alt 10-15 områder. der gentager sig selv.

Kan jeg ikke skrive det et sted -  og så henvise til dette - så jeg ikke skal ind og rette i 10-15 forskellige makroer - i tilfælde af at området bliver større eller mindre

Sub fold_forudætninger_UD()
'
' fold_forudætninger_UD Makro
'
Application.ScreenUpdating = False
'folder basis ind
    Rows("6:14").Select
    Selection.EntireRow.Hidden = True
'folder Teams ind
    Rows("31:55").Select
    Selection.EntireRow.Hidden = True
   
'folder forudsætnonger UD
    Rows("17:28").Select
    Selection.EntireRow.Hidden = False
   
   
    Range("E18").Select ' står i første celle i området
    Application.ScreenUpdating = True
06. januar 2020 - 11:53 #1
Navngivning af områder eller NamedRanges som det også hedder... er hvor jeg ville tage fat..

F.eks. kan du navngive i dit Excel ark
A6:A14 som  group_basis
A31:A55 som group_temas

i VBA kan du lave variabler der holder navnene - laves i toppen af en modul
public sRNG_GROUP_BASIS as string = "group_basis"
public sRNG_GROUP_TEAMS as string = "group_teams"

I koden kan du
Range(sRNG_GROUP_BASIS).EntireRows.Hidden = True/False

Alle dine select kan du slette - på nær den sidste, som f.eks. kan se således ud
Range(sRNG_GROUP_TEAMS).cells(1,1).Select
Avatar billede Jan K Ekspert
06. januar 2020 - 14:52 #2
# 1: Vil navngivne områder ikke give problemer, hvis der kommer flere rækker/kolonner til, som tilføjes uden for det navngivne område?
Avatar billede store-morten Ekspert
06. januar 2020 - 16:19 #3
Enig i at: Navnestyring må kunne bruges. Vil dog foretrække det lidt mere enkelt.

Makro til at oprette og ændre ved udvidelse:
Sub Opret_Rediger_Områder()
                            'Name: (basis)    og område: (=Ark1!R6:R14)
    ActiveWorkbook.Names.Add Name:="basis", RefersToR1C1:="=Ark1!R6:R14"
    ActiveWorkbook.Names.Add Name:="Teams", RefersToR1C1:="=Ark1!R31:R55"
    ActiveWorkbook.Names.Add Name:="forudsætninger", RefersToR1C1:="=Ark1!R17:R28"
   
    'Flere kan tilføjes, og hvis Name ikke ændres, kan område tilpasset løbende.
End Sub

Og Makro til "Fold ud":
Sub fold_forudsætninger_UD()
Application.ScreenUpdating = False
'folder basis ind
    Range("basis").EntireRow.Hidden = True
'folder Teams ind
    Range("Teams").EntireRow.Hidden = True
'folder forudsætninger UD
    Range("forudsætninger").EntireRow.Hidden = False
'stå i første celle i området
    Range("E18").Select
    Application.ScreenUpdating = True
End Sub
Avatar billede lail Forsker
07. januar 2020 - 14:18 #4
store-morgen

Den fejler i Range("basis").EntireRow. Hidden  = True
Avatar billede store-morten Ekspert
07. januar 2020 - 14:37 #5
Og du har kørt den første kode?
Avatar billede lail Forsker
07. januar 2020 - 14:49 #6
Ja 
Det er korrekt forstået at jeg med det øverste navngiver områderne - dvs jeg skal ikke fysysk nangive nogle områder i excelfilen?

og
RefersToR1C1:="=Ark1!R6:R14" 

står R for Row??

Ved godt det sikkert er dumme spørgsmål ;O)

LN
Avatar billede lail Forsker
07. januar 2020 - 14:53 #7
fejlmeddelelsen er

Run-time error'1004':

Method 'Range' of object '_Global' failed
Avatar billede store-morten Ekspert
07. januar 2020 - 15:04 #8
Ja, det er rigtigt.
Ja: RefersToR1C1:="=Ark1!R6:R14"  Række 6 til 14 på Ark1
Se: https://www.dropbox.com/s/jdhuz7yhz6np7c2/foruds%C3%A6tninger.xlsm?dl=0
Avatar billede store-morten Ekspert
07. januar 2020 - 15:10 #9
Det går galt hvis du ikke har Ark1 men døbt  Arket om!

Så skal du tilpasse koden:

Sub Opret_Rediger_Områder()
                            'Name: (basis)    og område: (=Ark1!R6:R14)
    ActiveWorkbook.Names.Add Name:="basis", RefersToR1C1:="=Ark1!R6:R14"

Ark1 rettes til det faneblad du vil skjule på.
Avatar billede lail Forsker
08. januar 2020 - 09:43 #10
ActiveWorkbook.Names.Add Name:="basis", RefersToR1C1:="=Oplysninger!R6:R14"

Men fejler stadig samme sted
Avatar billede lail Forsker
08. januar 2020 - 09:56 #11
Avatar billede store-morten Ekspert
08. januar 2020 - 10:01 #12
Den kan ikke hentes
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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