/ Forside/ Teknologi / Administrative / MS-Office / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Excel 2000 + macroprogrammering i WBA
Fra : bne
Vist : 618 gange
300 point
Dato : 20-01-05 10:46

I et kalender-regneark, har jeg har lavet en macro i WBA, således at baggrundsfarven for et felt ændres, afhængigt af indholdet - og afhængingt af hvor i regnearket det er placeret.
Men jeg har et par spørgsmål :
Jeg vil gerne have macroen 'kørt' HVER gang der ændres et felt, og ikke kun når jeg trykker Alt+F8 - hvordan gør jeg det ?
Jeg kan ændre farven ved at indtaste forskellige tal-værdier i macroen, men findes der ikke en oversigt over hvilke værdier de enkelte farver har ? (jeg har fundet en tabel i hjælpefunktionen, men den passer ikke med det resultat jeg får på skærmen....)
Kan man undgå spørgsmålet om brugeren vil tillade macroer ??


 
 
Kommentar
Fra : emesen


Dato : 20-01-05 11:33

>>>Kan man undgå spørgsmålet om brugeren vil tillade macroer<<<

Funktioner < makro > sikkerhed
Her kan du vælge hvad der må åbnes (skal gøres på brugercomputeren)

Kommentar
Fra : bne


Dato : 20-01-05 14:59

emesen -> ja, men det er jo netop det jeg ville undgå - meeen jeg kan jo godt se at så havde de der 'macro-virusser' nok været farligere.......
Det var så det første spørgsmål, der blev skudt i sænk - hvad med resten ? Der må da være en eller anden snedig sjæl derude et eller andet sted ??

Kommentar
Fra : berpox


Dato : 20-01-05 16:50

Det kan du ikke i excel. En makro er en programstump der kræver en aktiv handling, som et museklik eller et tryk på en knap.

Det "eneste" du kan gøre er, at lægge en formular over dit regneark, og så bruge formularen til at indtaste værdierne fra. Således, kan du kode din makro til, at ved tryk på enter, eksekveres koden til farveændring.



mvh berpox

Kommentar
Fra : emesen


Dato : 20-01-05 17:02

Berpox - VBA er jo en slags udvidet makro hvor der også kan gribes tasteslag.
Men desværre er jeg ikke inde i koderne.

Kommentar
Fra : berpox


Dato : 20-01-05 19:37

emesen - rigtigt - der kan gribes tasteslag - MEN det kræver, at makroen STARTES før man begynder....

Og når så, makroen har gennemført sit gennemløb (altså valideret et tastetryk, og udført en handling), så slutter makroen sit gennemløb, og venter på et nyt startsignal.

Og det er dér begrænsningen er. Man ender i en uendelig løkke, der hele tiden ligger og prøver at validere om der er sket et tastetryk (enter) - og så blokerer VBA makroen fuldstændigt programmet, her excel, så man slet ikke får muligheden for at indtaste en ny værdi i sin celle....

Iøvrigt, så er VBA (Visual Basic for Applications) mest beregnet for API kald (Application Programming Interface) målrettet mod f.eks. excel, word, outlook, og de fleste windows programmer iøvrigt. Når man starter visual basic editoren i excel, så ER API modulerne allerede indlæst - øvrige kan tilføjes. Men man kan ikke med VBA kompilere selvstændige .exe filer der holder øje med den slags ting.

En "ægte" VB applikation, kan køre i baggrunden og "holde øje" med brugerens tastetryk i excel, og SÅ kan det lade sig gøre.


mvh berpox



Kommentar
Fra : emesen


Dato : 20-01-05 19:48

Ja ja - den VBA er noget begrænset i forhold til VB6 som jeg egentlig tænker på.

Kommentar
Fra : emesen


Dato : 20-01-05 20:08

Eksempel med VBA for excel
http://www.idgforlag.dk/default.asp?loadside=/internelinks.asp?
Rul ned til excel 2000 med VBA

Jeg har selv access 2000 med VBA

Kommentar
Fra : bne


Dato : 21-01-05 07:57

