Avatar billede boligkode Nybegynder
18. september 2007 - 18:54 Der er 2 kommentarer og
1 løsning

Gå til ark/celle hvor fejl opstår VBA

Med denne kode har jeg forsøgt at få makroen til at gå til det ark og celle, hvor der findes fejl. Men det virker ikke. Kan nogen hjælpe.

Hensigten med markroen er, at den skal skjule rækker i udvalgte ark (kode SV i celle U1) når der står FALSK i kolonne A. Den skal dermed gennemløbe alle ark i projektmappe.

Se kode:

Sub Skjul_Alle_Rækker()

On Error GoTo Fejl

førArk = ActiveSheet.Name
førCelle = ActiveCell.Address

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
   
For Each sh In ActiveWorkbook.Worksheets
 
  sh.Cells.EntireRow.Hidden = False
Next
 
For Each sh In ActiveWorkbook.Worksheets

    If sh.Range("U1") = "SV" Then
         
        For Each c In sh.Range("A3:A" & sh.Range("V1").Value).Cells
          If c.Value = Falsk Then
          c.EntireRow.Hidden = True
          End If
        Next
    Else
    MsgBox "Dette ark er ikke forberedt til Skjul/vis." & vbCrLf & "Celle U1 skal være markeret med 'SV'"
 
    End If

Next

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True


Fejl:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
ActiveSheet.Activate
ActiveCell.Select
ActiveCell.Offset(1, 0).Select
Fejlark = ActiveSheet.Name
Fejlcelle = ActiveCell.Address
MsgBox "Der er en fejl i kolonne A (sand/falsk)." & vbCrLf & "Fejlen er i ark: " & Fejlark & " og celle: " & Fejlcelle
End

Sheets(førArk).Activate
Range(førCelle).Select

End Sub
Avatar billede kabbak Professor
18. september 2007 - 23:07 #1
prøv nu

Sub Skjul_Alle_Rækker()

On Error GoTo Fejl
Dim WS As String, RG As String
førArk = ActiveSheet.Name
førCelle = ActiveCell.Address

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
 
For Each sh In ActiveWorkbook.Worksheets

  sh.Cells.EntireRow.Hidden = False
Next

For Each sh In ActiveWorkbook.Worksheets
WS = sh.Name
    If sh.Range("U1") = "SV" Then
       
        For Each c In sh.Range("A3:A" & sh.Range("V1").Value).Cells
        RG = c.Address
          If c.Value = Falsk Then
          c.EntireRow.Hidden = True
          End If
        Next
    Else
    MsgBox "Dette ark er ikke forberedt til Skjul/vis." & vbCrLf & "Celle U1 skal være markeret med 'SV'"

    End If

Next

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True


Fejl:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Worksheets(WS).Activate
Range(RG).Select
ActiveCell.Offset(1, 0).Select
Fejlark = ActiveSheet.Name
Fejlcelle = ActiveCell.Address
MsgBox "Der er en fejl i kolonne A (sand/falsk)." & vbCrLf & "Fejlen er i ark: " & Fejlark & " og celle: " & Fejlcelle
End

Sheets(førArk).Activate
Range(førCelle).Select

End Sub
Avatar billede boligkode Nybegynder
18. september 2007 - 23:22 #2
Supert. Det virker.
Følgende linie kunne dermed slettes: ActiveCell.Offset(1, 0).Select.
Tusind tak. Læg et svar.
Avatar billede kabbak Professor
18. september 2007 - 23:46 #3
et svar ;-))
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