Er det muligt at lave eks 5 checkbokse og et tilhørende tekstfelt, checkboksene skal hedde 1,2,3,4,5 hvis alle Checkbokse er diabled skal teksten i tekstboksen være 1a2a3a4a5a
men vinges eks checkboks 1 og 3 og 5af skal tekstbokskoden være 1b2a3b4a5b
Altså ved markering ændres A til B
og er der nogen som har et godt kodeforslag på min ide
Du kan lave en Change-event for hver af checkboksene, som udskifter den relevante tekst i tekstboksen. Nedenstående er lavet til en UserForm, hvor tekstboksen hedder TextBox1 og de 5 checkbokse hedder CheckBox1-5. I eksemplet, jeg har lavet, har jeg brugt store A og B. Som du kan se, er de 5 Subs ens bortset fra, at de udskifter forskellige dele af teksten i tekstboksen.
Det kan lade sig gøre at skrive en fælles Sub, som udfører selve udskiftningen af teksten, men der skal være en event pr. checkbox alligevel.
-----------KODE TIL USERFORM START-------------- Option Explicit
Private Sub UserForm_Initialize() 'Sæt startværdi i tekstboks TextBox1.Value = "1A2A3A4A5A" End Sub
Private Sub CheckBox1_Change() If CheckBox1.Value = True Then TextBox1.Value = Replace(TextBox1.Value, "1A", "1B") Else TextBox1.Value = Replace(TextBox1.Value, "1B", "1A") End If End Sub
Private Sub CheckBox2_Change() If CheckBox2.Value = True Then TextBox1.Value = Replace(TextBox1.Value, "2A", "2B") Else TextBox1.Value = Replace(TextBox1.Value, "2B", "2A") End If End Sub
Private Sub CheckBox3_Change() If CheckBox3.Value = True Then TextBox1.Value = Replace(TextBox1.Value, "3A", "3B") Else TextBox1.Value = Replace(TextBox1.Value, "3B", "3A") End If End Sub
Private Sub CheckBox4_Change() If CheckBox4.Value = True Then TextBox1.Value = Replace(TextBox1.Value, "4A", "4B") Else TextBox1.Value = Replace(TextBox1.Value, "4B", "4A") End If End Sub
Private Sub CheckBox5_Change() If CheckBox5.Value = True Then TextBox1.Value = Replace(TextBox1.Value, "5A", "5B") Else TextBox1.Value = Replace(TextBox1.Value, "5B", "5A") End If End Sub
Da jeg kørte koden første gang, kom der 22 fejl, da jeg så ændrede Value til Text forsvandt fejlene, men der sker stadig intet når jeg tjekker resultatet
der kommer heller ingen tekst i textbox1
Option Explicit On Public Class Form1
Private Sub UserForm_Initialize() TextBox1.Text = "1A2A3A4A5A" End Sub
Private Sub CheckBox1_Change() If CheckBox1.Checked = True Then TextBox1.Text = Replace(TextBox1.Text, "1A", "1B") Else TextBox1.Text = Replace(TextBox1.Text, "1B", "1A") End If End Sub
Private Sub CheckBox2_Change() If CheckBox2.Checked = True Then TextBox1.Text = Replace(TextBox1.Text, "2A", "2B") Else TextBox1.Text = Replace(TextBox1.Text, "2B", "2A") End If End Sub
Private Sub CheckBox3_Change() If CheckBox3.Checked = True Then TextBox1.Text = Replace(TextBox1.Text, "3A", "3B") Else TextBox1.Text = Replace(TextBox1.Text, "3B", "3A") End If End Sub
Private Sub CheckBox4_Change() If CheckBox4.Checked = True Then TextBox1.Text = Replace(TextBox1.Text, "4A", "4B") Else TextBox1.Text = Replace(TextBox1.Text, "4B", "4A") End If End Sub
Private Sub CheckBox5_Change() If CheckBox5.Checked = True Then TextBox1.Text = Replace(TextBox1.Text, "5A", "5B") Else TextBox1.Text = Replace(TextBox1.Text, "5B", "5A") End If End Sub
End Class
skal jeg lave en slags relation imellem checkbox1-5 og textbox1
Jeg har ikke rørt ved VB siden 95, så er en smule rusten
Den kode, jeg har lavet, er til VBA (Visual Basic for Applications), og den ændrer korrekt teksten i TextBox1. Jeg kan se på "Option Explicit On", at det ikke er VBA, du bruger.
Relationen mellem CheckBox1-5 og TextBox1 består i, at CheckBox1-5 via koden bliver instrueret om at ændre den tilhørende værdi i TextBox1 afhængigt af, om checkboksen er slået til eller fra. Det var det, du bad om i dit spørgsmål
I mit eksempel bliver TextBox1 udfyldt med værdien "1A2A3A4A5A" fra starten. Hvis din TextBox1 ikke indeholder noget med "1A", "2A", ... "5A", eller "1B", "2B" osv. vil ændring af checkboksene ikke ændre på noget. Du skal tilrette koden til de enkelte checkbokse, så den passer med, hvad de skal udskifte.
Du har ganske ret i at det virker fantastisk i Excel, Men lagde jo netop opgaven i Visual Basic, da mit problem ikke ligger i excel VBA, men i Visual Basic VB..
Kan man evt exportere funktionen fra Excel og lave det om til en EXE fil, som det er mulight i VB
Det er det eneste der mangler for at Excel rent faktisk vil være brugbart i denne sammenhæng
Skal kunne bruge funktionen på alle maskiner, win 95,98,2000 XP og Win7, de fleste af dem har ikke Office installeret.
Ellers så lad os lukke den her, og du skal have mange tak for hjælpen, så lærte jeg jo også lidt mere om Excel :o) vidste faktisk ikke at man kunne kode i Excel, det giver jo helt nye muligheder i min verden , tak
Hvis du tjekker spørgsmål under Visual Basic, vil du se, at mange af dem handler om VBA. På baggrund af indholdet i dit spørgsmål antog jeg, at det handlede om VBA.
Koden virker ikke kun i Excel. Den er lavet i Word.
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.