Jump to content

elkely

Members
  • Content Count

    106
  • Joined

  • Last visited

About elkely

  • Rank
    Advanced Member
  • Birthday 11/11/1975
  1. Muchas gracias. Tema solucionado.
  2. Muchas gracias [uSER=215594]@LeandroA[/uSER]. Al hacer 3 textbox, no sabría después unificar la fecha en una sola celda. Si hay otra forma de plantear el ingreso de fecha, te agradecería tus sugerencias, aunque tuviese que modificar el código. Lo que necesito conseguir es que se ingrese bien la fecha o de lo contrario insista hasta que se haga. Gracias a todos
  3. Gracias [uSER=1101]@Fleming[/uSER], tienes toda la razón. Lo siento. Adjunto archivo que indica las dos áreas diferente para trabajar. Saludos Limitar Rango.xls
  4. Saludos para todos. En una hoja protegida, necesito trabajar con algunas celda bloqueadas, necesito limitar el área de trabajo a determinados rangos. La opción SrollArea del la hoja solo me permite indicar un rango, y necesito hacerlo con varios rangos de la misma hoja. ¿Hay alguna forma de hacerlo? ¿Se puede hacer con un código VBA? Gracias por vuestra ayuda.
  5. Tienes razón [uSER=1101]@Fleming[/uSER] Adjunto archivo. Lo que quiero conseguir es que si se pone cualquier cosa que no sea en el formato dd-mm-aaa, en el textbox fecha, siempre salga un mensaje indicando que hay que hacerlo. Muchas gracias Userfom Ejemplo.rar
  6. Muchas gracias [uSER=46507]@Macro Antonio[/uSER]. Al aplicar esta orden si obliga a poner los separadores, y si no lo hago me avisa de que le de el formato correcto, sin embargo, salta error si pongo un separador (12-1214) o si pongo una fecha erronea (33-12-14) no me dice nada. Lo que necesito conseguir, es que ese textbox si no pongo correctamente una fecha valida y real (dd-mm-yy) este textbox se limpie y siempre avise de lo que debo de hacerlo con un mensaje (Msgbox) para poder agregar/modificar. Application.ScreenUpdating = False ActiveCell = Val(cbo_bosquejo) ActiveCell.Offset(0, 1) = txt_tema ActiveCell.Offset(0, 2) = CDate(txt_fecha) ActiveCell.Offset(0, 2).NumberFormat = "dd-mm-yy" MsgBox "Debes introducir formato de fecha valido (dd-mm-yy)", vbInformation + vbOKOnly Application.ScreenUpdating = True[/CODE] Agrego de nuevo el código entero, por que quizás esa ordenes que necesito vayan en otro lado. Muchas gracias por vuestra paciencia. [CODE]Private Sub cmd_Agregar_Click() Dim i As Integer If cbo_bosquejo.Text = "" Then MsgBox "Debes introducir número bosquejo", vbInformation + vbOKOnly cbo_bosquejo.SetFocus Exit Sub End If If txt_tema.Text = "" Then MsgBox "Debes introducir un tema", vbInformation + vbOKOnly txt_tema.SetFocus Exit Sub End If If txt_fecha.Text = "" Then MsgBox "Debes introducir una fecha de inicio", vbInformation + vbOKOnly txt_fecha.SetFocus Exit Sub End If If Not (Mid(cbo_bosquejo.Text, 1, 1) Like "[0-9]") Then MsgBox "Debes introducir número bosquejo", vbInformation + vbOKOnly cbo_bosquejo.SetFocus Exit Sub End If For i = 2 To Len(cbo_bosquejo.Text) If Mid(cbo_bosquejo.Text, i, 1) Like "0-9" Then MsgBox "Debes introducir número bosquejo", vbInformation + vbOKOnly cbo_bosquejo.SetFocus Exit Sub End If Next Sheets("Bosquejos").Activate Dim fCliente As Integer fCliente = nCliente1(cbo_bosquejo.Text) If fCliente = 0 Then Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Activate Loop Else Cells(fCliente, 1).Select End If Application.ScreenUpdating = False ActiveCell = Val(cbo_bosquejo) ActiveCell.Offset(0, 1) = txt_tema ActiveCell.Offset(0, 2) = CDate(txt_fecha) ActiveCell.Offset(0, 2).NumberFormat = "dd-mm-yy" MsgBox "Debes introducir formato de fecha valido (dd-mm-yy)", vbInformation + vbOKOnly Application.ScreenUpdating = True LimpiarFormulario cbo_bosquejo.SetFocus End Sub[/CODE]
  7. Muchas gracias [uSER=46507]@Macro Antonio[/uSER], ¿donde debo insertar esta orden en el código que adjunto?
  8. Muchas gracias [uSER=46507]@Macro Antonio[/uSER], ¿donde debo insertar esta orden en el código que adjunto?
  9. Buenas, de nuevo acudiendo al sanedrín de la sabiduría. Tengo el siguiente código para "Agregar" en el Userfom Private Sub cmd_Agregar_Click() Dim i As Integer If cbo_bosquejo.Text = "" Then MsgBox "Debes introducir número bosquejo", vbInformation + vbOKOnly cbo_bosquejo.SetFocus Exit Sub End If If txt_tema.Text = "" Then MsgBox "Debes introducir un tema", vbInformation + vbOKOnly txt_tema.SetFocus Exit Sub End If If txt_fecha.Text = "" Then MsgBox "Debes introducir una fecha de inicio", vbInformation + vbOKOnly txt_fecha.SetFocus Exit Sub End If If Not (Mid(cbo_bosquejo.Text, 1, 1) Like "[0-9]") Then MsgBox "Debes introducir número bosquejo", vbInformation + vbOKOnly cbo_bosquejo.SetFocus Exit Sub End If For i = 2 To Len(cbo_bosquejo.Text) If Mid(cbo_bosquejo.Text, i, 1) Like "0-9" Then MsgBox "Debes introducir número bosquejo", vbInformation + vbOKOnly cbo_bosquejo.SetFocus Exit Sub End If Next Sheets("Bosquejos").Activate Dim fCliente As Integer fCliente = nCliente1(cbo_bosquejo.Text) If fCliente = 0 Then Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Activate Loop Else Cells(fCliente, 1).Select End If Application.ScreenUpdating = False ActiveCell = Val(cbo_bosquejo) ActiveCell.Offset(0, 1) = txt_tema ActiveCell.Offset(0, 2) = CDate(txt_fecha) Application.ScreenUpdating = True LimpiarFormulario cbo_bosquejo.SetFocus End Sub[/CODE] De esta forma consigo, que se rellenen todos los textbox, que el primero sea solo numero y que el tercero se guarde en formato de fecha y que todos ingrese los datos en las columnas correspondiente. Como puedo hacer para que el tercero, el (txt_fecha) obligue a dar un formato especifico de fecha o que incluso lo haga solo. Tendría que ser (dd-mm-aa) Además ¿hay algo que sobre en el código que he puesto? Muchas gracias
  10. Muchas gracias a los tres. Tema solucionado.
  11. Saludos para todos. Utilizo un userfom par introducir datos en una tabla de tres columnas, uno de los textbox (txt_fecha) lo uso para ingresar fecha, con el siguiente código. Application.ScreenUpdating = False ActiveCell = Val(cbo_bosquejo) ActiveCell.Offset(0, 1) = txt_tema ActiveCell.Offset(0, 2) = txt_fecha Application.ScreenUpdating = True[/CODE] Los datos los ingresa bien, cada uno en su lugar. Pero una vez introducida la fecha, la celda no la identifica como fecha (aunque la celda este en formato fecha) y me genera problemas graves en los cálculos, esto lo hace aunque introduzca los datos en formato dd/mm/aa o dd-mm-aa. ¿Qué debo de hacer para que la celda donde va la fecha la trate como tal? Muchas gracias
  12. Excelente, muchas gracias [uSER=191685]@Héctor Miguel[/uSER]. Justo lo que necesitaba. Tema Solucionado
  13. Buenas, Tengo un Userfom donde añado, modifico datos de una tabla de 27 columnas. Todo va bien, menos cuando quiero eliminar. En Eliminar tengo el siguiente código Private Sub cmd_Eliminar_Click() Dim fCliente As Integer fCliente = nCliente(cbo_Nombre.Text) If fCliente = 0 Then MsgBox "El orador que quiere eliminar no existe", vbInformation + vbOKOnly cbo_Nombre.SetFocus Exit Sub End If If MsgBox("¿Seguro que quiere eliminar este orador?", vbQuestion + vbYesNo) = vbYes Then Cells(fCliente, 1).Select ActiveCell.Clear LimpiarFormulario MsgBox "Orador eliminado", vbInformation + vbOKOnly cbo_Nombre.SetFocus End If End Sub[/CODE] Evidentemente con la orden ActiveCell.Clear solo consigo limpiar la celda seleccionado que en este caso es la primera que es la que se carga. ¿Cómo puedo hacer para limpiar todas las 27 columnas correspondiente a esa fila? No puedo usar ActiveCell.EntireRow.Delete, ya que eso elimina la fila y ocasionaría un desbarajuste en todo las hojas y formulas que depende de esta tabla. Por eso debo limpiar la 27 columnas de la fila, y después al salir se ordena alfabeticamente, sin ocasionar ningún problema a todo lo que depende de la tabla. Por eso solo puedo limpiar y por eso os ruego vuestra sabiduría. Muchas gracias
  14. Estupendo. Muchas gracias por todo. Tema solucionado
  15. Muchas gracias a los tres. [uSER=201750]@aaquino[/uSER] tu idea esta bien, pero no me vale ya que limita columna y necesitaba un rango especifico. @fellay y [uSER=67376]@exceloy[/uSER] me he quedado con la vuestra, ya que limita rango, lo que me queda es conseguir sobre este tema seria limitar dos rangos en el mismo código, es decir a Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not (Intersect(Target, Range("AK2:BI11")) Is Nothing) Then Range("AB2") = ActiveCell End If End Sub[/CODE] Poder incluirle, otro rango mas, como por ejemplo BE14 a BE64. Muchas gracias a los tres, estoy en la parte final de un proyectito y voy a a reventar. De verdad muchas gracias
×
×
  • Create New...

Important Information

Privacy Policy