12. juli 2011 - 20:02Der er
25 kommentarer og 1 løsning
rettelse i macro
Hej
Jeg har lavet nogle macroer. Er det muligt at sammenkæde disse macroer? (se nedenfor) Den sidste macro afspiller bare de 2 første, og så låser den også arket op, og låser det igen.
Når jeg kører macroen, er der celler som bliver markeret. Kan jeg skrive noget om, så jeg slipper for at se dem blive markeret, men at macroen stadig ender med samme resultat?
Sub TælSammen() Dim A As Integer, B As Integer, Data As Variant, Res As Variant B = Range("B65536").End(xlUp).Row ' finder sidste række med data Data = Range("A1:B" & B) ' Dublerende kolonne A og Antal kolonne B Res = Range("C1:D" & B) ' Skriver resultatet i Kolonne C og D
For T = 1 To UBound(Data) For i = 1 To UBound(Res) If Res(i, 1) = Data(T, 1) Then Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If If Res(i, 1) = "" Then Res(i, 1) = Data(T, 1) Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If Next Næste: Next Range("C1:D" & B) = Res 'Skriver i C og D kolonnen 'Range("A1:B" & B) = Res ' byttes med ovenstående OVERSKRIVES A og B kolonnen End Sub Sub slet_celler() ' ' slet_celler Makro '
' Range("C1:D1").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents End Sub Sub Opdater() ' ' opdater Makro '
' ActiveSheet.Unprotect Application.Run "&[Fane]!slet_celler" Application.Run "&[Fane]!TælSammen" ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
hvis du ikke vil se på celler der markeres/afmarkeres, så sæt application.screenupdate = False i starten af din kode og =true i bunden. Det vil også få din kode til at blive afviklet meget hurtigere...
Mht. at sammenkæde, hvad mener du? Du har jo allerede den ene macro til at kalde de andre (=sammenkæde).
ALternativt, skriv alt koden i den samme, ene macro (kopier koden fra de macroer du kalder over i "hovedmacroen, der hvor du ellers ville kalde "undermacroen".
Dim A As Integer, B As Integer, Data As Variant, Res As Variant B = Range("B65536").End(xlUp).Row ' finder sidste række med data Data = Range("A1:B" & B) ' Dublerende kolonne A og Antal kolonne B Res = Range("C1:D" & B) ' Skriver resultatet i Kolonne C og D
For T = 1 To UBound(Data) For i = 1 To UBound(Res) If Res(i, 1) = Data(T, 1) Then Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If If Res(i, 1) = "" Then Res(i, 1) = Data(T, 1) Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If Next Næste: Next Range("C1:D" & B) = Res 'Skriver i C og D kolonnen 'Range("A1:B" & B) = Res ' byttes med ovenstående OVERSKRIVES A og B kolonnen
Sub Opdater() Application.ScreenUpdating = False 'skærm opdatering fra home = ActiveCell.Address 'husker active celle homeArk = ActiveSheet.Name 'husker active ark
'TælSammen Makro Dim A As Integer, B As Integer, Data As Variant, Res As Variant B = Range("B65536").End(xlUp).Row ' finder sidste række med data Data = Range("A1:B" & B) ' Dublerende kolonne A og Antal kolonne B Res = Range("C1:D" & B) ' Skriver resultatet i Kolonne C og D
For T = 1 To UBound(Data) For i = 1 To UBound(Res) If Res(i, 1) = Data(T, 1) Then Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If If Res(i, 1) = "" Then Res(i, 1) = Data(T, 1) Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If Next Næste: Next Range("C1:D" & B) = Res 'Skriver i C og D kolonnen 'Range("A1:B" & B) = Res ' byttes med ovenstående OVERSKRIVES A og B kolonnen
Det er eks. Ark1 der omdøbt til 'Indkøbsliste' og du ønsker så at når arket som hedder 'indkøbsliste' bliver aktiveret, med et klik på fanen, denne makro kører?
Sub Opdater() Application.ScreenUpdating = False 'skærm opdatering fra home = ActiveCell.Address 'husker active celle homeArk = ActiveSheet.Name 'husker active ark
'TælSammen Makro Dim A As Integer, B As Integer, Data As Variant, Res As Variant B = Range("B65536").End(xlUp).Row ' finder sidste række med data Data = Range("A1:B" & B) ' Dublerende kolonne A og Antal kolonne B Res = Range("C1:D" & B) ' Skriver resultatet i Kolonne C og D
For T = 1 To UBound(Data) For i = 1 To UBound(Res) If Res(i, 1) = Data(T, 1) Then Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If If Res(i, 1) = "" Then Res(i, 1) = Data(T, 1) Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If Next Næste: Next Range("C1:D" & B) = Res 'Skriver i C og D kolonnen 'Range("A1:B" & B) = Res ' byttes med ovenstående OVERSKRIVES A og B kolonnen
Sub Opdater() Application.ScreenUpdating = False 'skærm opdatering fra home = ActiveCell.Address 'husker active celle homeArk = ActiveSheet.Name 'husker active ark
'TælSammen Makro Dim A As Integer, B As Integer, Data As Variant, Res As Variant B = Range("B65536").End(xlUp).Row ' finder sidste række med data Data = Range("A1:B" & B) ' Dublerende kolonne A og Antal kolonne B Res = Range("C1:D" & B) ' Skriver resultatet i Kolonne C og D
For T = 1 To UBound(Data) For i = 1 To UBound(Res) If Res(i, 1) = Data(T, 1) Then Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If If Res(i, 1) = "" Then Res(i, 1) = Data(T, 1) Res(i, 2) = Res(i, 2) + Data(T, 2) GoTo Næste End If Next Næste: Next Range("C1:D" & B) = Res 'Skriver i C og D kolonnen 'Range("A1:B" & B) = Res ' byttes med ovenstående OVERSKRIVES A og B kolonnen
Ikke til mig.... ;-) Æble .zip burde give en masse zip filer som skal pakkes ud!!! lige som hvis man henter Æble .xlsx hvor der ingen 'regneark' er? Eller er der noget jeg har misforstået ;-)
windows XP. Excel 2003: Når jeg klikker på æble .zip, så hentes excelfilen + Read me direkte. Når jeg klikker på æble .excel, så hentes en zipfil. Begge i en mappe med zip.ikon (Type: ZIP-komprimeret mappe)
windows 7. Excel 2010: Når jeg klikker på æble .zip, så hentes en zipfil i en mappe med zip.ikon (Type: ZIP-komprimeret mappe) Når jeg klikker på æble .excel, så hentes excelfilen direkte. Så er det OK.
Okay - så skyldes det, at 2003 ikke understøtter .xlsm filer..
Synes godt om
Ny brugerNybegynder
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.