Avatar billede jonasq1 Mester
13. april 2021 - 21:42 Der er 5 kommentarer og
1 løsning

Visual Basic

Hej

hvis jeg har en textbox i visual basic og jeg gerne vil have at hvis jeg skriver ja så returnere den 1 og hvis jeg skriver nej i tekstboxen returnere den 0. er der nogle der kan hjælpe

på forhånd tak
Avatar billede Jan K Ekspert
13. april 2021 - 22:31 #1
Sæt en variabel lig teksboksens værdi.

Så kan du test med en if om der er svaret ja eller nej og så sætte værdien i forhold til det

Nogrt i stil med

If Ucase(Textbox.Value )= "JA" Then
  Returvaerdi = 1

ElseIf Ucase(Texbox.Value) = "NEJ"
  Returvaerdi = 0
Else
  Returvaerdi = ""
End If
Avatar billede jonasq1 Mester
13. april 2021 - 22:50 #2
Hvordan tænker du at jeg skulle implementere det?

Private Sub cmdSave_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")

'find first empty row in database
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'check for a part number
If Trim(Me.txtDato.Value) = "" Then
  Me.txtDato.SetFocus
  MsgBox "Skriv venligst dato"
  Exit Sub
End If

'copy the data to the database
'use protect and unprotect lines,
'    with your password
'    if worksheet is protected
With ws
'  .Unprotect Password:="password"
  .Cells(iRow, 4).Value = Me.txtDato.Value
  .Cells(iRow, 6).Value = Me.txtFrakl.Value
  .Cells(iRow, 7).Value = Me.txtTilkl.Value
  .Cells(iRow, 8).Value = Me.txtMødt.Value
'  .Protect Password:="password"
End With

'clear the data
Me.txtDato.Value = ""
Me.txtFrakl.Value = ""
Me.txtTilkl.Value = ""
Me.txtMødt.Value = ""
Me.txtDato.SetFocus
End Sub
Avatar billede Jan K Ekspert
14. april 2021 - 13:36 #3
Som noget af det sidste. Hvilken af dine værdier er det, som der skal testes på?
Avatar billede jonasq1 Mester
14. april 2021 - 13:46 #4
Det er på den der hedder “mødt”
Avatar billede Jan K Ekspert
14. april 2021 - 14:23 #5
Noget i denne stil. Ikke testet, da jeg jo ikke har din formular

Private Sub cmdSave_Click()
Dim iRow As Long
Dim ws As Worksheet
Dim TEST As String
Set ws = Worksheets("Data")

'find first empty row in database
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'check for a part number
If Trim(Me.txtDato.Value) = "" Then
  Me.txtDato.SetFocus
  MsgBox "Skriv venligst dato"
  Exit Sub
End If

'copy the data to the database
'use protect and unprotect lines,
'    with your password
'    if worksheet is protected

TEST = Me.txtMødt.Value
If UCase(TEST) = "JA" Then
  Worksheets("Data").Cells(iRow, 8).Value = 1
ElseIf UCase(TEST) = "NEJ" Then       
  Worksheets("Data").Cells(iRow, 8).Value = 0
Else
  Worksheets("Data").Cells(iRow, 8).Value = ""
End if
   
With ws
'  .Unprotect Password:="password"
  .Cells(iRow, 4).Value = Me.txtDato.Value
  .Cells(iRow, 6).Value = Me.txtFrakl.Value
  .Cells(iRow, 7).Value = Me.txtTilkl.Value
' .Cells(iRow, 8).Value = Me.txtMødt.Value
'  .Protect Password:="password"
End With

'Test om Mødt er udfyldt med Ja eller Nej

TEST = Me.txtMødt.Value

If UCase(TEST) = "JA" Then
  Worksheets("Data").Cells(iRow, 8).Value = 1
ElseIf UCase(TEST) = "NEJ" Then       
  Worksheets("Data").Cells(iRow, 8).Value = 0
Else
  Worksheets("Data").Cells(iRow, 8).Value = ""
End if


'clear the data
Me.txtDato.Value = ""
Me.txtFrakl.Value = ""
Me.txtTilkl.Value = ""
Me.txtMødt.Value = ""
Me.txtDato.SetFocus
End Sub
Avatar billede Jan K Ekspert
14. april 2021 - 14:24 #6
Du kunne indbygge fejlhåndtering, der testede om mødt udfyldes med andet end Ja eller Nej.  Her sættes cellen barte blank, hvis der er tastet noget andet.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester