27. november 2007 - 12:34Der er
22 kommentarer og 1 løsning
Automatisk skrivning i en celle.
I en kolonne i et regneark, skal der kun stå "on" eller "off" i cellerne. Når man går ind i cellen skal der automatisk skrives on og ved tryk på en knap (f.eks en makro)skal der skrives off. Kan nogen hjælpe. Hilsen prinsib
Hvad med en validation box med en list? - skriv on i A1 og off i A2 - marker kolonne B og skriv on og tryk <ctrl><enter> - vælg i menu - data - validation - under fanen settings under allow vælges list - og under source skrives: =$A$1:$A$2 - OK så skulle du gerne ved at klikke på de enkelte celler kunne vælge off istedet for i dropdown boxen.
Hej Luffe. Det var ikke lige sådan jeg havde tænkt det. Når jeg kommer fra a1 ( eller et andet sted )og går ind i b1 skal den i b1 skrives on. Det skal blive stående hvis jeg ikke trykker på en knap. Så skal der stå off.
Med en validation list som jeg foreslog kunne du lade være med at skrive on fra begyndelsen og blot have en tom celle, hvor du så valgte on eller off når du gik ind i cellen. Hvis den skal vælge on automatisk af sig selv, må du nok have en makroexpert ind over (det er jeg ikke :-) Tænkte blot at forskellen på at klikke på en dropdown box var ikke så stor i forhold til at klikke på en makroknap ... men kender godt det at man har forestillet sig noget bestemt.
Du kan også lave to knapper en til ON og en til OFF
Sub Knap1_Klik() Range("B7").Select ActiveCell.FormulaR1C1 = "on" End Sub -- Sub Knap2_Klik() Range("B7").Select ActiveCell.FormulaR1C1 = "off" End Sub
Hvordan du ændre indholdet af en celle ved at gå ind i den, ved jeg ikke.
En anden mulighed er at lægge følgende to makroer i arkets kodemodul. Så skrives On hver gang du kommer til en celle i B-kolonnen uanset, hvor du kommer fra. Hvis der så alligevel ikke skal stå ON, kan du ændre det til OFF ved at dobbeltklikke i den pågældende celle.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("b:b")) Is Nothing Then If UCase(Target.Value) = "ON" Then Target.Value = "OFF" End If End If Cancel = "true" End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("b:b")) Is Nothing Then Target.Value = "On" End If End Sub
Når du står i VBA editoren, som anført ovenfor af panebb, skal du dobbeltklikke på navnet på det ark, som koden skal fungere i, og kopiere den ind der.
Glem mit sidste spørgsmål. Har gjort det, men det virker ikke. Hvad gør jeg efter at jeg har selektet mit ark og kopieret koden ind?? Det er første gang jeg er inde i VBA editoren.
Hej Jan. Jeg har ikke lavet noget regneark endnu. Det er kun på planlægningsstadiet endnu. Jeg har dog afprøvet din kode i flere tomme regneark uden held. Kunne du måske sende mig et lille ark hvori det virker. ib@iof.dk På forhånd tak. Prinsib
Med den sidste løsning du kom med kunne jeg skrive i kolonnen, det var ikke meningen. Det var bedst hvis man ikke kunne skrive i kolonnen. Hvis det er for vanskeligt kan jeg godt leve med det som det er. Prinsib
Åbn alle celler i arket undtagen kolonne B (Formater - Celler - Beskyttelse). Beskyt derefter dokumkentet. Koden skal forinden rettes til, så den fjerner/sætter beskyttelsen i forbindelsen med ON/OFF funktionaliteten.
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.