Avatar billede sism Nybegynder
20. oktober 2008 - 13:30 Der er 13 kommentarer og
1 løsning

Navneskift på XL-ark giver problemer med makroer.

Jeg har følgende problem:
Når jeg omdøber mit Excel-ark/hele filen, så går der ged i makroerne. De refererer åbenbart til det gamle navn!
Kan dette løses således at jeg godt kan ændre filnavnet uden at makroerne fejler?
Jeg har oprettet makroerne vha at indspille de handlinger jeg gerne vil have udført.
Avatar billede blood.dk Nybegynder
20. oktober 2008 - 13:36 #1
Du kan overføre dine makroer til en personlig makro fil.

Mener at du kan vælge det når du optager en ny makro.
Avatar billede sism Nybegynder
20. oktober 2008 - 13:44 #2
Hmm...ok...men virker det også når andre skal kunne omdøbe filen?
Avatar billede blood.dk Nybegynder
20. oktober 2008 - 13:55 #3
Nej det gør det ikke.
Det virker kun på den pc hvor den personlige makro fil ligger.

Hvis det er fordi du har en makro liggende i et dokument andre skulle kunne bruge, og så med andre filnavne, skal du skrive din makro om.
Avatar billede mrkr Juniormester
20. oktober 2008 - 16:40 #4
har du måske lavet en værktøjslinje, hvor du kan starte din makroer fra?
For hvis det er tilfældet skal du have en lille kodestump der køres hver gang du åbner og lukker filen.
Avatar billede sism Nybegynder
21. oktober 2008 - 10:36 #5
Jeg har lagt en knab i XL arket som brugeren skal klikke på. Denne knab flytter på rækkefølgen af 4 dataområder.
Jeg har 4 kvartaler som løbende udskiftes. Men i arket ligger de fx i rækkefølge Q1, Q2, Q3 og Q4.
Hvis jeg nu skal skifte Q3 2007 ud med Q3 2008, så vil jeg jo gerne have den rigtige rækkefølge i mit diagram, således at det ælste kvartal altid ligger som den første søjle i diagrammet, og den yngste altid ligger sidst.
Hvis vi anteger at vi har data for følgende kvartaler:
Q1 08, Q2 08, Q3 07, Q4 07
Så ligger disse ikke rigtigt efter alder hvis der ikke byttes rundt på datasøjlerne.
Det rigtige er:
Q3 07, Q4 07, Q1 08, Q2 08 og når jeg nu skal skifte Q3 07 ud med Q3 08, så kommer det til at ligge forkert igen.
Til dette har jeg inspillet en makro som fungerer, bortset fra at jeg nu ikke kan skifte navn på Excelfilen. Hvis den heder: Fister.xls og jeg omdøber den til Hans.xls, så skal der rettes i makroen §:o(
Er der en haj der kan knuse dette for mig?
Avatar billede mrkr Juniormester
21. oktober 2008 - 16:29 #6
prøve at sende filen til mrkrmail@gmail.com
Jeg tror at det er en lille teknisk kalamitet :-)
Avatar billede sism Nybegynder
21. oktober 2008 - 16:50 #7
Her er koden. jeg har markeret med: <<<<< HER GÅR DET GALT<<<< 2 steder

Sub KvartaksskifteMobilV()
'
' KvartaksskifteMobilV Makro
' Makro indspillet 06-10-2008 af Sism
'

'
    Range("G2:G9").Select
    Selection.Cut
    Range("K2:K9").Select
    ActiveSheet.Paste
    Range("C2:C9").Select
    Selection.Cut
    Range("G2:G9").Select
    ActiveSheet.Paste
    Range("D2:K9").Select
    Selection.Cut
    Range("C2:J9").Select
    ActiveSheet.Paste
    ActiveSheet.ChartObjects("Chart 5").Activate
    ActiveChart.ChartArea.Select
    ActiveChart.SetSourceData Source:=Sheets("Økonomi for mobil").Range( _
        "B2:B9,G2:J9"), PlotBy:=xlRows
    ActiveWindow.Visible = False
    Windows("Revisions-rapport (061008 v4).xls").Activate <<<<< HER GÅR DET GALT<<<<
    Range("J2:J9").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Range("A1").Select
End Sub
Sub KvartalsskifteMobilD()
'
' KvartalsskifteMobilD Makro
' Makro indspillet 06-10-2008 af Sism
'

