Jump to content

ferminote

Members
  • Content Count

    76
  • Joined

  • Last visited

Everything posted by ferminote

  1. Lo primero , GRACIAS POR LAS RAPIDAS RESPUESTAS. La macro de Antoni funciona a la perfeccion. la de HAPLO, parece correcta, pero no lo hace bien, me sale una línea al final solo de la primera coincidencia. Aun así, lo dicho GRACIAS A TODOS
  2. Buenos días, no se muy bien si lo que necesito es una macro o una formula. me explico, tengo una Excel con 2 hojas. lo que necesito es que coja los valores de la hoja "codebar" (columna B ) y los coteje con los valores de la hoja "names" columna A y en caso de que coincida el valor que copie de la hoja "names" los valores de la línea coincidente (B,C,D,E,F y G) en la hoja "codebar" ya lo se, me explico muy mal. dejo la Excel de ejemplo gracias por adelantado!!! coteja.xlsx
  3. se hizo a traves de un formulario. tema solucionado
  4. Jaula.clear de mierda , se ha compinchado con "A2" para joderme la vida... :D:D Bueno, pues TEMA RESUELTO de nuevo... PD: de mayor quiero ser como Macro Antonio.... Te debo unas birras amigo.
  5. Pues el caso es que si lo habia probado, pero aun asi da el fallo Tambien probé insertar Jaula.Clear Jaula.AddItem Fruto de la desesperacion:eek:.... pero nada que no hay manera... Private Sub ActualizarListas(Optional Opción As String = "") TextBox1 = WorksheetFunction.Sum(Hoy.Range("J1:J" & Hoy.Range("J" & Rows.Count).End(xlUp).Row)) If Opción = "J" Or Opción = Empty Then If Hoy.Range("A1") <> "" Then Jaula.List = Hoy.Range("A2:J" & Hoy.Range("A" & Rows.Count).End(xlUp).Row).Value For x = 0 To Jaula.ListCount - 1 If Jaula.List(x, 2) <> "" Then Jaula.List(x, 2) = Format(Jaula.List(x, 2), "hh:mm") End If If Jaula.List(x, 7) <> "" Then Jaula.List(x, 7) = Format(Jaula.List(x, 7), "hh:mm") End If If Jaula.List(x, 8) <> "" Then Jaula.List(x, 8) = Format(Jaula.List(x, 8), "hh:mm") End If Next End If End If [/CODE] gestionbeta2 Rápido3.rar
  6. A ver, he localizado donde esta el problema , pero no la solucion... si cambio Private Sub ActualizarListas(Optional Opción As String = "") TextBox1 = WorksheetFunction.Sum(Hoy.Range("J1:J" & Hoy.Range("J" & Rows.Count).End(xlUp).Row)) If Opción = "J" Or Opción = Empty Then Jaula.List = Hoy.Range("A2:J" & Hoy.Range("A" & Rows.Count).End(xlUp).Row).Value For x = 0 To Jaula.ListCount - 1 If Jaula.List(x, 2) <> "" Then Jaula.List(x, 2) = Format(Jaula.List(x, 2), "hh:mm") End If If Jaula.List(x, 7) <> "" Then Jaula.List(x, 7) = Format(Jaula.List(x, 7), "hh:mm") End If If Jaula.List(x, 8) <> "" Then Jaula.List(x, 8) = Format(Jaula.List(x, 8), "hh:mm") End If Next End If [/CODE] por el antiguo codigo... [CODE]Private Sub ActualizarListas(Optional Opción As String = "") TextBox1 = WorksheetFunction.Sum(Hoy.Range("J1:J" & Hoy.Range("J" & Rows.Count).End(xlUp).Row)) If Opción = "J" Or Opción = Empty Then Jaula.Clear If Hoy.Range("A1") <> "" Then For x = 2 To Hoy.Range("A" & Rows.Count).End(xlUp).Row Jaula.AddItem For y = 1 To 10: Jaula.List(Jaula.ListCount - 1, y - 1) = Hoy.Cells(x, y): Next Jaula.List(Jaula.ListCount - 1, 2) = Format(Hoy.Cells(x, 3), "hh:mm") If Hoy.Cells(x, 8) <> "" Then Jaula.List(Jaula.ListCount - 1, 7) = Format(Hoy.Cells(x, 8), "hh:mm") End If If Hoy.Cells(x, 9) <> "" Then Jaula.List(Jaula.ListCount - 1, 8) = Format(Hoy.Cells(x, 9), "hh:mm") End If Next End If End If[/CODE] Ya no ocurre el fallo de que al cerrar jornada quede en la linea 2 un duplicado de las cabeceras ( FECHA HORA SOCIO NOMBRE TELEFONO PULSERA SALIDA TIEMPO IMPORTE) ademas sigue funcionando rápido, pero entiendo que el primer codigo es mas eficiente y deberia usar ese. He probado a hacer cambios, pero no lo consigo... Tambien he mirado en el procedimiento [CODE]Private Sub Cerrar_Click() If MsgBox("¿ Desea cerrar la jornada de trabajo ? , ¡¡¡el listado de Niños se Borrara!!!", vbQuestion + vbYesNo) = vbNo Then Exit Sub MsgBox ("LA CAJA TOTAL DEL DIA ES : " & TextBox1.Text & " EUROS") Socios.Range("O12") = TextBox1.Text & " EUROS" Socios.Range("N6:O12").PrintOut Hoy.Range("A2:J" & Hoy.Range("A" & Rows.Count).End(xlUp).Row).Copy _ Histórico.Range("A" & Histórico.Range("A" & Rows.Count).End(xlUp).Row + 1) Hoy.Range("A2:J" & Hoy.Range("A" & Rows.Count).End(xlUp).Row).ClearContents Socios.Range("E:F").ClearContents ActualizarListas End Sub[/CODE] pero no hay cambios hay.... ¿que puede ser? ¿los arboles otra vez? Al final me hago leñador:mad::mad:
  7. Mecawuen!!! :eek::eek: Si los ojitos me dolían ya de mirar!!! Juro que repase esa parte mas de 20 veces!!! Solo ha quedado una cosa rara (no da error) pero al Cerrar Jornada (pestaña salidas) queda como un duplicado de los enunciados y 2 checkbox vacios, ando rebuscando por si algun A2 es un A1 por error....
  8. Ok. elimino actualizarlistas2 y actualizarlistas lo dejo asi (he añadido ademas la columna 2 para formatear HH:MM), las correctas son 2,7 y 8 creo (corresponden a las columnas de HORA,SALIDA y TIEMPO) Private Sub ActualizarListas(Optional Opción As String = "") TextBox1 = WorksheetFunction.Sum(Hoy.Range("J1:J" & Hoy.Range("J" & Rows.Count).End(xlUp).Row)) If Opción = "J" Or Opción = Empty Then Jaula.List = Hoy.Range("A2:J" & Hoy.Range("A" & Rows.Count).End(xlUp).Row).Value For x = 0 To Lista.ListCount - 1 If Jaula.List(x, 2) <> "" Then Jaula.List(x, 2) = Format(Jaula.List(x, 2), "hh:mm") End If If Jaula.List(x, 7) <> "" Then Jaula.List(x, 7) = Format(Jaula.List(x, 7), "hh:mm") End If If Jaula.List(x, 8) <> "" Then Jaula.List(x, 8) = Format(Jaula.List(x, 8), "hh:mm") End If Next End If If Opción = "L" Or Opción = Empty Then Lista.List = Socios.Range("A2:F" & Socios.Range("A" & Rows.Count).End(xlUp).Row).Value For x = 0 To Lista.ListCount - 1 If Lista.List(x, 4) <> "" Then Lista.List(x, 4) = Format(Lista.List(x, 4), "hh:mm") End If If Lista.List(x, 5) <> "" Then Lista.List(x, 5) = Format(Lista.List(x, 5), "hh:mm") End If Next End If End Sub [/CODE] El error que me dá el depurador es que no puede obtener la propiedad .list de (If Jaula.List(x, 3) <> "" Then) Entiendo que no sabe lo que es (x, 3) ???? Por otro lado he probado a eliminar las lineas : [CODE]If Jaula.List(x, 2) <> "" Then Jaula.List(x, 2) = Format(Jaula.List(x, 2), "hh:mm") End If If Jaula.List(x, 7) <> "" Then Jaula.List(x, 7) = Format(Jaula.List(x, 7), "hh:mm") End If If Jaula.List(x, 8) <> "" Then Jaula.List(x, 8) = Format(Jaula.List(x, 8), "hh:mm")[/CODE] y la hoja funciona, pero no me formatea las columnas necesarias a HH:MM claro....
  9. GENIAL!!! como rapido, va rapido como las balas, pero me da errores. Al pulsar entada o salida, al clickar en NUEVO o ACTUALIZAR Private Sub ActualizarListas(Optional Opción As String = "") TextBox1 = WorksheetFunction.Sum(Hoy.Range("J1:J" & Hoy.Range("J" & Rows.Count).End(xlUp).Row)) If Opción = "J" Or Opción = Empty Then If Hoy.Range("A1") <> "" Then Jaula.List = Hoy.Range("A2:J" & Hoy.Range("A" & Rows.Count).End(xlUp).Row).Value For x = 0 To Lista.ListCount - 1 If Jaula.List(x, 7) <> "" Then ------AQUI------ Jaula.List(x, 7) = Format(Jaula.List(x, 7), "hh:mm") End If If Jaula.List(x, 8) <> "" Then Jaula.List(x, 8) = Format(Jaula.List(x, 8), "hh:mm") End If Next End If End If[/CODE] PD: creo que las columnas a formatear HH:MM son la 8 y 9, no 7 y 8. Y lo digo desde la mas amplia de las ignorancias. PD2: La SUB Actualizarlistas2 (que es la que va lenta) se puede eliminar, no? Un saludo!!!
  10. Buenas tardes. El problema ahora es que cuando metemos en HOJA SOCIOS unos 700 fulanos, el sistema de busqueda y todo en general se vuelve lentiiiisimo. Por ej. al cambiar el orden de busqueda, buscar por nombre, dar entrada... unos 5-12 segundos dependiendo del PC utilizado. Cuando habia 25-50 socios todo iba perfecto, pero segun se incrementa el numero se vuelve Lento. a ver, he probado a usar esto que encontre AL INICIO DE MACRO Sub iniciamacro() Application.screenupdating=False Application.calculation=xlCalculationManual Application.EnableEvents=False ActiveSheet.DisplayPageBreaks = False End Sub AL FINAL DE MACRO Sub borracache() Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True ActiveSheet.DisplayPageBreaks = True Application.CutCopyMode = False End Sub[/CODE] Pero no se si lo he puesto en mal sitio o simplemente no hace nada. subo archivo con 700 fulanos... Gracias por adelantado gestionbeta2.rar
  11. AHHHHH!!! es verdad!!! la columna A que esta oculta, vaya despiste! GRACIAS
  12. Buenas tardes El problema es sencillo, cuando introduzco en la HOJA SOCIOS a mano varios de los datos, luego no me los muestra en la lista de la pestaña ENTRADAS he metido 4 para probar: Metido a mano 1 Metido a mano 2 Metido a mano 3 Metido a mano 4 y resulta que si lo añado desde el formulario para introducir socios nuevos me lo añade a la HOJA socios y si que me lo muestra luego. Creo que es algo del formato de las celdas, porque si cogo una fila y copio pego, si que me funciona, aunque luego cambie los datos sigue ok. he probado a copiar formato de las celdas pero no ha funcionado ¿que puede ser? ¿como lo tengo que hacer? gracias por adelantado gestionbeta.rar
  13. Gracias de Nuevo Macro Antonio Una explicacion Impecable TEMA SOLUCIONADO
  14. Aqui sigo dandole vueltas y no consigo hacerlo funcionar. Necesito que alguien me explique que hace exactamente BoundColumn, ya que tras leer varias paginas de informacion no me queda muy claro. Aparte, creo que no me funciona porque la pestaña "SALIDAS" (multipage1) tiene habilitada la seleccion multiple de filas y aparece un checkbox en cada una de ellas. Creo que al ser así no me permite la busqueda . Es la unica diferencia que he encontrado con la busqueda de "Entradas" Gracias por adelantado.
  15. Yaaaaaaa!!! Lo he conseguido If Socios.Range("E" & Lista.ListIndex + 2) = "" Then Entrar.Enabled = True ElseIf Socios.Range("F" & Lista.ListIndex + 2) = "" Then Entrar.Enabled = False Else Entrar.Enabled = True End If [/CODE] SOLUCIONADO, se puede cerrar
  16. mira, casi lo tengoooooo: Private Sub ListaDobleClick() If Lista.ListIndex = -1 Then Exit Sub On Error Resume Next Aviso = "" Pulsera = "" If Socios.Range("E" & Lista.ListIndex + 2) = "" Then Entrar.Enabled = True Else Entrar.Enabled = False End If If Socios.Range("F" & Lista.ListIndex + 2) = "*" Then Entrar.Enabled = True Else Entrar.Enabled = False End If[/CODE] donde : If Socios.Range("E" & Lista.ListIndex + 2) = "" Then Entrar.Enabled = True ---> si no hay hora de entrada es TRUE (deja meterlo) y yo intento: If Socios.Range("F" & Lista.ListIndex + 2) = "*" Then Entrar.Enabled = True ---> si hay hora de salida es TRUE voy bien Maestro???
  17. Gracias por responder Diego. Lo que tu has hecho es poner Entrar.Enabled = True[/CODE] en Private Sub ListaDobleClick() Pero de esta manera SIEMPRE me deja meter al cliente, este ya dentro o no. La idea que yo tengo es que me deje meterne solo cuando ya haya salido, no siempre Creo que debo poner Entrar.Enabled = True, pero deberia de estar dentro de la accion que desencadena el boton "SALIDA" de la pestaña "SALIDAS" [CODE]Private Sub Salir_Click() If xHora2 = "" Then xHora2 = Format(Now, "hh:mm") Hora2 = Fecha & " " & xHora2 & ":00" For x = 0 To Jaula.ListCount - 1 If Jaula.Selected(x) = True And _ Hoy.Range("H" & x + 2) = "" Then Jaula.Selected(x) = False Hoy.Range("H" & x + 2) = CDate(Hora2) Socios.Range("F" & Socios.Columns("A").Find _ (what:=Jaula.List(x, 0), lookat:=xlWhole).Row) = CDate(Hora2) Hoy.Range("I" & x + 2) = Hoy.Range("H" & x + 2) - Hoy.Range("C" & x + 2) ActualizarListas Importe = (InputBox("INTRODUCE IMPORTE A COBRAR", "IMPORTE")) Hoy.Range("J" & x + 2) = Importe End If Next Hora2 = "" ActualizarListas End Sub[/CODE] [CODE]Entrar.Enabled = True[/CODE] A ver si alguien me ilumina, creo que estoy cerca de dar con ello....
  18. Buenas Tardes Un problemilla que tengo, cuando selecciono un "cliente" y pulso el boton "Entrada" este pasa a la pestaña "SALIDA" y el Boton "Entrada" ya no se puede utilizar para ese cliente. Cuando sacamos a ese cliente de la pestaña "SALIDAS" pulsando el boton "SALIDA" necesitaría que para ese cliente volviese a estar activo el boton de "Entrada". Esto soluicionaria el supuesto de que un mismo cliente haga 2 accesos en la misma jornada. gracias. gestionbeta.rar
  19. A ver, cuento progresos he conseguido que me ordene el ambas pestañas "ENTRADA" y "SALIDA" pero aun no consigo que la busqueda funcione en "SALIDA" TEXTO_CHANGE funciona TEXTO2_CHANGE no funciona Private Sub Texto_Change() On Error Resume Next If MultiPage1.Value = 1 Then Texto2_Change Exit Sub End If Buscar = True Nuevo_Click Lista.ListIndex = -1 If Texto = "" Then Buscar = False Exit Sub End If If Lista.BoundColumn = 3 Then as1 = "*": as2 = "*" If Lista.BoundColumn = 4 Then as2 = "*" For x = 0 To Lista.ListCount - 1 If Textificar(UCase(Lista.List(x, Lista.BoundColumn - 1))) Like _ as1 & Textificar(UCase(Texto)) & as2 Then Lista.ListIndex = x Exit Sub End If Next Buscar = False End Sub Private Sub Texto2_Change() On Error Resume Next Jaula.ListIndex = -1 If Texto = "" Then Exit Sub If Jaula.BoundColumn = 2 Then as1 = "*": as2 = "*" If Jaula.BoundColumn = 3 Then as2 = "*" If Jaula.BoundColumn = 4 Then as1 = "*": as2 = "*" For x = 0 To Lista.ListCount - 1 If UCase(Jaula.List(x, Lista.BoundColumn - 1)) Like as1 & UCase(Texto) & as2 Then Jaula.ListIndex = x Exit Sub End If Next End Sub[/CODE] alguna idea??? gestionbeta.rar
  20. OK, RESUELTO la linea es: TextBox1 = WorksheetFunction.Sum(Hoy.Range("J1:J" & Hoy.Range("J" & Rows.Count).End(xlUp).Row))[/CODE] Ave Macro! los novatos te saludan!
  21. OK. debe haber algo mal el TEXTO2_change, lo que debe hacer es al empezar a escribir el nombre o telefono o numero de socio es marcar la linea que cuadre con los parametros de busqueda. si nos situamos en la pestaña entrada y empezamos a biscar en TEXTO_CHANGE .... "AN", nos marca la linea de ANA, si buscamos "ANT" nos marca ANTONIO gracias
  22. vaya, me sale "0" en ambos casos Private Sub Salir_Click() If xHora2 = "" Then xHora2 = Format(Now, "hh:mm") Hora2 = Fecha & " " & xHora2 & ":00" For x = 0 To Jaula.ListCount - 1 If Jaula.Selected(x) = True And _ Hoy.Range("H" & x + 2) = "" Then Jaula.Selected(x) = False Hoy.Range("H" & x + 2) = CDate(Hora2) Socios.Range("F" & Socios.Columns("A").Find _ (what:=Jaula.List(x, 0), lookat:=xlWhole).Row) = CDate(Hora2) Hoy.Range("I" & x + 2) = Hoy.Range("H" & x + 2) - Hoy.Range("C" & x + 2) Importe = (InputBox("INTRODUCE IMPORTE A COBRAR", "IMPORTE")) Hoy.Range("J" & x + 2) = Importe TextBox1 = Evaluate("=SUM(J1:J" & Range("J" & Rows.Count).End(xlUp).Row & ")") End If Next Hora2 = "" ActualizarListas End Sub[/CODE] gestion4b.rar
×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png