Just nu i M3-nätverket
Jump to content

koppla enable av knapp till cellinnehåll (Och relativa länkar)


Ruatha2

Recommended Posts

Hej, har fått snabba och bra svar här så jag kommer med mera frågor:

 

1. Kan man koppla en knapp till en cell, så att den disablas om cellen är tom och enablas om det finns något i cellen?

 

2.Kan man ha hyperlänkar baserade på en formel? Tex om man klickar på en text i en cell så ska man hoppa till arbetsbladet med namnet som finns i cellen till höger om den cell man klickar i, ex:

 

Cell 1 !  Cell 2
Klicka      1

 

Om man då klickar på "Klicka" så hoppar man till arbetsblad "1"[/

 

Link to comment
Share on other sites

1: Går men inget jag rekommenderar. Åter måste vi besöka Excels händelsefunktioner och i detta fall en av de "tyngre" nämligen den som bevakar varje förändring i cellerna. Säker på att du vill göra detta? Kanske bättre att läsa av ett värde när de försöker använda knappen. Men det går - så jag kan ge exempel och några varningens ord om du vill.

 

 

2: Har för mig det men minns inte riktig nu. Lite för hungrig för det...Kanske återkommer om detta eller så hinner någon annan före. Om inte annat går det att lösa med kommandoknappar.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Ok, kanske bäst att läsa av den när man försöker använda knappen.

 

typ

if sheet("nytt").selection.range("a1:a1")<>"" then

bla bla

end if

 

eller hur läser man av en cell för en if sats?

 

 

(Ät dig mätt, jag har ingen panik)

 

Apropå 2:an så blir det svårt med kommandoknappar, Jag tänkte lägga in en kommandoknapp som kopierar en rad och lägger till den på slutet av en massa rader och ändrar en cells värde till en siffra högre, därefter plockar alla cellena sina värden från kalkylbladet som har samma namn som det numret, så då skulle jag behöva göra en ny knapp för varje ny rad och det vet jag inte hur man gör.

 

[inlägget ändrat 2006-09-23 19:41:22 av Ruatha 2]

Link to comment
Share on other sites

IF Sheets("Nytt").Range("A1") <> "" Then ....

Eller bättre - namnge cellen som ska kontrolleras....

If Sheets("Nytt").Range("kontrollCell") <> "" Then ...

 

Eller så kör du trots allt med händelsefunktionerna som är trevliga om man handskas med dem rätt och minns att de triggas vid varje ändring på bladet. Dvs tänk på att:

1: Första du gör - uteslut alla fall som ej rör dig.

2: Om annan kod skriver till bladet - stäng gärna av händelsefunktionerna temporärt. Spar massor med anrop till dem annars.

[color="#0000ff"]Private[/color] [color="#0000ff"]Sub[/color] Worksheet_Change(ByVal Target As Range)
    [color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] Intersect(Target, Range([GRÅ]"myCheck"[/GRÅ])) Is [color="#0000ff"]Nothing[/color] [color="#0000ff"]Then[/color]
        [color="#0000ff"]If[/color] Range([GRÅ]"myCheck"[/GRÅ]) = [GRÅ]""[/GRÅ] [color="#0000ff"]Then[/color]
            Me.ToggleButton1.Enabled = [color="#0000ff"]False[/color]
        [color="#0000ff"]Else[/color]
         Me.ToggleButton1.Enabled = [color="#0000ff"]True[/color]
        [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
    [color="#0000ff"]End[/color] [color="#0000ff"]If[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]Sub[/color]

 

fast - vänta - i detta fallet då du inte ska skriva till arket utan ätat av/på en knapp så räcker dte nog med:

[color="#0000ff"]Private[/color] [color="#0000ff"]Sub[/color] Worksheet_Change(ByVal Target As Range)
     Me.ToggleButton1.Enabled = (Range([GRÅ]"myCheck"[/GRÅ]) <> [GRÅ]""[/GRÅ])
[color="#0000ff"]End[/color] [color="#0000ff"]Sub[/color]

Ta upp kodarket för bladet där du vill ha funktionen. Leta reda på den i dropdown-menyerna och kopiera in kodraden. Eller kopiera in allt rakt av :)

 

Egentligen kanske du borde flytta ut själva agerandet från händelserutinen och göra det i en egen sub(). Rent programmeringstekniskt är det bättre men funktionen blir givetvis densamma.

 

2: XLDennis har svar på det mesta. Saxar ut det från hans sida:

[log]

Vandra med hyperlänkar!

 

Är du trött på att jämt behöva klicka på bladflikarna för att vandra mellan bladen? Här är ett tips som kan underlätta arbetet.

 

* Skapa en hyperlänk genom att välja kommandot Infoga / Hyperlänkar.

* I dialogrutan anges den aktuella arbetsboken i fältet för "Fil/URL".

* Klicka på "Bläddra-knappen" för att välja "Namn på en plats i filen". I dialogrutan som kommer fram görs de önskade valen - klart!

 

Alternativt kan man göra det på följande sätt:

 

*Markera källområdet och välj ett kopieringskommando.

* Markera målområdet och välj kommandot Redigera / Klistra in som hyperlänk.

 

 

*Namnge celler alternativt cellområden i varje kalkylblad. Därmed ökar precisionen var du hamnar när du klickar på en länk.

 

* Högerklicka på cellen med hyperlänken så kan man göra några anpassningar mm.[/log]

http://www.xldennis.com/diverse.htm

 

Ahh, eller med en formel. Ja se, det går!

 

=HYPERLÄNK("[bok1.xls]Blad2!$A$18";"Test")

 

nog det bästa nu när jag kom på hur man göra :)

 

har du del av länken i en cell får du klistra ihop det till en sträng i formatet ovan. ("[bok1.xls]MittBlad!" & A2; "Hoppa dit")

i A2 står då lämpligen ett cellnamn. Om rad/kolumn nummer står går dte nog att lösa också. Inget problem.

 

Edit:

I koden ovan använder jag en namngiven cell. Det går givetvis lika bra med en direkt adressering. Fördelen med namn är att de följer med cellen om du flyttar den.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

 

[inlägget ändrat 2006-09-23 22:21:05 av Monshi]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...