'
    Range("F8:F23").Select
    Selection.Cut
    Range("J8:J23").Select
    ActiveSheet.Paste
    Range("B8:B23").Select
    Selection.Cut
    Range("F8:F23").Select
    ActiveSheet.Paste
    Range("C8:J23").Select
    Selection.Cut
    Range("B8:I23").Select
    ActiveSheet.Paste
    Range("J8:J23").Select
    Selection.Interior.ColorIndex = 2
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("B8:I23").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    ActiveSheet.ChartObjects("Chart 15").Activate
    ActiveChart.Walls.Select
    ActiveChart.PlotArea.Select
    ActiveChart.SetSourceData Source:=Sheets("GPRS forbrug").Range( _
        "A8:A16,B8:B16,C8:C16,D8:D16,E8:E16"), PlotBy:=xlRows
    ActiveWindow.Visible = False
    Windows("Revisions-rapport (061008 v4).xls").Activate <<<<< HER GÅR DET GALT<<<<
    Range("A1").Select
End Sub
Avatar billede mrkr Juniormester
21. oktober 2008 - 18:18 #8
lige præcis der hvor du skriver at det går galt, henviser den til den fil som sikkert var din oprindelige fil.

prøv at sætte ' foran disse to linjer eller helt at slette dem, så vil jeg tro at det kører uden problemer.

Blot til info. Når du har sat '-tegnet foran linjen skal den blive lysegrøn. Hvis den ikke gør det har du ikke sat et korrekt tegn.
Avatar billede mrkr Juniormester
21. oktober 2008 - 18:19 #9
Som jeg ser det er de 2 linjer er ganske enkelt overflødige.
Avatar billede sism Nybegynder
21. oktober 2008 - 18:35 #10
Det fungerer desværre ikke. Så er det bare næste linje der går i fejl...§:o(
Avatar billede mrkr Juniormester
21. oktober 2008 - 18:47 #11
så kan jeg desværre ikke se det uden at have filen foran mig.
Kan du ikke slette de data du ikke vil have "ud af huset" og sende filen?
Avatar billede blood.dk Nybegynder
22. oktober 2008 - 08:26 #12
Prøv at indsætte følgende i starten af din makro:
_____

  Dim FileName as string

  FileName = ActiveWorkbook.name

_____

Erstat så
  Windows("Revisions-rapport (061008 v4).xls").Activate
med
  Windows(filename).Activate


Hvis det ikke virker skal jeg nok se filen ligesom mrkr siger.
Avatar billede blood.dk Nybegynder
22. oktober 2008 - 08:29 #13
Sub KvartaksskifteMobilV()
'
' KvartaksskifteMobilV Makro
' Makro indspillet 06-10-2008 af Sism
'

'
    Dim FileName as string

    FileName = ActiveWorkbook.name

    Range("G2:G9").Select
    Selection.Cut
    Range("K2:K9").Select
    ActiveSheet.Paste
    Range("C2:C9").Select
    Selection.Cut
    Range("G2:G9").Select
    ActiveSheet.Paste
    Range("D2:K9").Select
    Selection.Cut
    Range("C2:J9").Select
    ActiveSheet.Paste
    ActiveSheet.ChartObjects("Chart 5").Activate
    ActiveChart.ChartArea.Select
    ActiveChart.SetSourceData Source:=Sheets("Økonomi for mobil").Range( _
        "B2:B9,G2:J9"), PlotBy:=xlRows
    ActiveWindow.Visible = False
    Windows(FileName).Activate
    Range("J2:J9").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Range("A1").Select
End Sub
Sub KvartalsskifteMobilD()
'
' KvartalsskifteMobilD Makro
' Makro indspillet 06-10-2008 af Sism
'

'
    Dim FileName as string

    FileName = ActiveWorkbook.name

    Range("F8:F23").Select
    Selection.Cut
    Range("J8:J23").Select
    ActiveSheet.Paste
    Range("B8:B23").Select
    Selection.Cut
    Range("F8:F23").Select
    ActiveSheet.Paste
    Range("C8:J23").Select
    Selection.Cut
    Range("B8:I23").Select
    ActiveSheet.Paste
    Range("J8:J23").Select
    Selection.Interior.ColorIndex = 2
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("B8:I23").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    ActiveSheet.ChartObjects("Chart 15").Activate
    ActiveChart.Walls.Select
    ActiveChart.PlotArea.Select
    ActiveChart.SetSourceData Source:=Sheets("GPRS forbrug").Range( _
        "A8:A16,B8:B16,C8:C16,D8:D16,E8:E16"), PlotBy:=xlRows
    ActiveWindow.Visible = False
    Windows(FileName).Activate
    Range("A1").Select
End Sub
Avatar billede sism Nybegynder
22. oktober 2008 - 12:50 #14
Jeg har slettet en del i den tidligere uploadede, som nu fungerer fint, så jeg får nok ikke afprøvet ovenstående.
Jeg takker for jeres bidrag, og kvitterer hermed for svaret.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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