Formulario, registrar en distintas paginas.

Solo consultas sobre macros y código VBA Excel.
Reglas del Foro 1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!

Formulario, registrar en distintas paginas.

Notapor seguimiento » 11 Ago 2017 04:16

Hola, excelentes vídeos; tengo una consulta. He hecho un formulario userform en excel, y lo tengo predeterminado para que se abra desde un botón activex en la página 1 de mi libro de excel, pero yo necesito que lo que digite en el formulario se escriba en la Pagina 5 de mi libro y no en la primera, donde está el botón activex.

Como podría escribir el código VBA para que me haga esto.
seguimiento
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10
Registrado: 11 Ago 2017 04:00

Re: Formulario, registrar en distintas paginas.

Notapor HBanchieri » 11 Ago 2017 09:13

Hola seguimiento!

Sin su archivo de muestra solo puedo hacer suposiciones...

Este comando guarda el dato del TextBox1 en la hoja "activa".
Código: Seleccionar todo
 Range("A1")= TextBox1


Este comando guarda el dato del TextBox1 en la hoja "indicada".
Código: Seleccionar todo
 Hoja3.Range("A1")= TextBox1


Si son muchos los datos a pasar para la hoja te convendría usar "With/End With", una herramienta bastante poderosa para estos casos.

Saludos
Avatar de Usuario
HBanchieri
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 1475
Registrado: 20 Mar 2011 00:33
Ubicación: Sta. Cruz - Bolivia

Re: Formulario, registrar en distintas paginas.

Notapor seguimiento » 11 Ago 2017 11:32

Saludos HBanchieri, en verdad sé que sin el archivo original es algo complicado de ayudar, lo que haré es que intentare realizar el código como lo indicas. Por ahora no puedo subir el archivo ya que lo he dejado en mi ordenador casero.
seguimiento
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10
Registrado: 11 Ago 2017 04:00

Re: Formulario, registrar en distintas paginas.

Notapor HBanchieri » 11 Ago 2017 12:45

seguimiento escribió: lo que haré es que intentare realizar el código como lo indicas.


Ok, Suerte.

Cualquier duda.... :D

Saludos!
Avatar de Usuario
HBanchieri
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 1475
Registrado: 20 Mar 2011 00:33
Ubicación: Sta. Cruz - Bolivia

Re: Formulario, registrar en distintas paginas.

Notapor seguimiento » 11 Ago 2017 19:30

HBanchieri escribió:
seguimiento escribió: lo que haré es que intentare realizar el código como lo indicas.


Ok, Suerte.

Cualquier duda.... :D

Saludos!




Mira este es mi código:

If imei = "" Or municipio = "" Or comunidad = "" Or codigo = "" Or nivel = "" Or nombredirector = "" Or identidaddirector = "" Or nombreced = "" Or identidadced = "" Then

MsgBox "Está dejando campos requeridos vacios, complete por favor"


Range("a1000000").End(xlUp).Offset(1, 0).Select

ActiveCell.Value = imei.Value
ActiveCell.Offset(0, 1) = fecha.Value
ActiveCell.Offset(0, 2) = municipio.Value
ActiveCell.Offset(0, 3) = comunidad.Value
ActiveCell.Offset(0, 4) = centroeducativo.Value
ActiveCell.Offset(0, 5) = codigo.Value
ActiveCell.Offset(0, 6) = nivel.Value
ActiveCell.Offset(0, 7) = tipocentro.Value
ActiveCell.Offset(0, 8) = jornada.Value
ActiveCell.Offset(0, 9) = area.Value
ActiveCell.Offset(0, 10) = nombredirector.Value
ActiveCell.Offset(0, 11) = identidaddirector.Value
ActiveCell.Offset(0, 12) = nombreced.Value
ActiveCell.Offset(0, 13) = identidadced.Value
ActiveCell.Offset(0, 14) = apoyo1.Value
ActiveCell.Offset(0, 15) = apoyo2.Value
ActiveCell.Offset(0, 16) = apoyo3.Value
ActiveCell.Offset(0, 17) = visitasced.Value
ActiveCell.Offset(0, 18) = gustariaced.Value
ActiveCell.Offset(0, 19) = cuales.Value
ActiveCell.Offset(0, 20) = gpsdirector.Value
ActiveCell.Offset(0, 21) = indexdirector.Value

Como sugieres que lo arregle para que al abrirlo en la Hoja 1 de mi libro no se registren en esta sino que en la hoja 5.
seguimiento
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10
Registrado: 11 Ago 2017 04:00

Re: Formulario, registrar en distintas paginas.

Notapor HBanchieri » 12 Ago 2017 19:57

ActiveCell se refiere a la celda activa (de la hoja activa), a lo mejor de los casos debes cambiar la hoja y la celda activa. como ya te he dicho:
Sin un archivo de muestra es difícil...

Suerte!
Avatar de Usuario
HBanchieri
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 1475
Registrado: 20 Mar 2011 00:33
Ubicación: Sta. Cruz - Bolivia

Re: Formulario, registrar en distintas paginas.

Notapor seguimiento » 13 Ago 2017 02:59

HBanchieri escribió:ActiveCell se refiere a la celda activa (de la hoja activa), a lo mejor de los casos debes cambiar la hoja y la celda activa. como ya te he dicho:
Sin un archivo de muestra es difícil...

Suerte!



Saludos este es el archivo con el que estoy trabajando
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
seguimiento
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10
Registrado: 11 Ago 2017 04:00

Re: Formulario, registrar en distintas paginas.

Notapor HBanchieri » 14 Ago 2017 09:21

Esta podría ser una solución...

Código: Seleccionar todo
Private Sub CommandButton1_Click()
Dim fl&

If imei = "" Or municipio = "" Or comunidad = "" Or codigo = "" Or nivel = "" Or nombredirector = "" _
    Or identidaddirector = "" Or nombreced = "" Or identidadced = "" Then
    MsgBox "Está dejando campos requeridos vacios, complete por favor"
    Exit Sub
End If

With Hoja3
    fl = .[a1].End(xlDown).Row + 1
    .Range("A" & fl) = imei.Value
    .Range("B" & fl) = CDate(fecha)
    .Range("C" & fl) = municipio.Value
    .Range("D" & fl) = comunidad.Value
    .Range("E" & fl) = centroeducativo.Value
    .Range("F" & fl) = codigo.Value
    .Range("G" & fl) = nivel.Value
    .Range("H" & fl) = tipocentro.Value
    .Range("I" & fl) = jornada.Value
    .Range("J" & fl) = area.Value
    .Range("K" & fl) = nombredirector.Value
    .Range("L" & fl) = identidaddirector.Value
    .Range("M" & fl) = nombreced.Value
    .Range("N" & fl) = identidadced.Value
    .Range("O" & fl) = apoyo1.Value
    .Range("P" & fl) = apoyo2.Value
    .Range("Q" & fl) = apoyo3.Value
    .Range("R" & fl) = visitasced.Value
    .Range("S" & fl) = gustariaced.Value
    .Range("T" & fl) = cuales.Value
    .Range("U" & fl) = gpsdirector.Value
    .Range("V" & fl) = indexdirector.Value
End With
End Sub




Saludos
Avatar de Usuario
HBanchieri
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 1475
Registrado: 20 Mar 2011 00:33
Ubicación: Sta. Cruz - Bolivia

Re: Formulario, registrar en distintas paginas.

Notapor seguimiento » 14 Ago 2017 16:50

HBanchieri escribió:Esta podría ser una solución...

Código: Seleccionar todo
Private Sub CommandButton1_Click()
Dim fl&

If imei = "" Or municipio = "" Or comunidad = "" Or codigo = "" Or nivel = "" Or nombredirector = "" _
    Or identidaddirector = "" Or nombreced = "" Or identidadced = "" Then
    MsgBox "Está dejando campos requeridos vacios, complete por favor"
    Exit Sub
End If

With Hoja3
    fl = .[a1].End(xlDown).Row + 1
    .Range("A" & fl) = imei.Value
    .Range("B" & fl) = CDate(fecha)
    .Range("C" & fl) = municipio.Value
    .Range("D" & fl) = comunidad.Value
    .Range("E" & fl) = centroeducativo.Value
    .Range("F" & fl) = codigo.Value
    .Range("G" & fl) = nivel.Value
    .Range("H" & fl) = tipocentro.Value
    .Range("I" & fl) = jornada.Value
    .Range("J" & fl) = area.Value
    .Range("K" & fl) = nombredirector.Value
    .Range("L" & fl) = identidaddirector.Value
    .Range("M" & fl) = nombreced.Value
    .Range("N" & fl) = identidadced.Value
    .Range("O" & fl) = apoyo1.Value
    .Range("P" & fl) = apoyo2.Value
    .Range("Q" & fl) = apoyo3.Value
    .Range("R" & fl) = visitasced.Value
    .Range("S" & fl) = gustariaced.Value
    .Range("T" & fl) = cuales.Value
    .Range("U" & fl) = gpsdirector.Value
    .Range("V" & fl) = indexdirector.Value
End With
End Sub




Saludos



Saludos

Mira he hecho el código, no da error de copilación pero, no registra lo que se digita en el el formulario.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
seguimiento
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10
Registrado: 11 Ago 2017 04:00

Re: Formulario, registrar en distintas paginas.

Notapor seguimiento » 14 Ago 2017 17:04

HBanchieri escribió:Esta podría ser una solución...

Código: Seleccionar todo
Private Sub CommandButton1_Click()
Dim fl&

If imei = "" Or municipio = "" Or comunidad = "" Or codigo = "" Or nivel = "" Or nombredirector = "" _
    Or identidaddirector = "" Or nombreced = "" Or identidadced = "" Then
    MsgBox "Está dejando campos requeridos vacios, complete por favor"
    Exit Sub
End If

With Hoja3
    fl = .[a1].End(xlDown).Row + 1
    .Range("A" & fl) = imei.Value
    .Range("B" & fl) = CDate(fecha)
    .Range("C" & fl) = municipio.Value
    .Range("D" & fl) = comunidad.Value
    .Range("E" & fl) = centroeducativo.Value
    .Range("F" & fl) = codigo.Value
    .Range("G" & fl) = nivel.Value
    .Range("H" & fl) = tipocentro.Value
    .Range("I" & fl) = jornada.Value
    .Range("J" & fl) = area.Value
    .Range("K" & fl) = nombredirector.Value
    .Range("L" & fl) = identidaddirector.Value
    .Range("M" & fl) = nombreced.Value
    .Range("N" & fl) = identidadced.Value
    .Range("O" & fl) = apoyo1.Value
    .Range("P" & fl) = apoyo2.Value
    .Range("Q" & fl) = apoyo3.Value
    .Range("R" & fl) = visitasced.Value
    .Range("S" & fl) = gustariaced.Value
    .Range("T" & fl) = cuales.Value
    .Range("U" & fl) = gpsdirector.Value
    .Range("V" & fl) = indexdirector.Value
End With
End Sub




Saludos



Por cierto gracias, esta ha sido una buena solución, aunque no sé aun muy bien por que no registra.
seguimiento
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10
Registrado: 11 Ago 2017 04:00

Re: Formulario, registrar en distintas paginas.

Notapor HBanchieri » 15 Ago 2017 09:15

Hola seguimiento,

Intente con:
Código: Seleccionar todo
Private Sub CommandButton1_Click()
Dim fl&

If mesced.Value <> "" Then
    If semanaced.Value <> "" Then
        If profesorced.Value <> "" Then
            If observacionced.Value <> "" Then
                MsgBox "Está dejando campos requeridos vacios, complete por favor"
                Exit Sub
            End If
        End If
    End If
End If

With Hoja7
fl = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & fl) = imeiced.Value
    .Range("B" & fl) = fechaced.Value
    .Range("C" & fl) = municipioced.Value
    .Range("D" & fl) = comunidadced.Value
    .Range("E" & fl) = centroeducativoced.Value
    .Range("F" & fl) = codigoced.Value
    .Range("G" & fl) = nivelced.Value
    .Range("H" & fl) = tipocentroced.Value
    .Range("I" & fl) = jornadaced.Value
    .Range("J" & fl) = areaced.Value
    .Range("K" & fl) = nombredirectorced.Value
    .Range("L" & fl) = identidaddirectorced.Value
    .Range("M" & fl) = nombrecedced.Value
    .Range("N" & fl) = identidadcedced.Value
    .Range("O" & fl) = gpsced.Value
End With

With Hoja12
fl = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & fl) = mesced.Value
    .Range("B" & fl) = semanaced.Value
    .Range("C" & fl) = profesorced.Value
    .Range("D" & fl) = observacionced.Value
    .Range("E" & fl) = nohubo.Value
    .Range("F" & fl) = nosepresento.Value
    .Range("G" & fl) = indexced2.Value
    .Range("H" & fl) = parentced.Value
    .Range("I" & fl) = indexced3.Value
End With

imeiced.Value = ""
fechaced.Value = ""
municipioced.Value = ""
comunidadced.Value = ""
centroeducativoced.Value = ""
codigoced.Value = ""
nivelced.Value = ""
tipocentroced.Value = ""
jornadaced.Value = ""
areaced.Value = ""
nombredirectorced.Value = ""
identidaddirectorced.Value = ""
nombrecedced.Value = ""
identidadcedced.Value = ""
gpsced.Value = ""
indexced1.Value = ""
mesced.Value = ""
semanaced.Value = ""
profesorced.Value = ""
observacionced.Value = ""
nohubo.Value = ""
nosepresento.Value = ""
indexced2.Value = ""
parentced.Value = ""
indexced3.Value = ""

imeiced.SetFocus

End Sub



Analicemos 3 cosas.
Cosa1:
Código: Seleccionar todo
If mesced.Value <> "" Then
    If semanaced.Value <> "" Then
        If profesorced.Value <> "" Then
            If observacionced.Value <> "" Then
                MsgBox "Está dejando campos requeridos vacios, complete por favor"
                Exit Sub
            End If
        End If
    End If
End If

* En la macro del libro, si cumple todas las condiciones se sale de la macro (en la parte que dice Else y Exit Sub)

Cosa2:
Código: Seleccionar todo
fl = .Range("A" & Rows.Count).End(xlUp).Row + 1

* En la macro del libro no busca exactamente la fila que deseamos.

Cosa 3:
Donde esta ubicada la secuencia que "Limpia" los datos.
* En la macro del libro se limpia los datos del formulario antes de pasarlos a la hoja, lógicamente no queda nada que pasar...

Saludos.
Avatar de Usuario
HBanchieri
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 1475
Registrado: 20 Mar 2011 00:33
Ubicación: Sta. Cruz - Bolivia

Re: Formulario, registrar en distintas paginas.

Notapor HBanchieri » 15 Ago 2017 09:39

Hola, mire...

Sin animo de atormentar su vida :D te muestro un excelente trabajo hecho por nada menos que el...
¡¡¡GRAN MAESTRO ANTONI DE LA GENTE!!!

OJO:

* Los títulos de columna deben estar en la fila 6.
* Los datos deben iniciar en la fila 7
* La columna B debe ser una columna con números de orden (o como quiera llamar) (secuencial y creciente)
* El formulario se crea en tiempo de ejecución, para cualquier cantidad de columnas.

Uno solo formulario para todo...

Saludos.

P.D.: Cuando pierdas la razón no me heces la culpa. :D :D :mrgreen:
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Avatar de Usuario
HBanchieri
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 1475
Registrado: 20 Mar 2011 00:33
Ubicación: Sta. Cruz - Bolivia

Re: Formulario, registrar en distintas paginas.

Notapor seguimiento » 16 Ago 2017 11:55

HBanchieri escribió:Hola, mire...

Sin animo de atormentar su vida :D te muestro un excelente trabajo hecho por nada menos que el...
¡¡¡GRAN MAESTRO ANTONI DE LA GENTE!!!

OJO:

* Los títulos de columna deben estar en la fila 6.
* Los datos deben iniciar en la fila 7
* La columna B debe ser una columna con números de orden (o como quiera llamar) (secuencial y creciente)
* El formulario se crea en tiempo de ejecución, para cualquier cantidad de columnas.

Uno solo formulario para todo...

Saludos.

P.D.: Cuando pierdas la razón no me heces la culpa. :D :D :mrgreen:




Hola de verdad gracias por tu ayuda, y si el fichero que me compartes es una barbaridad... Me aprovechare de la idea para futuros proyectos que tengo que realizar.

Seguimos en contacto, pero dejame decirte que sos un genio.
seguimiento
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10
Registrado: 11 Ago 2017 04:00

Re: Formulario, registrar en distintas paginas.

Notapor HBanchieri » 17 Ago 2017 08:55

seguimiento escribió: dejame decirte que sos un genio.

No es verdad!!! Pero gracias de todos los modos... :D

Un gusto poder ayudarte, hasta la próxima!

P.D.: De seguro Antonio cambiaría el nombre de los textBox y haría la macro con 10 lineas; y Carlos para hacerlo enojar la bajaría a 7. :D :D :D :twisted: :mrgreen:
Avatar de Usuario
HBanchieri
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 1475
Registrado: 20 Mar 2011 00:33
Ubicación: Sta. Cruz - Bolivia

Re: Formulario, registrar en distintas paginas.

Notapor seguimiento » 14 Sep 2017 19:49

HBanchieri escribió:
seguimiento escribió: dejame decirte que sos un genio.

No es verdad!!! Pero gracias de todos los modos... :D

Un gusto poder ayudarte, hasta la próxima!

P.D.: De seguro Antonio cambiaría el nombre de los textBox y haría la macro con 10 lineas; y Carlos para hacerlo enojar la bajaría a 7. :D :D :D :twisted: :mrgreen:
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
seguimiento
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10
Registrado: 11 Ago 2017 04:00

Siguiente

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados