01. marts 2006 - 11:11Der er
5 kommentarer og 1 løsning
Oprettelse af macro til kvartal, halvår og fuldt år
Hej,
Jeg er ved at lave et lille budget program og kunne godt tænke mig en macro der kunne udfylde noget for mig automatisk. F.eks. lad os sige at jeg har en fast udgift / indtægt som er det samme hver måned så vil jeg gerne kunne taste det ind i et mdr. og så trykke på en en kombination så kommer det automatisk ind i resten af månederne. Sådan en funktion kunne jeg godt tænke mig for kvartal, halvt år og fuldt år. Det skal virke ligemeget i hvilket måned man aktiverer den.
I xls-filen - ThisWorkbook: Sub workbook_activate() Load UserForm1 UserForm1.Show 0 End Sub
I Userformener koden følgende: Dim periode Private Sub CommandButton1_Click() 'OK Dim p For p = 0 To periode - 1 Cells(ActiveCell.Row, ActiveCell.Column + p) = Val(TextBox1) Next p
Frame1.Enabled = False CommandButton1.Enabled = False End Sub Private Sub CommandButton2_Click() Unload UserForm1 End Sub Private Sub OptionButton1_Click() CommandButton1.Enabled = True periode = 3 End Sub Private Sub OptionButton2_Click() CommandButton1.Enabled = True periode = 6 End Sub Private Sub OptionButton3_Click() CommandButton1.Enabled = True periode = 12 End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox1 <> "" Then If IsNumeric(TextBox1) = True Then Frame1.Enabled = True Else Frame1.Enabled = False CommandButton1.Enabled = False End If Else Frame1.Enabled = False CommandButton1.Enabled = False End If End Sub Private Sub UserForm_activate() Frame1.Enabled = False CommandButton1.Enabled = False End Sub
P.t. er betingelsen, at den celle i budgettet, hvor beløbet skal overføres til -er den aktuelle. Udfra valget - kopieres beløbet tilde 3, 6 eller 12 følgende celler til højre herfor. Userform er "Modeless" - d.v.s. du kan arbejde i regnearket - medens denne er åben.
Userformen indeholder: Textbox1: beløbet Frame1: ramme med 3 optionbuttons samt to commandbuttons - OK og Afslut
Hvis du vil have hele .xls-filen -så mail til: pb@supertekst-it.dk
Dim periode Private Sub CommandButton1_Click() 'OK Dim p, spring, antal If CheckBox1.Value = False Then For p = 0 To periode - 1 Cells(ActiveCell.Row, ActiveCell.Column + p) = Val(TextBox1) Next p Else If periode = 12 Then antal = 1 spring = 1 Else spring = periode antal = (12 / periode) * spring End If
For p = 1 To antal Step spring Cells(ActiveCell.Row, ActiveCell.Column + p - 1) = Val(TextBox1) Next p End If
Frame1.Enabled = False CheckBox1.Value = False 'her kan fjernelse af "flueben" elimineres efter opdatering CommandButton1.Enabled = False End Sub Private Sub CommandButton2_Click() Unload UserForm1 End Sub Private Sub OptionButton1_Click() CommandButton1.Enabled = True periode = 3 End Sub Private Sub OptionButton2_Click() CommandButton1.Enabled = True periode = 6 End Sub Private Sub OptionButton3_Click() CommandButton1.Enabled = True periode = 12 End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox1 <> "" Then If IsNumeric(TextBox1) = True Then Frame1.Enabled = True Else Frame1.Enabled = False CommandButton1.Enabled = False End If Else Frame1.Enabled = False CommandButton1.Enabled = False End If End Sub Private Sub UserForm_activate() Frame1.Enabled = False CheckBox1.Value = False CommandButton1.Enabled = False End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
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.