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.
Annonceindlæg fra FPT Software
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.
20. oktober 2008 - 13:44
#2
Hmm...ok...men virker det også når andre skal kunne omdøbe filen?
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.
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.
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?
21. oktober 2008 - 16:29
#6
prøve at sende filen til mrkrmail@gmail.com Jeg tror at det er en lille teknisk kalamitet :-)
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
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.
21. oktober 2008 - 18:19
#9
Som jeg ser det er de 2 linjer er ganske enkelt overflødige.
21. oktober 2008 - 18:35
#10
Det fungerer desværre ikke. Så er det bare næste linje der går i fejl...§:o(
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?
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.
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
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.
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.