10. januar 2011 - 10:15Der er
22 kommentarer og 1 løsning
excel funktions værdi i vba
hej jeg har et lille problem, jeg vil gerne tjekke for om en bestemt celle er lig 20 kan jeg også godt hvis jeg skriver 20 i cellen men jeg bruger en funktion(hendvisning) (=AB) til at hente hvad der skal stå i feltet.
hvordan får jeg denne funktions resultat ind i vba som værdi??
If Target.Address = "$J$4" Then Så reagere den kun på en ændring i cellen J4 (ikke på ændring i henvisning =AB "beregning")
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("J4") > 0 Then CheckBox1.Visible = True Else CheckBox1.Visible = False End If
End Sub
Hvis der i celle J4 står =A1+B1 Og den kun skal reagere på en ændring i celle A1 eller B1
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Or Target.Address = "$B$1" Then If Range("J4") > 0 Then CheckBox1.Visible = True Else CheckBox1.Visible = False End If End If
nej den er god nok den skal reagere på ændring i celle J4 og mit problem lige nu er at hvis jeg når jeg står på funktionen trykker run, så kommer den op med Makro vindue. kan ikke finde ud at hvorfor.
alt er sat ind under ark1.
hele koden ser således ud:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$N$4" Then If Sheets("Formler").Range("S3").Value = 0 Then CheckBox1.Visible = False Else CheckBox1.Visible = True End If End If End Sub
Private Sub CheckBox1_Click() If CheckBox1.Value = True Then Sheets("Formler").Range("G3") = True Else Sheets("Formler").Range("G3") = False End If End Sub
Private Sub CheckBox2_Click() If CheckBox2.Value = True Then Sheets("Formler").Range("G4") = True Else Sheets("Formler").Range("G4") = False End If End Sub
Private Sub CheckBox3_Click() If CheckBox3.Value = True Then Sheets("Formler").Range("G5") = True Else Sheets("Formler").Range("G5") = False End If End Sub
Private Sub CheckBox4_Click() If CheckBox4.Value = True Then Cells(10, 15) = True Else Cells(10, 15) = False End If End Sub
ingen grund til at skrive med fed ved godt hvad de forskellige gør, men som sagt spørg jeg om jeg skal oprette en desideret makro til det da den kommer op med makro vindue, hvilket gør jeg tror jeg har glemt at sætte noget op??
kort: når cursor står ud for subrutinen, og jeg trykker run, så springer makro vinduet op.
tror jeg har sporet en fejl, den ser ikke hvad der står i feltet men hvis jeg laver det om til en variabel (int) så kan jeg se værdien, men hvordan tjekker jeg om denne variable ændre sig??
Du kan ikke køre en run! fordi det er "Private Sub...."
Og den kan ikke se N4 ændre sig når der er en formel =N3.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$N$4" Then If Sheets("Formler").Range("S3").Value = 0 Then CheckBox1.Visible = False Else CheckBox1.Visible = True End If End If End Sub
Se kommentar #6
Så forslaget er:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$N$3" Then If Sheets("Formler").Range("S3").Value = 0 Then CheckBox1.Visible = False Else CheckBox1.Visible = True End If End If End Sub
Således at den køre når N4 bliver ændret af en indtastning/ændring i N3
Private Sub Worksheet_Change(ByVal Target As Range) If Sheets("Formler").Range("S3").Value = 0 Then CheckBox1.Visible = False Else CheckBox1.Visible = True End If End Sub
Således at den køre hver gang der ændres i (hele)arket.
Private Sub Worksheet_Calculate() If Sheets("Formler").Range("S3").Value = 0 Then CheckBox1.Visible = False Else CheckBox1.Visible = True End If End Sub
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.