Botones de opción en formulario para excel

Tengo el sgt inconveniente

En una hoja de excel tengo almacenado los datos personales de una persona, estos datos se registra o almacenan por medio de un formulario.. Pero como hago para lograr registrar el estado de SEXO (masculino o femenino) usando los botones de opción dentro de una frame y asu ves esta fram esta dentro de otra, adjunto imagen del formulario

Y el código que utilizo que me da error y no logro ingresar o registrar ninguno de los 2 estados ni masculino ni femenino,

Este es parte del código

Private Sub CommandButton1_Click()
   Dim Sexo As srintg
         M = masculino.Value
         F = femenino.Value
  If masculino.Value = True Then
    Sexo = "masculino"
   Else
    Sexo = "femenino"
   End If

1 Respuesta

Respuesta
1

[hola

Te paso un ejemplo

If option1then 

Ranger("D") = "Maculino"

Elseif option2 then

Ranger("D") = "Femenino"

End if

Macro para pasar los datos a la hoja

Private Sub CommandButton1_Click()
Set h = Sheets("Hoja1")
'
u = h.Range("A" & Rows.Count).End(xlUp).Row
'
If OptionButton1 Then
    sexo = "Masculino"
ElseIf OptionButton2 Then
    sexo = "Femenino"
End If
h.Cells(u, "D") = sexo
End Sub

valora para finalizar saludos!

Inserte tu código

Pero no funciono,,,, te paso el detalle

Te envío las 2 imágenes por si de pronto e spor la intentar de ela coliumna

[Hola 

Recién noto las columnas es en la "F", pero no estoy seguro en que fila es para pasar los datos, le estoy poniendo apartir de la fila 5


Observo que estas usando

Option explicit

Esto obliga a que las variables estén declaradas, en este caso "h", "u"y "sexo" no está declarada

Pon esto

Dim h, u, sexo


te paso la macro corregida

Private Sub CommandButton1_Click()
Set h = Sheets("Hoja1")
'
u = h.Range("F" & Rows.Count).End(xlUp).Row + 1
If u < 5 Then u = 5
'
If OptionButton1 Then
    sexo = "Masculino"
ElseIf OptionButton2 Then
    sexo = "Femenino"
End If
h.Cells(u, "F") = sexo
End Sub

Valora la respuesta para finalizar saludos!

Ok, ya no reporta error, y los datos ingresan ala hoja,

Pero no me coloca texto "masculino" ni "femenino", me coloca VERDADERO cuando selecciono masculino y cuando selecciono femenino me da error

Y LOS DATOS son a partir de la fila 6, EN LA 5 ESTÁN LOS ENCABEZADOS

TE PREGUNTO:  q es la      "U"   Y Q ES es la SET h

Anule la instrucción

h.cells (u,"f") = sexo

Solo así no da error, pero coloca para masculino verdadero y para femenino, falso

[hola 

No copiaste la ultima macro como te pasé

La "U" es la ultima fila para vaciar los datos.

a la variable sexo declara como string aparte

Dim sexo as string

Private Sub CommandButton1_Click()
Set h = Sheets("Hoja1")
'
u = h.Range("F" & Rows.Count).End(xlUp).Row + 1
If u < 5 Then u = 5
'
If OptionButton1 Then
    sexo = "Masculino"
ElseIf OptionButton2 Then
    sexo = "Femenino"
End If
h.Cells(u, "F") = sexo
End Sub

En la pregunta que hiciste a Dante vi que tus datos empieza en fila 6

En esta línea cambia 5 por 6

If u < 5 Then u = 5

ADriel TE AGRADEZCO, me ayudaste una ves con unos combobox para un aplicativo para un hotel

Pero este código que me envías de los estados de sexo mascu y femen,, NO FUNCIONA,,

Me salen errores por todos lados,,

Esperemos a que el sr Dante me responda,,, gracias

Aquí esta el código completo del formulario, + el que tu programaste y NO ingresan los datos,, para sexo

Option Explicit
Dim FilaVacia As Long
Dim sexo As String
Dim h, u As String
Dim rango As Range
Private Sub CommandButton1_Click()
Set h = Sheets("Hoja1")
u = h.Range("F" & Rows.Count).End(xlUp).Row + 1
If u < 6 Then u = 6
If OPTM Then
    sexo = "Masculino"
ElseIf OPTF Then
    sexo = "Femenino"
End If
h.Cells(u, "F") = sexo
     TextBox2.SetFocus
    Dim FilaVacia As Long
       With ThisWorkbook.Sheets("HOJA1")
        .Unprotect "5"
        FilaVacia = .Range("c" & Rows.Count).End(xlUp).Row + 1
        .Range("a" & FilaVacia) = Format(FilaVacia - 5, "00000")
        .Range("b" & FilaVacia) = Me.TextBox2.Text
        .Range("c" & FilaVacia) = Me.TextBox4.Text
        .Range("d" & FilaVacia) = Me.TextBox12.Text
        .Range("e" & FilaVacia) = Me.TextBox5.Text
        .Range("F" & FilaVacia) = Me.OPTM
        .Range("G" & FilaVacia) = Me.DTPicker1
        .Range("H" & FilaVacia) = Me.TextBox7.Text
        .Range("I" & FilaVacia) = Me.DTPicker2
        .Range("J" & FilaVacia) = Me.TextBox8.Text
        .Range("K" & FilaVacia) = Me.ComboBox1
        .Range("L" & FilaVacia) = Me.TextBox10.Text
        .Range("M" & FilaVacia) = Me.ComboBox2
        .Range("N" & FilaVacia) = Me.TextBox12.Text
        .Range("O" & FilaVacia) = Me.TextBox13.Text
        .Range("P" & FilaVacia) = Me.ComboBox3.Text
        .Range("Q" & FilaVacia) = Me.TextBox15.Text
     End With
        MsgBox "Datos INGRESADOS Correctamente"
    Hoja1.Protect "5"
    Unload Me
End Sub

Hay mucho para corregir un toke

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas