Jump to content

JDG

Members
  • Content Count

    44
  • Joined

  • Last visited

  • Country

    Spain

About JDG

  • Rank
    Member
  • Birthday October 5

Profile information

  • Gender
    Hombre
  • Localización:
    MADRID

Converted

  • Campos
    ;
  • Mi versión de Excel:
    2

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Muchisimas gracias Abraham, de verdad. Me das luz en el tema. Ademas, desde hace tiempo estoy pensando en adentrarme en el mundo de Visual.net. ¿cual es tu opinion?...
  2. Gracias por tu aporte, pero de momento eso es lo que tengo hecho con una hoja maximizada y de color sin lineas haciendo de fondo, pero esa no es mi intencion. Resumiendo es que fuera directamente e inmediatamente a un userform que es el que tengo como menu del "sistema"... Un saludo.
  3. Que parte del codigo quisieras ver?.... es un poco complicado completo por el contenido de la Base de datos.
  4. Oye!!!! esta genial este código. Me lo guardo para analizarlo y aprender algo mas despues...Si señor. Sin embargo, yo creo que lo que yo quería no se va a poder hacer, tal y como me comenta Alexanders "es un proceso normal".... Para que me entiendas, me refiero a todo lo que sucede desde que le haces clic al archivo para abrir hasta que empieza en tu código (por ejemplo) en el Private sub workbook_open (). De todas formas muchas gracias por tu aporte.
  5. A veces pensé que por ahi iban los tiros. Hasta ahora he probado las combinaciones de codigo al respecto dentro del before pero cuando creo que lo he conseguido resulta que no. Gracias por tu sugerencia.
  6. Gracias. Algo asi me esperaba. Solo queria confirmar con personas mas expertas. Por cierto, ¿que alternativas me sugieres al Select o Activate?...
  7. Gracias Alexander. Esa instruccion la utilizo, pero no es la que me cumple para lo que yo quiero. A ver si me explico: Tomando como ejemplo tu recomendación, imagino que me dirias que el application.ScreenUpdating=False lo coloque en el principio de un codigo en el Thisworbook (por ejemplo work_open) verdad?, bueno pues mi necesidad o inquietud estaria en lo que sucede antes de llegar a esa primera instrucción una vez ya cargado excel como aplicacion (por ejemplo despues del durante el logotipo) Lo que pasa es que me he dado cuenta que se ve la ultima hoja que se trabajo antes de guardar.(mientras inicia) Como dije antes, a veces es micro segundos, pero a veces es mas. Luego ya empieza normalmente en el codigo del proyecto....
  8. Hola. Mi pregunta es: Desde que se hace click en un archivo excel y empieza a cargar hasta que recibe la primera instruccion que hay por ejemplo en el ThisKorbook o en un auto_open, ese proceso que a veces resulta en un parpadeo ¿donde se puede manipular para que no se vea?....no se si me explico. Es que a veces se ve (tarda mas) y a veces practicamente no se ve (apenas tarda nada). Gracias.
  9. Gracias Antoni, pero con tanto pensar me recordé de un comentario que una vez lei: "no puedes enviar nada a donde ya está".... Lo que he hecho es enviarlo a otro textbox primero y luego si al que es con set focus. Se que es una chapuza pero me funcionó. Claro siempre me quedará la duda de donde es que esta el problema. Un saludo.
  10. Ese e el userform que me da problemas
  11. Gracias por responder. corto y pego el código espero se entienda. Intente explicar con anotaciones todo. Gracias de antemano. ----- Option Explicit '' ''' VARIABLES ''__________________________ Dim contador As Integer Dim MyRange As Range Dim Resp As Byte Dim f As Integer Dim OpMod As String Dim Newcont As Integer '' '''INITIALIZE ''_____________________________ Private Sub UserForm_Initialize() Application.ScreenUpdating = False Application.DisplayAlerts = False txt_BusFecha.TabStop = False txt_busId.TabStop = True Call OultarTítulo(Me) 'para que al iniciar el form lo haga con la opcion CONSULTA como predeterminada ademas del 'titulo CONSULTA y el boton Reemplazar oculto, además de estar protegida la informacion InterfaceCon Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub '' ''' BUSCAR REGISTRO '' ______________________ Private Sub Cmd_Buscar_click() Application.ScreenUpdating = False Application.DisplayAlerts = False Dim FILA, FINAL, I As Integer Call OultarTítulo(Me) 'para que al iniciar el form lo haga con la opcion CONSULTA como predeterminada ademas del 'titulo CONSULTA y el boton Reemplazar oculto, además de estar protegida la informacion InterfaceCon 'EMPIEZA LA BUSQUEDA If txt_busId = Empty Then MsgBox "DEBE INGRESAR EL ID DE OPERACION PARA REALIZAR LA BUSQUEDA", vbExclamation txt_busId.BackColor = &H8080FF 'da color al fondo del txt txt_busId.SetFocus Exit Sub 'sale de la subrutina para volver a consultar End If 'Continúa ya que no está vacio If txt_busId < Chr(48) Or txt_busId > Chr(57) Then MsgBox "EL ID DEBE SER NUMERO", vbExclamation txt_busId = Empty txt_busId.BackColor = &H8080FF 'da color al fondo del txt txt_busId.SetFocus Exit Sub 'sale de la subrutina para volver a consultar End If 'Continúa ya que es número 'OBTENER LA FILA DE LA CELDA QUE CONTIENE EL ID FILA = 4 Do While Hoja06.Cells(FILA, 4) <> Empty ' FILA = FILA + 1 Loop FINAL = FILA - 1 'el while loop nos daría la primera fila vacia, le restamos una para obtene la ultima llena For I = 4 To FINAL 'avanza por toda las llevas If txt_busId.Text = Hoja06.Cells(I, 2) Then txt_BusFecha.Text = Hoja06.Cells(I, 4) txt_BusDescripcion.Text = Hoja06.Cells(I, 5) txt_BusNaturaleza.Text = Hoja06.Cells(I, 6) 'hacer roja el campo de Naturaleza cuando sea un Débito If Me.txt_BusNaturaleza = "Débito" Then Me.txt_BusNaturaleza.ForeColor = vbRed Me.txt_BusImporte.ForeColor = vbRed Else Me.txt_BusNaturaleza.ForeColor = vbBlack Me.txt_BusImporte.ForeColor = vbBlack End If 'Da formato al campo BusImporte Txt_BusOperacion.Text = Hoja06.Cells(I, 7) Txt_BusFondo.Text = Hoja06.Cells(I, 😎 txt_BusImporte.Value = Hoja06.Cells(I, 9) txt_BusImporte.Value = Format(Me.txt_BusImporte.Value, "#,##0.00") 'CONFIRMACION DE EXTRACCION EN BUSQUEDA 'se crea un mensaje que se cierra automaticamente CreateObject("wscript.shell").Popup "¡DATOS EXTRAIDOS CON ÉXITO!...", 1, "Mensaje" 'Sale de la subrutina al ya haber extraido los campos txt_busId.SetFocus Exit Sub End If Next I txt_BusFecha = Empty txt_BusDescripcion = Empty txt_BusNaturaleza = Empty Txt_BusOperacion = Empty Txt_BusFondo = Empty txt_BusImporte = Empty MsgBox "NO SE ENCONTRO EL DATO" txt_busId = Empty txt_busId.SetFocus End Sub 'BOTON ULTIMO REGISTRO Private Sub cmd_UltRegistro_Click() Dim RegistroAnterior As Integer Dim UltId As String Dim UltFecha As String Dim UltDescripcion As String Dim UltNaturaleza As String Dim UltOperacion As String Dim UltFondo As String Dim UltImporte As String Dim MyRange As Range Dim contador As Integer Dim Filabuscada As Integer Dim busco As Object Dim FILA As Integer Dim FINAL As Integer ' Calcula el ultimo numero utilizado en la BDD Set MyRange = Worksheets("BDD").Range("B4:B3003") contador = Application.WorksheetFunction.Max(MyRange) UltId = contador Set busco = Sheets("BDD").Range("b4:b3003").Find(UltId) Filabuscada = busco.Row UltFecha = Hoja06.Cells(Filabuscada, 4).Value UltDescripcion = Hoja06.Cells(Filabuscada, 5).Value UltNaturaleza = Hoja06.Cells(Filabuscada, 6).Value UltOperacion = Hoja06.Cells(Filabuscada, 7).Value UltFondo = Hoja06.Cells(Filabuscada, 8).Value UltImporte = Hoja06.Cells(Filabuscada, 9).Value MsgBox "ULTIMO ID : " + UltId _ & Chr(13) + "FECHA : " + UltFecha _ & Chr(13) + "DESCRIPCION : " + UltDescripcion _ & Chr(13) + "NATURALEZA : " + UltNaturaleza _ & Chr(13) + "OPERACION : " + UltOperacion _ & Chr(13) + "FONDO : " + UltFondo _ & Chr(13) + "IMPORTE : " + UltImporte, 0, " ULTIMO REGISTRO" End Sub '' ''' CONFIGURACIONES '' ________________ ''segun la opcion seleccionada en el optionbutton oculta ''o muestra el boton de reemplezar y cambia el titulo al userform potegiendo los campos en caso de ser consuta ' Private Sub bt_opModNo_change() If BT_OpModSI = True Then InterfaceMod Else InterfaceCon End If End Sub '' ''' MASCARAS '' ___________ 'para colocar los guiones en las fechas automaticamente Private Sub txt_BusFecha_change() 'seleccionamos de acuerdo a la longitud de los datos que vamos ingresando Select Case Len(txt_BusFecha.Value) Case 2 'si el textbox tiene 2 caracteres txt_BusFecha.Value = txt_BusFecha.Value & " " Case 5 'si el textbox tiene 5 caracteres txt_BusFecha.Value = txt_BusFecha.Value & " " End Select End Sub '' ''' BOTON LIMPIAR FORMULARIO '' _______________________ Private Sub cmdLimpiarfrmBusqueda_Click() LimpiarfrmBusqueda txt_busId.SetFocus End Sub '' ''' BOTON CERRAR FORMULARIO '' _______________________ Private Sub cmdCerrarFrmBusqueda_Click() LimpiarfrmBusqueda Unload Me End Sub '' ''' BOTON REEMPLAZAR '' _______________________ Private Sub CMD_REEMPLAZAR_Click() Dim FILA, FINAL, I, MENSAJE As Integer FILA = 4 'VALIDACION DE TODOS LOS CAMPOS COMPLETOS If txt_busId = Empty Or txt_BusFecha = Empty Or txt_BusDescripcion = Empty Or txt_BusNaturaleza = Empty Or Txt_BusOperacion = Empty Or Txt_BusFondo = Empty Or txt_BusImporte = Empty Then MsgBox "ES NECESARIO LLENAR TODOS LOS CAMPOS DEL FORMULARIO", vbExclamation txt_busId.SetFocus Exit Sub Else 'MENSAJE PARA ELEGIR SI O NO PROCESAR LA MODIFICACION DE DATOS MENSAJE = MsgBox("¿ESTAS SEGURO DE MODIFICAR LOS DATOS?", vbQuestion + vbYesNo) If MENSAJE = vbYes Then 'CODIGO QUE EN CUENTRA LA ULTIMA FILA OCUPADA Y SE DESPLAZA UNA FILA HACIA ABAJO ENCONTRANDO LA PRIMER FILA DESOCUPADA DESCENDIENTEMENTE Do While Hoja06.Cells(FILA, 2) <> Empty FILA = FILA + 1 Loop FINAL = FILA - 1 'CICLO QUE UBICA EL NUMERO DE txt_busId PARA PODER MODIFICAR ESA FILA For FILA = 4 To FINAL If Me.txt_busId.Text = Hoja06.Cells(FILA, 2).Value Then 'cuando es igual lo ha encontrado y continua 'pasa los nuevos valores a la BDD Hoja06.Cells(FILA, 4).Text = Me.txt_BusFecha.Text Hoja06.Cells(FILA, 5).Value = Me.txt_BusDescripcion.Text Hoja06.Cells(FILA, 6).Value = Me.txt_BusNaturaleza.Text Hoja06.Cells(FILA, 7).Value = Me.Txt_BusOperacion.Text Hoja06.Cells(FILA, 8).Value = Me.Txt_BusFondo.Text Hoja06.Cells(FILA, 9).Value = Me.txt_BusImporte.Value 'VACIAR LOS CAMPOS txt_busId.Text = Empty txt_BusFecha.Text = Empty txt_BusDescripcion.Text = Empty txt_BusNaturaleza.Text = Empty Txt_BusOperacion.Text = Empty Txt_BusFondo.Text = Empty txt_BusImporte.Value = Empty Exit For 'y sale del for End If Next MsgBox "¡DATOS MODIFICADOS CON EXITO!" Else MsgBox "INGRESO DE NUEVOS DATOS CANCELADO", vbExclamation Exit Sub End If End If End Sub
  12. Hola amigos. Sinceramente llevo tiempo intentando solucionar este problema y me da que es cuestion de concepto que algo hago mal. Anteriormente lo consulte, pero por razones de salud no fue hasta ahora que retomé el proyecto. Sin ir mas lejos es: Después de validar en un if then la condicion de vacio de un textbox y por ello retornar el foco a al textbox (txt.textbox.setfocus) en cuestión, lo devuelvo para darle color con textbox. backcolor y todo, ok perfecto. Se que llego correctamente porque lo colorea pero no aparece titilando el cursor por lo que entiendo que no "está disponible".... ¿cual puede ser el motivo?...Está enable=true, locked=false, no se que mas revisar....ah! es el tabindex=0 y he hecho varias combinaciones el tabindex, 1, 2.....y nada que lo consigo. Lógicamente al activarse el userform y pasar por la subrutina en la que esta la validación, sí se ubica correctamente pero como dije antes al validar y redirigirlo con setfocus pasa lo que comento. Gracias de verdad por la ayuda que me puedan dar. Creo haber leído todo lo que hay sobre setfocus pero no lo relaciono con mi problema. José
×
×
  • Create New...

Important Information

Privacy Policy