Avatar billede Loaduce Nybegynder
19. december 2013 - 09:29 Der er 4 kommentarer

Hjælp til makro (laver fejl hvis jeg skjuler et ark, som den bruger)

Hej Eksperter,

Jeg har lykkedes med at lave en makro, som er serdeles velfungerende, dog er der et lille men som nu begynder at vise sig. Jeg skal nu til at videre give regnearket til mine kollegaer og i den forbindelse vil jeg gerne forsimple det så meget som muligt.

En kort intro til hvad arket kan:

Ved aktivering gemmer makroen forskellige udsnit af de indtastede data i forskellige setup's og i PDF. format i de respektive mapper. Hvor efter arket gendannes til oprindeligt setup.

Ovenstående gøres ved at jeg har et sheet, som benyttes som regnearkiv. Desværre virker makroen ikke længere hvis jeg vælger at skjule dette sheet.

Har i nogle ideer?

På forhånd tak
Avatar billede kabbak Professor
19. december 2013 - 10:05 #1
kan du vise din kode og fortæl hvilket ark du skjuler
Avatar billede supertekst Ekspert
19. december 2013 - 11:30 #2
Hvor er VBA-koden placeret?
Avatar billede Loaduce Nybegynder
20. december 2013 - 09:23 #3
1 & 2#
Sådan her ser koden ud(se neden for), dog har jeg fjernet det meste af stien.
Jeg ved godt det ikke er en på nogle måder lækker og optimeret kode. Så hvis i har nogle optimerings forslag er de meget velkommen! f.eks. sådan at jeg ikke behøver at benytte to ark.

Det ark hvor kode  er tilknyttet hedder "Ledninger" og det som jeg ikke kan skjule uden det laver error hedder "Backup-regneark"

VBA-kode:

Sub Macro1()
'1.brønd

    Range("C6:O12").Select
    Selection.Copy
    Sheets("Backup-regneark").Select
    Range("B2").Select
    ActiveSheet.Paste
    Sheets("Ledninger").Select
    Range("J3:L3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Backup-regneark").Select
    Range("B10").Select
    ActiveSheet.Paste
    Sheets("Ledninger").Select
    Range("D9:O12").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("K3:L3").Select
    Selection.ClearContents
    '1. brønd klar til at gemme
   
   
    'PDF
  nr = [Ledninger!J3]
  nr1 = [Ledninger!K3]
  nr2 = [Ledninger!L3]
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "E:\Br. " & nr & " " & nr1 & " " & nr2 & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
       
'Excel
Dim part1 As String
Dim part2 As String
Dim part3 As String
Dim part4 As String

part1 = Range("I3").Value
part2 = Range("J3").Value
part3 = Range("K3").Value
part4 = Range("L3").Value

ActiveWorkbook.SaveAs Filename:= _
"E:\" & part1 & " " & part2 & " " & part3 & " " & part4 & " .xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

'2.brønd

    Sheets("Backup-regneark").Select
    Range("F8").Select
    Selection.Copy
    Sheets("Ledninger").Select
    Range("G8").Select
    ActiveSheet.Paste
    Sheets("Backup-regneark").Select
    Range("H8:I8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ledninger").Select
    Range("I8:J8").Select
    ActiveSheet.Paste
    Sheets("Backup-regneark").Select
    Range("D10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ledninger").Select
    Range("J3").Select
    ActiveSheet.Paste
    '2.brønd klar til at gemme
   

 
    'PDF
    nr3 = [Ledninger!J3]
  nr4 = [Ledninger!K3]
  nr5 = [Ledninger!L3]
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "E:\Br. " & nr3 & " " & nr4 & " " & nr5 & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
       
'Excel
Dim part5 As String
Dim part6 As String
Dim part7 As String
Dim part8 As String

part5 = Range("I3").Value
part6 = Range("J3").Value
part7 = Range("K3").Value
part8 = Range("L3").Value

ActiveWorkbook.SaveAs Filename:= _
"E:\" & part5 & " " & part6 & " " & part7 & " " & part8 & " .xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

'Gendanner en basic.

    Sheets("Backup-regneark").Select
    Range("B10:D10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ledninger").Select
    ActiveSheet.Paste
    Sheets("Backup-regneark").Select
    Range("F4:F8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ledninger").Select
    Range("G8").Select
    ActiveSheet.Paste
    Sheets("Backup-regneark").Select
    Range("H4:I8").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Ledninger").Select
    Range("I8:J8").Select
    ActiveSheet.Paste
    Range("H8").Select
    Application.CutCopyMode = False
    Selection.AutoFill Destination:=Range("H8:H12"), Type:=xlFillDefault
    Range("H8:H12").Select
    Range("F9").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C"
    Range("F9").Select
    Selection.AutoFill Destination:=Range("F9:F12"), Type:=xlFillDefault
    Range("F9:F12").Select
    Range("E12").Select
    ActiveCell.FormulaR1C1 = "=R[-9]C[7]"
    Range("D12").Select
    ActiveCell.FormulaR1C1 = "=R[-4]C"
    Range("K9:L9").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C"
    Range("K9:L9").Select
    Selection.AutoFill Destination:=Range("K9:L12"), Type:=xlFillDefault
    Range("K9:L12").Select
    Range("M8").Select
    Selection.AutoFill Destination:=Range("M8:M12"), Type:=xlFillDefault
    Range("M8:M12").Select
    Range("N9").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C"
    Range("N9").Select
    Selection.AutoFill Destination:=Range("N9:N12"), Type:=xlFillDefault
    Range("N9:N12").Select
    Range("O9").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C"
    Range("O9").Select
    Selection.AutoFill Destination:=Range("O9:O12"), Type:=xlFillDefault
    Range("O9:O12").Select
    ' Her kan der laves lidt lækkert (prøver hvis det er til sætprøver)
    Range("E9").Select
    ActiveCell.FormulaR1C1 = "=R[-6]C[6]"
    Range("E10").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C"
    Range("E10").Select
    Selection.AutoFill Destination:=Range("E10:E11"), Type:=xlFillDefault
    Range("E10:E11").Select
    'Klar til ny indtastning
   
    'Clear Backup-regneark
        Sheets("Backup-regneark").Select
    Range("B2:N10").Select
    Selection.ClearContents
    Sheets("Ledninger").Select
