14. december 2005 - 14:36Der er
8 kommentarer og 1 løsning
Køre automatisk makro ved ændring
Jeg har lavet en makro, der kopierer data fra felt B7 i Ark1 til et tilsvarende felt i Ark2. Makroen fungerer fint, når jeg har lagt den til en knap. Men jeg ville gerne have, at den køre automatisk når man indtaster ændringer i B7 - således at værdien altid er opdateret i det tilsvarende felt på Ark2. Altså gøre tryk på knappen overflødig.
Højreklik på ark-fanen og vælg "Vis koder" og indsæt følgende
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B7")) Is Nothing Then ' skriv navnet på din makro her End If End Sub
Jeg fik en fejlmeddelelse: ambiguos name detacted: Worksheet_change. Jeg forstår det sådan, at det er fordi der i forvejen er en funktion på arket med samme navn. Jeg rettede derfor Worksheet_Change til Start_Change. Derefter sker der ingenting, når jeg redigerer B7? Min makro hedder Redigerstart. Er der nogen bestemt måde jeg skal markere navnet på, så det genkendes som et makronavn, måske?
Worksheet_Change ER den makro der starter når du ændre noget i arket, og denne linie "If Not Intersect(Target, Range("B7")) Is Nothing Then" sikre at det indenfor IF-sætningen kun bliver kørt, hvis ændringen er sket i celle B7
Nåeh, sådan! Man bliver jo lidt klogere for hver dag. Jeg har aldrig fået lært det med Visual Basic, så det er et fantastisk held, at der er noget, som hedder Eksperten. Nu virker virker det perfekt. Jeg skulle lige prøve mig frem, hvor det præcist var, jeg skulle sætte den ind, da der var flere if-sætninger. Min endelige Worksheet_Change makro ser således ud:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Not Intersect(Target, Range("D7:D63")) Is Nothing Then If Not Target.Offset(1, -2) <> "" Then Target.Offset(1, -2) = Time Target.Offset(1, 0).Select End If End If If Not Intersect(Target, Range("B7")) Is Nothing Then Redigerstart End If End Sub
Smiler - velbekomme - der er flere lege ting her http://www.smartoffice.dk/tips/LibraryIndex.asp?App=All bla. finder du under Guider lidt start haløjsa omkring VBA - miljø og makrobåndoptager - hvis det kan hjælpe dig igang.
Tak for det. Det kan være jeg får tid at kigge lidt på det i juleferien. Jeg har hidtil klaret mig med makrooptageren i Excel, men de skal som regel redigeres noget til, så det ville være rigtig rart at vide, hvad det var man gjorde...
Nåeh ja, det kan jeg godt se, nu jeg tjekkede linket ud. Men der var jo mange gode fif - så det tager jeg som lidt bonusmateriale, nu det er jul. Tak for hjælpen endnu engang. Dette var til stor hjælp for mange her på kontoret til at gøre næste års arbejdstidsregistrering endnu nemmere.
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.