Just nu i M3-nätverket
Gå till innehåll

VBA formulär


jansor

Rekommendera Poster

Hej

 

Jag kan inte släppa detta med VBA. Jag tycker det verkar intressant

 

Jag försäker få till det som står på följande sida.

Nu har jag kört fast. Vad är det som är fel här, har jag gjort rätt överhuvud taget.

 

 

Private Sub chkMalsok_Click()

If chkMalsok Then

txtBelopp.Enabled = True

txtManTillMal.Enabled = False

Else

txtBelopp.Enabled = False

txtManTillMal.Enabled = True

End If

End Sub

 

Private Sub cmdAvbryt_Click()

Unload Me

End Sub

 

 

 

Private Sub cmdBerakna_Click()

Range(”A2”) = txtManadin

Range(”A3”) = txtRanta

Range (”A10”) = ” =FV(A3/100/12,A1,-A2)”

If chkMalsok Then

Range (”A1” = 1

Range(”A10”).GoalSeek txtBelopp,Range(Range(”A1”)

txtManTillMal = Round(Range(”A10”), 0)

Else

Range(”A1”) = txtManTillMal

txtBelopp = Round(Range(”A10”), 0)

End If

End Sub

 

 

End Sub

 

Private Sub CommandButton2_Click()

”cmdAvbryt”

End Sub

 

Private Sub TextBox1_Change()

”txtArTill”

End Sub

 

Private Sub TextBox2_Change()

”txtManTillMal”

End Sub

 

Private Sub TextBox3_Change()

”txtRantaMal”

End Sub

 

Private Sub TextBox4_Change()

”txtBelopp”

End Sub

Länk till kommentar
Dela på andra webbplatser

Namnen de ger att du ska tilldela textrutorna stämmer inte med de som används i koden, det är enda felet jag finner i exemplet.

 

Kontrollera/ordna namnen så ska du se att det fungerar.

Och ja, jag skulle skriva koden såhär:

Private Sub chkMalsok_Click()
If Me.chkMalsok Then
   	Me.txtBelopp.Enabled = True
   	Me.txtManTillMal.Enabled = False
Else
   	Me.txtBelopp.Enabled = False
   	Me.txtManTillMal.Enabled = True
End If
End Sub

Private Sub cmdAvbryt_Click()
Unload Me
End Sub

Private Sub cmdBerakna_Click()
With Blad1
   	.Range("a2") = Me.txtManIn
   	.Range("a3") = Me.txtRanta
   	.Range("a10") = "=fv((A3/100)/12,A1,-A2)"
   	If Me.chkMalsok Then
       	.Range("a1") = 1
       	.Range("a10").GoalSeek goal:=Me.txtBelopp, changingcell:=.Range("a4")
   	Else
       	.Range("a1") = Me.txtManTillMal
       	Me.txtBelopp = Round(.Range("a10"), 0)
   	End If
End With
End Sub

genom att använda With och Me får jag en del syntaxkoll samt kontroll på var resultatet hamnar.

Länk till kommentar
Dela på andra webbplatser

Ok tack. Nu ska jag ta det här lite från grunden. Det står så här under siffra 3 på sidan som jag länkade. På lablarna sätter du ”Caption” till ”Månader till mål”, ”Månadsinsättning”, ”Ränta” och ”Belopp”

Är det här självklart forumlerat för en nybörjare? Vidare. Sätt ”Name” till ”cmdBerakna” och ”cmdAvbryt” för knapparna. Det här är inte heller självklart för mej som novis, än så länge. Om du skulle forumlera det hur skulle du skriva?

 

Ps är du självlärd eller är har du detta som yrke?

Länk till kommentar
Dela på andra webbplatser

En bild säger det mesta

post-8996-0-14413700-1329033852_thumb.png

Markera en komponent, ta fram egenskaperna för denna om de inte automatiskt visas.

 

Namnen som är viktiga är de för de komponenter som du behöver nå från koden.

Textrutorna, kryssrutan och knapparna med andra ord.

 

Textrutorna ska ha namnen, från topp till botten

txtManTillMal

txtManIn

txtRanta

txtBelopp

 

Du når sedan dessa i koden via exempelvis

Me.txtManTillMål

 

Knapparnas namn är av mindre vikt men det skadar inte att vara tydlig där med.

kryssrutan ger du namnet

chkMalsok

 

Jag?

Självlärd men inte fel att ha denna kompetens i arbetslivet.

Länk till kommentar
Dela på andra webbplatser

Ja ja det är ju i den rutan för tusan!.Nu klarnar det. Jag fick inte upp egenskaper när jag markerade ett objekt och körde ctr + klick (mac) nämligen. Men nu så. Då ska jag kolla detta. Stort tack!

 

Ps Finns det något program som gör om en excelformler till vba kod?

Länk till kommentar
Dela på andra webbplatser

 

Ps Finns det något program som gör om en excelformler till vba kod?

Du menar att du vill skriva exempelvis

=OM(A1=2;"Rätt svar";"Fel svar")

till en cell via VBA kod.

Enkla tipset där är att du spelar in när du matar in denna formel i en cell. Eller rättare sagt skriv in formeln i en cell, starta inspelning av makro, gå till cellen igen, klicka som att du ska redigera och tryck enter. Avsluta makroinspelningen, öppna VBA-editorn och se hur formeln ser ut i VBA-format (dvs på engelska)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...