End Sub
Avatar billede kabbak Professor
20. december 2013 - 10:48 #4
Jeg har "kogt din kode lidt ned, tjek om den virker

Sub Macro1()
'1.brønd
Sheets("Ledninger").Select
    Range("C6:O12").Copy Sheets("Backup-regneark").Range("B2")
    Sheets("Ledninger").Range("J3:L3").Copy Sheets("Backup-regneark").Range("B10")
    Sheets("Ledninger").Range("D9:O12").ClearContents
    Sheets("Ledninger").Range("K3:L3").ClearContents
    '1. brønd klar til at gemme
   
   
'    'PDF
  nr = [Ledninger!J3]
  nr1 = [Ledninger!K3]
  nr2 = [Ledninger!L3]
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "E:\Br. " & nr & " " & nr1 & " " & nr2 & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
       
'Excel
Dim part1 As String
Dim part2 As String
Dim part3 As String
Dim part4 As String

part1 = Range("I3").Value
part2 = Range("J3").Value
part3 = Range("K3").Value
part4 = Range("L3").Value
'
ActiveWorkbook.SaveAs Filename:= _
"E:\" & part1 & " " & part2 & " " & part3 & " " & part4 & " .xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

'2.brønd

    Sheets("Backup-regneark").Range("F8").Copy Sheets("Ledninger").Range("G8")
    Sheets("Backup-regneark").Range("H8:I8").Copy Sheets("Ledninger").Range("I8:J8")
    Sheets("Backup-regneark").Range("D10").Copy Sheets("Ledninger").Range("J3")
    '2.brønd klar til at gemme
   

 
    'PDF
    nr3 = [Ledninger!J3]
    nr4 = [Ledninger!K3]
    nr5 = [Ledninger!L3]
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "E:\Br. " & nr3 & " " & nr4 & " " & nr5 & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
       
'Excel
Dim part5 As String
Dim part6 As String
Dim part7 As String
Dim part8 As String

part5 = Range("I3").Value
part6 = Range("J3").Value
part7 = Range("K3").Value
part8 = Range("L3").Value

ActiveWorkbook.SaveAs Filename:= _
"E:\" & part5 & " " & part6 & " " & part7 & " " & part8 & " .xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

'Gendanner en basic.

    Sheets("Backup-regneark").Range("B10:D10").Copy Sheets("Ledninger").Range("G1") ' NB sæt din celle på her i stedet for G1
    Sheets("Backup-regneark").Range("F4:F8").Copy Sheets("Ledninger").Range("G8")
    Sheets("Backup-regneark").Range("H4:I8").Copy Sheets("Ledninger").Range("I8:J8")

    Range("H8").AutoFill Destination:=Range("H8:H12"), Type:=xlFillDefault
  ' Range("H8:H12").Select
    Range("F9").FormulaR1C1 = "=R[-1]C"
    Range("F9").AutoFill Destination:=Range("F9:F12"), Type:=xlFillDefault
  ' Range("F9:F12").Select
    Range("E12").FormulaR1C1 = "=R[-9]C[7]"
    Range("D12").FormulaR1C1 = "=R[-4]C"
    Range("K9:L9").FormulaR1C1 = "=R[-1]C"
    Range("K9:L9").AutoFill Destination:=Range("K9:L12"), Type:=xlFillDefault
  ' Range("K9:L12").Select
    Range("M8").AutoFill Destination:=Range("M8:M12"), Type:=xlFillDefault
  '  Range("M8:M12").Select
    Range("N9").FormulaR1C1 = "=R[-1]C"
    Range("N9").AutoFill Destination:=Range("N9:N12"), Type:=xlFillDefault
  ' Range("N9:N12").Select
    Range("O9").FormulaR1C1 = "=R[-1]C"
    Range("O9").AutoFill Destination:=Range("O9:O12"), Type:=xlFillDefault
    Range("O9:O12").Select
    ' Her kan der laves lidt lækkert (prøver hvis det er til sætprøver)
    Range("E9").FormulaR1C1 = "=R[-6]C[6]"
    Range("E10").FormulaR1C1 = "=R[-1]C"
    Range("E10").AutoFill Destination:=Range("E10:E11"), Type:=xlFillDefault
  '  Range("E10:E11").Select
    'Klar til ny indtastning
   
    'Clear Backup-regneark
        Sheets("Backup-regneark").Range("B2:N10").ClearContents
    Sheets("Ledninger").Select
End Sub
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