Jump to content

Manuyes

Members
  • Content Count

    66
  • Joined

  • Last visited

Everything posted by Manuyes

  1. Muchas gracias Haplox, aunque al principio no me funcionaba, quería copiar los datos de la columna cantidad del libro datos en la codumna cantidad del libro inventario, supongo que no me explique bien. Al final modificando lo que esta en negrita en tu código creo que he conseguido que lo haga. For Each Celda In Range("D7:D" & uFo) uFd = wsDestino.Range("A7:A" & Rows.Count).End(xlDown).Row + 1 Set encontrado = wsDestino.Range("A7:A" & uFd).Find(Celda) If Not encontrado Is Nothing Then Celda.Offset(0, 3).Copy wsDestino.Cells(encontrado.Row, 8) Else No se si es lo más correcto, pero parece que funciona Tengo que seguir probándolo. Muchas gracias, era lo que necesitaba. podemos dar el tema por cerrado
  2. Hola, estaba intentando hacer una macro en el libro inventario que al ejecutarla me abra el libro datos2 y vaya recorriendo la columna producto y comparando cada dato de dicha columna con el que hay en la columna producto del libro inventario, si lo encuentra me copie en el libro inventario el dato que ha encontrado siete columnas a la derecha en la columna cantidad (.offset (0,7)), y si no lo encuentra copie el código, producto y cantidad al final del todo, en la primera fila vacía del libro inventario, pero me estoy liando un poco.... El libro datos2 cambia todos los meses, por eso quiero copiar los datos del mismo en el libro inventario gracias por la ayuda Datos2.xlsx Inventario.xlsm
  3. hola @JSDJSD, lo he estado probando y no me funciona, carga perfectamente el Combobox en orden alfabético, pero luego cuando selecciono un registro del combo no lo carga correctamente en el listbox de hecho solo carga a Pedro y sólo el nombre. Voy a intentar ver que es, te lo agradezco mucho, si hubieras comentado un pelín el código lo entendería más fácilmente. Perdona, por decirlo, pero ya os dije que me estaba costando. Pero no importa, San Google, me ayudara...jejeje Lo dicho muchas gracias
  4. Muchas Gracias @JSDJSD mañana le hecho un vistazo a ver si logro entenderlo
  5. Hola, ya se que este tema está visto hasta la saciedad, y hay por ahí varios ejemplos de lo que yo intentaba hacer ( @Haplox, @Antoni, @Gerson Pineda, ….) pero después de un año sabático disfrutando de mi peque, me esta costando volver a ponerme al día, pero todo se andará... El caso es que me gustaría, si es posible, que se ordenase el combobox alfabéticamente, así seria más fácil seleccionar el cliente del que quieres saber las ventas y si es posible, mediante un checkbox ignorar aquellos clientes que solo tengan una venta en un periodo determinado, osea que no los cargue en el combobox, supongo que habría que recargar el combo, al activar el check. He usado uno de esos ejemplos de @Antoni he intentado adaptarlo Bueno admito cualquier sugerencia. Muchas gracias por adelantado Estadisticas 1.xlsm
  6. Gracias @Haplox, creo que ya lo vi, estaban mal expresadas las condiciones. Private Sub CommandButton1_Click() Sheets("Hoja1").Select If CheckBox1.Value = False And TextBox1.Value = "" Or CheckBox2.Value = False And TextBox2.Value = "" Or CheckBox3.Value = False And TextBox3.Value = "" Then MsgBox "Debe especificar un motivo", vbExclamation, "Atención" CheckBox1.SetFocus Exit Sub Else buscar2 If CheckBox1.Value = True Then ActiveCell.Offset(0, 3) = "VERDADERO" If CheckBox1.Value = False Then ActiveCell.Offset(0, 3) = "FALSO" ActiveCell.Offset(0, 4) = TextBox1.Value If CheckBox2.Value = True Then ActiveCell.Offset(0, 5) = "VERDADERO" If CheckBox2.Value = False Then ActiveCell.Offset(0, 5) = "FALSO" ActiveCell.Offset(0, 6) = TextBox2.Value If CheckBox3.Value = True Then ActiveCell.Offset(0, 7) = "VERDADERO" If CheckBox3.Value = False Then ActiveCell.Offset(0, 7) = "FALSO" ActiveCell.Offset(0, 8) = TextBox3.Value End If MsgBox "Arqueo cerrado correctamente", vbInformation, "Aviso" Unload UserForm2 Unload UserForm1 End Sub Creo que ahora funciona perfectamente, gracias. Damos por cerrado el tema
  7. Muchas Gracias @Haplox, creo que hace lo que buscaba. @Antoni no es que quiera dos botones para cerrar, lo que quiero es asegurarme de que al finalizar la jornada, tras realizar el arqueo se contesten una serie de cuestiones para saber si ha existido alguna incidencia y dejar constancia de ello. Pero el archivo se abre unas 20 veces al dia para guardar cierres parciales u otras cuestiones. creo que si llamo al cada vez que haga un cierre de una caja me pediría validar y solo quiero que lo haga al final del día. Lo primero que se me ocurrió es meter un botón para validar, pero la mitad de las veces, por despiste o por desidia no se validaba, por lo que al final perdía esa información del chequeo. Quizá pueda decirle al evento Userform_terminate, que si la hora es >20:00 llame al proceso Validar y cerrar y evitarme el botón Validar. Probare esta noche. Muchas gracias por la sugerencia. Tengo otro pequeño problema, cuando marco los check en el userform2 para indicar que todo esta correcto, si marco todos correctos (true) y le doy a cerrar, no me guarda los datos en la hoja1, pero si marco alguno en False, si me los guarda, y no se a que se debe. Private Sub CommandButton1_Click() Sheets("Hoja1").Select If CheckBox1.Value = False Or CheckBox2.Value = False Or CheckBox3.Value = False Then If TextBox1.Value = "" Or TextBox2.Value = "" Or TextBox3.Value = "" Then MsgBox "Debe especificar un motivo", vbExclamation, "Atencion" CheckBox1.SetFocus Exit Sub End If buscar2 If CheckBox1.Value = True Then ActiveCell.Offset(0, 3) = "VERDADERO" If CheckBox1.Value = False Then ActiveCell.Offset(0, 3) = "FALSO" ActiveCell.Offset(0, 4) = TextBox1.Value If CheckBox2.Value = True Then ActiveCell.Offset(0, 5) = "VERDADERO" If CheckBox2.Value = False Then ActiveCell.Offset(0, 5) = "FALSO" ActiveCell.Offset(0, 6) = TextBox2.Value If CheckBox3.Value = True Then ActiveCell.Offset(0, 7) = "VERDADERO" If CheckBox3.Value = False Then ActiveCell.Offset(0, 7) = "FALSO" ActiveCell.Offset(0, 8) = TextBox3.Value End If MsgBox "Arqueo cerrado correctamente", vbInformation, "Aviso" Unload UserForm2 Unload UserForm1 End Sub GRACIAS POR LA AYUDA
  8. Buenas noches, me gustaría si alguien pudiera indicarme como hacer para que el aspa (X) de cierre de un formulario se desactive a partir de las 20:00 y solo permita cerrar el formulario con el botón Validar y Cerrar. He conseguido deshabilitar la x del formulario con QueryClose, pero me gustaría que lo hiciera a partir de esa hora, ya que durante el día quiero que se abra guardar y cerrar normalmente. Muchas gracias Cerrar formulario con boton.xlsm
  9. Muchas gracias a los tres, he aprendido muchas cosas. @ateneo, tu versión me daba errores, pero agradezco mucho tu interés. @Leopoldo Blancas, lo he estado probando y funciona perfectamente, gracias de nuevo por las aclaraciones. @Antoni, decía que podía esperar, porque tus versiones suelen sorprenderme y así ha sido. La verdad es que no tenia mucho sentido tener hoja productos y existencias, mejor unificarlas. Tal y como lo has planteado es lo que yo quería hacer desde el principio (incluso mucho mejor que mi idea inicial...), Yo no lo habría conseguido, por eso renuncie a la idea del histórico de movimientos.... Te agradezco mucho tu tiempo dedicado. Sólo he visto, después de probarlo, que seria interesante un botón para dar de baja los productos, pero ya me pegaré mañana con ello. Por mi parte se puede cerrar el tema triplemente solucionado
  10. Hola @Leopoldo Blancas, te lo agradezco mucho tu tiempo y los comentarios. Como esto lo hago por afición y no es algo que haga a diario, intento comentar todo lo posible el código, habrá quien le parezca que comento "cosas de Perogrullo", pero a lo mejor me tiro dos o tres meses sin volver a tocarlo y cuando vuelvo a mirarlo si no lo he comentado me cuesta un poco más de tiempo entender lo que había hecho. He probado tu versión, y me sigue dando el mismo error (Ya no se si es mi ordenador, me pasa tb con la versión de @ateneo...),lo miraré con calma el domingo por la noche.
  11. Muchas gracias @ateneo, la idea del label en vez del Msgbox, no es mala (evita un clicK), la apariencia tb me gusta, le echaré un vistazo con calma. De nuevo gracias
  12. Gracias @Antoni, @Leopoldo Blancas, había un error aquí '.......ACTUALIZA... For Fila = 2 To 1000 If Hoja4.Cells(Fila, 1) = Hoja3.Cells(Final, 2) Then Existencia = Hoja4.Cells(Fila, 3) lo he cambiado por Me.TextBox1 y ahora parece que funciona. @Antoni, tienes todo mi respeto, se que mis conocimientos son muy modestos, así que no me ofendo. Tienes un par de días o los que necesites, siempre me encanta ver tu solución. Muchas gracias a los dos.
  13. Hola @Leopoldo Blancas, sigue dándome el error, y no veo porque.
  14. Si, está mucho mejor. La mía estaba más apretada, gracias por la sugerencia
  15. Pero esto que comentas ya lo hace. Puedes buscar el producto de las tres formas, tecleando el código, usando el combobox y con el doble click en el listado. Quizás no te haya entendido
  16. Muchas gracias @Leopoldo Blancas, he probado como dices pero me sigue dando problemas. Lo curioso es que sólo me pasa cuando intento eliminar el producto "destornilladores planos", con este producto si pongo más de uno, me salta el msgbox. También he visto que cada vez que hago un intento me lo graba en la hoja salidas, aunque salga el msgbox y no reste nada. Tengo que revisar el botón salidas. Lo del listbox, para ir registrando el histórico, creo que tienes razón y no merece la pena. Siempre puedes sacar un informe de movimientos de ese día. Creo que lo voy a descartar. He hecho una pequeña modificación en el listbox de las existencias, gracias a una respuesta de @Gerson Pineda a otra pregunta en el foro, ahora al hacer doble click a un elemento del listbox carga los datos en los textbox para añadir o eliminar del formulario. Control Almacen_2.xlsm
  17. Hola a [email protected], necesito una pequeña ayuda con un nuevo proyecto. Estaba haciendo un pequeño archivo para gestionar un almacén, pero me he atascado con las validaciones, para evitar meter errores, como que saque del almacén, más productos de los que existen. Es decir, si tengo 15 productos y quiero sacar 22, me saca un msgbox indicando que no puedo sacar más productos de los que quedan. Hasta ahí funciona bien, pero cuando pongo después una cantidad menor me sigue mostrando el msgbox. supongo que el error estará aquí. For Fila = 2 To 1000 If Hoja4.Cells(Fila, 1) = Hoja3.Cells(Final, 2) Then Existencia = Hoja4.Cells(Fila, 3) If Me.TextBox5 > Me.TextBox4 Then MsgBox (" No puedes dar de baja mas productos de los que hay cargados") Exit Sub Else Total = Existencia - Me.TextBox5 Hoja4.Cells(Fila, 3) = Total Exit For End If End If Next La otra duda, es que me gustaría que en el listBox1 me fuera mostrando los movimientos que voy haciendo mientras tengo abierta la aplicación, por si tuviera que deshacer alguno cargado por error. Había pensado en que creara una hoja en la que fuera guardando los movimientos temporalmente y la borrara después de darle al botón actualizar. No se si alguien tiene otra sugerencia mejor Control Almacen_1.xlsm
  18. Gracias @Antoni, aun no he tenido tiempo de mirarlo a fondo, lo intentaré mirar esta noche. Aunque me siento mal, por haberte quitado tiempo de estar con tu nueva familia. De nuevo te agradezco enormemente tus aportaciones, ya que algo, aunque sea poquito, vamos aprendiendo.
  19. Enhorabuena @Antoni, espero que disfrutes mucho de él o ella.
  20. Hablaba de dos decimales como si fueran euros (2,99), es decir, que los textbox (dije los label) permitan introducir dos decimales y carguen los dos decimales. Ahora te permite meterlos, pero luego los redondea. Gracias
  21. Gracias @Antoni, me di cuenta de ello, justo antes de irme a dormir, ya que cargaba bien el calendario, pero no lo hacía bien con el contenido. He modificado parte de tu código del listbox por este c=Weekday(fecha,vbMonday) For Y= Y To Y+30 Controls ("C"&c) = Format (Activesheet.Cells(x,y),"#.###") c=c+1 Creo que ahora funciona bien. Lo probaré está tarde y comento. Ya se q es salirme de la pregunta inicial, si es necesario abro nuevo tema, pero si alguien puede indicarme en qué parte del código le digo q muestre los label del calendario ("C"&c) en formato número, con dos decimales. Gracias por todo
  22. Solucionado!!!! El error estaba en esta parte del código If IsDate(fecha) Then e = 8 - Weekday(fecha, vbMonday) Si quitamos el 8- y lo dejamos de este modo If IsDate(fecha) Then e = Weekday(fecha, vbMonday) Lo carga bien, al menos eso creo. Ya me puedo ir a dormir.... Muchas gracias a [email protected] Tema cerrado
  23. Subo unas capturas de pantalla, como veis en enero debería empezar un lunes y empieza un domingo, febrero y marzo empiezan bien, pero luego vuelven a empezar mal, y por mas que he revisado el código, no se porque lo hace
  24. Buenas tardes, el archivo de @Antoni, es impresionante, y resuelve sobradamente, la duda inicial planteada, por lo que voy a dar el tema por resuelto. No obstante he detectado un error cuando carga los meses del calendario, ya que solo coinciden febrero, marzo y noviembre. Si alguien puede indicarme el error se lo agradecería. Imagino que debe estar aquí, pero a mi se me escapa. Private Sub AdecuarTextBoxes() SaltarChange = True fecha = CDate("1/" & TabStrip1.Value + 1 & "/" & ActiveSheet.Range("B1")) For c = 1 To 37 Controls("C" & c).Visible = False Controls("D" & c).Visible = False Controls("D" & c).FontBold = True If c Mod 7 = 0 Then Controls("D" & c).BackColor = ColorDomingo Controls("C" & c).Locked = True Controls("C" & c).TabStop = False End If Next '-- If IsDate(fecha) Then e = 8 - Weekday(fecha, vbMonday) For d = 1 To 31 c = e + d - 1 y = TabStrip1.Value * 34 + 2 Controls("D" & c).Caption = d fecha = d & "/" & TabStrip1.Value + 1 & "/" & ActiveSheet.Range("B1") If IsDate(fecha) Then Controls("D" & c).Visible = True Controls("C" & c).Visible = True If c Mod 7 > 0 Then Controls("D" & c).BackColor = ActiveSheet.Cells(2, y + d).Interior.Color Controls("C" & c).Locked = False Controls("C" & c).TabStop = True End If If Not Controls("D" & c).BackColor = ActiveSheet.Range("A2").Interior.Color And _ Not Controls("D" & c).BackColor = ColorDomingo Then Controls("C" & c).Locked = True Controls("C" & c).TabStop = False End If End If Next SaltarChange = False End Sub Muchas gracias a todos, en especial a @Antoni, por su tiempo dedicado
  25. Tienes razón @Antoni, la consulta esta más que resuelta. Mil disculpas, y muy agradecido.
×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png