Hej Berpox og Emesen
Til trods for alle jeres tekniske diskussioner om hvad der er muligt osv, så prøv at kigge på denne http://www.kandu.dk/dk/spg/54354 , et stykke nede kommer dette link http://holgerbak.frac.dk/excel/Tidsplan.xls og der udføres netop det jeg efterlyser - men jeg har ikke kunnet lure hvordan Kabbak gør det...


Accepteret svar
Fra : berpox

Modtaget 300 point
Dato : 21-01-05 10:23

Okay - jeg æder det i mig...der ER åbenbart en mulighed -

Det er denne kodestum sammen med makroen LØ_SØ der gør det muligt. Resten ligger i celle-formlerne.
Det er fordi Object "Worksheet" og procedure "Change" benyttes - altså når noget i regnearket ændres, subroutinerne.

Kode
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Call LØ_SØ
End If
End Sub


- hvorimod denne tilsyneladene er overflødig...
[code]
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
RW = Worksheets("Mødetider").Range("A1").CurrentRegion.Rows.Count
If Not Intersect(Target, Range("A3:E" & RW)) Is Nothing Then
Cancel = True
If Target = "" Then
Target = Cells(2, Target.Column)
Else
Target = ""
End If
End If

If Not Intersect(Target, Range("A1")) Is Nothing Then
Cancel = True
Call LØ_SØ
End If
End Sub
[/code}


Kommentar
Fra : IBM760


Dato : 24-01-05 12:49

Hej bne,

jeg har set din opfordring, men jeg har umiddelbart ingen ideer pt.
Det er muligt, at jeg vender tilbage.

Mvh Ivan

Kommentar
Fra : bne


Dato : 26-01-05 15:20

Der må da være een eller anden der kan fortælle hvilken funktion jeg skal 'gribe' med min macro for at få macroen kørt hver gang 'enter' trykkes.......

Kommentar
Fra : IBM760


Dato : 26-01-05 15:28

Hej bne, har du forsøgt at søge under Excel Help.

Nu sidder jeg på en Engelsk udgave og når jeg her søger under "run micro" vises adskillige muligheder:

Run a macro
Start a macro from a keyboard shortcut
Start a macro from a button or graphic control
Start a macro from an area, or hotspot, on a graphic object
Start a macro from a toolbar button

For hvert punkt findes en udvidet beskrivelse, prøv at se om nogen af disse kan opfylde dit behov.

Mvh Ivan


Kommentar
Fra : bne


Dato : 26-01-05 15:31

OK, det vil jeg lige kigge på, men i det spørgsmål jeg referede til længere oppe i denne tråd, der har DU lavet således at felter automatisk opdateres (men det er selvfølgelig på højreklik og ikke på 'Enter'..)


Kommentar
Fra : bne


Dato : 26-01-05 15:35

-> IBM760 : Når jeg nu nærlæser tingene, så kan jeg godt se jeg ikke bør undre mig over at du ikke lige kan gentage metoden fra tidligere - det er jo ikke dig der har svaret i den tidligere tråd - undskyld !


Kommentar
Fra : emesen


Dato : 26-01-05 16:08

oversættelse fra IBM760:::

Run a macro
Start a macro from a keyboard shortcut
Start a macro from a button or graphic control
Start a macro from an area, or hotspot, on a graphic object
Start a macro from a toolbar button
=
hjælp > skriv kør makro
Tildele en makro til at køre ved hjælp af
en tastaturgenvej,
et grafikobjekt
eller en værktøjslinjeknap

Og denne er god at læse:
Makroer: Automatisering af regelmæssige opgaver






Kommentar
Fra : winetaster


Dato : 04-02-05 11:54

Prøv "at Focus" eller "by Focus" eller "exit Focus":

Dvs. når du aktiverer (fokuserer på) en celle, sker der et eller andet;
eller når du deaktiverer (flytter fokus fra) en celle, sker der noget andet.
Jeg kender ikke syntax, men prøv at spørge andre ud fra mit svar.


Kommentar
Fra : Jarlan


Dato : 02-03-05 11:33

Hej bne

http://www.win-consult.com (colorIndex) findes der en liste over farverne med nummer.
med venlig hilsen
Jarlan

Godkendelse af svar
Fra : bne


Dato : 09-05-06 13:28

Jeg lukker hermed spørgsmålet.........
Tak for svaret berpox.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste