ElsaMatilde, por favor auxíliame...
Hola Elsa espero te encuentres bien, mira mi problema es el siguiente: me he descargado uno de tus ejemplos de macros para utilizarlo en mi trabajo en donde debo registrar la consulta de los médicos por consultorio y usando un UserForm capturar los datos que se ingrasan para el registro de la consulta diaria, la macro esta incluida en tu ejemplo de macros3 y es tiene el siguiente código:
Private Sub cmdAceptar_Click()
Dim CeldaInicial As Variant
Dim col As Integer
Dim fila As Integer
CeldaInicial = "A1"
Set CeldaInicial = Range(CeldaInicial)
col = CeldaInicial.Column
'Busca cuál es la última fila
If CeldaInicial.Offset(1, 0).Value = "" Then
fila = 2
Else
fila = CeldaInicial.End(xlDown).Row + 1
End If
'Comienza a copiar los valores del UserForm a la hoja
Cells(fila, col).Value = TextBox1.Value
Cells(fila, col + 1).Value = TextBox2.Value
Cells(fila, col + 2).Value = TextBox3.Value
Set CeldaInicial = Nothing
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox1.SetFocus
End Sub
La cuestión aquí es que tomando tu ejemplo digamos que los datos de la columna "codigo" determinen la hoja en la que vaciaran los datos del UserForm, te lo expongo de la siguiente manera: si yo ingreso en el TextBox de "codigo" un 2 los datos de todo el UserForm se listen en la "Hoja 2" y si ingreso un 3 los datos se listen en la "Hoja 3" y así sucesivamente, he hecho algunos cambios al código de la macro, pero los datos no me los asigna en la fila subsecuente de las hojas, si capturo datos para la Hoja 2 me asigna la fila 2 pero si el siguiente dato es para la Hoja 3 me lo registra en la fila 3 de la Hoja 3 no en la 2, no sé si me explico, pero espero me puedas entender y ayudar ya que esta macro me ahorraría mucho tiempo laboral. Espero tu respuesta y ayuda, que sigas bien y hasta pronto.
Private Sub cmdAceptar_Click()
Dim CeldaInicial As Variant
Dim col As Integer
Dim fila As Integer
CeldaInicial = "A1"
Set CeldaInicial = Range(CeldaInicial)
col = CeldaInicial.Column
'Busca cuál es la última fila
If CeldaInicial.Offset(1, 0).Value = "" Then
fila = 2
Else
fila = CeldaInicial.End(xlDown).Row + 1
End If
'Comienza a copiar los valores del UserForm a la hoja
Cells(fila, col).Value = TextBox1.Value
Cells(fila, col + 1).Value = TextBox2.Value
Cells(fila, col + 2).Value = TextBox3.Value
Set CeldaInicial = Nothing
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox1.SetFocus
End Sub
La cuestión aquí es que tomando tu ejemplo digamos que los datos de la columna "codigo" determinen la hoja en la que vaciaran los datos del UserForm, te lo expongo de la siguiente manera: si yo ingreso en el TextBox de "codigo" un 2 los datos de todo el UserForm se listen en la "Hoja 2" y si ingreso un 3 los datos se listen en la "Hoja 3" y así sucesivamente, he hecho algunos cambios al código de la macro, pero los datos no me los asigna en la fila subsecuente de las hojas, si capturo datos para la Hoja 2 me asigna la fila 2 pero si el siguiente dato es para la Hoja 3 me lo registra en la fila 3 de la Hoja 3 no en la 2, no sé si me explico, pero espero me puedas entender y ayudar ya que esta macro me ahorraría mucho tiempo laboral. Espero tu respuesta y ayuda, que sigas bien y hasta pronto.
1 respuesta
Respuesta de Elsa Matilde
1