23. august 2006 - 20:36Der er
9 kommentarer og 1 løsning
fra textbox til celle
1.Jeg har en userform, hvor jeg kan indtaste et beløb i et textfelt. Når jeg klikker OK, skal dette beløb havne i celle B13. Dernæst skal det trækkes fra det beløb, som allerede står i C12. Og resultatet skal så stå i C13.
Dette ku jeg måske godt finde ud af selv, men hvad så næste gang jeg indtaster et tal? Så skal det jo havne i B14 og trækkes fra det, der står i C13 - og resultatet i C14. Osv osv...
Hvordan gør man det? Er det noget med en løkke?
2. Textfeltet i userformen med beløbet - kan det ikke formateres sådan, at man ikke kan indtaste bogstaver i det, kun tal?
3. Og så lige noget helt andet nu jeg er i gang: Kan man føje en lydfil til en msgbox eller userform?
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 110 Then ' komma laves om til punktum KeyCode = 190 Else If KeyCode < 96 Or KeyCode > 105 Then KeyCode = 0 ' kun tal End If End Sub
Hvis B kolonnen er tom op til række B12, så skulle denne kode virke.
Private Sub CommandButton1_Click() Dim RW As Long RW = Sheets("Ark1").Range("B65536").End(xlUp).Offset(1, 0).Row Sheets("Ark1").Range("B" & RW).Value = UserForm1.TextBox1.Text Sheets("Ark1").Range("C" & RW).Value = Sheets("Ark1").Range("C" & RW - 1).Value - Sheets("Ark1").Range("B" & RW).Value End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 110 Then ' komma laves om til punktum KeyCode = 190 Else If KeyCode < 96 Or KeyCode > 105 Then KeyCode = 0 ' kun tal End If End Sub
Tak for de hurtige svar. Jeg fumlede meget med det i aftes. Kabbaks kode er god til det med at springe et trin ned, men jeg kan stadig ikke få den til at starte med at indsætte i en bestemt celle første gang. Har lavet mit regneark lidt om nu, så den skal sætte ind i B4.
Private Sub CommandButton1_Click() Dim RW As Long RW = Sheets("Ark1").Range("B65536").End(xlUp).Offset(1, 0).Row If RW < 4 Then RW = 4 ' hvis den tæller højere op end række 4, vælger den 4 Sheets("Ark1").Range("B" & RW).Value = UserForm1.TextBox1.Text Sheets("Ark1").Range("C" & RW).Value = Sheets("Ark1").Range("C" & RW - 1).Value - Sheets("Ark1").Range("B" & RW).Value End Sub
Tusind tak kabbak. Jubi! det virker. Og det er sørme også lige før, jeg forstår, hvad der foregår :-)
Vil du ikke være så sød at forklare mig, hvad End(xlUp) betyder? Og tallet 65536 - er det så mange rækker, der er i et regneark? Og en sidste ting - står RW for row?
Vil du ikke være så sød at forklare mig, hvad End(xlUp) betyder?
'RW = Sheets("Ark1").Range("B65536").End(xlUp).Offset(1, 0).Row' Her siger jeg, gå til nederste celle i arket 'Sheets("Ark1").Range("B65536")' gå så opad indtil du møder en celle med noget i '.End(xlUp).' Hop så ned på cellen nedenunder. '.Offset(1, 0)' fortæl så hvilken række du står i '.Row'
Tusind tak igen. Det er ikke alle herinde, der gider de pædagogiske forklaringer også :-) Er meget glad for det. Når jeg også forstår det i stedet for bare at kopiere, så kan jeg jo bedre bruge det i en anden kombination en anden gang. Svært stof når man er ny i det! Men meget spændende.
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.