Saltar al contenido

Visor de Ajedrez en Excel


pegones1

Recommended Posts

publicado

pedrosilv, gracias por el piropo.

Para aprender no mires este trabajo por el resultado final sino por las fórmulas que hay en cada celda de cada hoja que realmente hacen el trabajo de conversión de un dato, en otro, y en otro, y en otro, hasta conseguir visualizar una partida de ajedrez.

Lo interesante es el proceso de conversión y el proceso continuo de desarrollo de un proyecto como éste, desde la primera idea hasta conseguir el resultado esperado, pero lo mejor de todo es el proceso de aprendizaje que conlleva tanto para el que lo diseña como para los que pueden estudiarlo y analizarlo al estar publicadas libremente las fórmulas (aunque tengo que decirlo, no he realizado el trabajo adicional de optimizarlas, porque no lo pretendía, ya tenía bastante con conseguir que funcionasen aceptablemente)

Estoy contigo en que cada día tenemos que aprender a gestionar muchas cosas y, sobre todo, los cambios que nos da la vida.

Excel es una gran herramienta para mejorar en ese proceso de aprendizaje continuo si nos marcamos cada día un reto un poco más difícil pero que sea alcanzable por nosotros mismos.

Saludos de un LOCO del Ajedrez y de Excel,

Pedro.

publicado

Estoy de acuerdo contigo Pedro. Desde que bajetu archivo he estado analizando tu archivo porque como tu dices, es espectacular en el resultado final, pero más en el ingenio que hay detrás de ello.

Saludos y que bueno encontrarme en este foro con personas que aparte de Excel, también nos une el ajedrez.

Saludos desde Guate.

PS: También estaré alpendiente de lo que aporte el maestro MACROANTONIO, ya quiero ver con qué nos sale :stung:

  • 2 weeks later...
publicado

Mientras Macro Antonio prepara su ajedrez, subo una nueva interfaz gráfica de mi visor de ajedrez en Excel sin macros.

[ATTACH]28918.vB[/ATTACH]

post-47802-145877004481_thumb.jpg

publicado
Mientras Macro Antonio prepara su ajedrez, subo una nueva interfaz gráfica de mi visor de ajedrez en Excel sin macros.

Falta muy poco, ...paciencia, paciencia,...jajaja

Un beso para todos (sin lengua ¿vale?)

  • 4 weeks later...
publicado

Después de ver los grandes progresos de Macro Antonio con [DBOX]https://www.ayudaexcel.com/foro/ideas-aportes-64/ajedrez-macro-22115/[/DBOX] os dejo un vídeo del uso de mi visor de ajedrez en el que he añadido la notación Forsyth–Edwards Notation (FEN) que aún estoy desarrollando y pronto publicaré ¡estad atentos!

Os recuerdo que este visor de ajedrez es gratuito y está hecho solamente con fórmulas, por lo que no hace falta activar las macros ya que ¡no contiene ninguna línea de código VBA!

IMPORTANTE: Se pueden desproteger todas las hojas sin contraseña para estudiar y analizar las fórmulas de este visor de ajedrez.

  • 2 weeks later...
publicado

La notación FEN se puede copiar de la celda FEN!W11 de la última versión Chess_PedroWave15.xls y está disponible en el mensaje #1 de este tema:

[DBOX]https://www.ayudaexcel.com/foro/ideas-aportes-64/visor-ajedrez-excel-21273/#post106815[/DBOX]

La posición inicial de una partida de ajedrez comienza con:

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

He añadido un nuevo tablero con la notación FEN que siempre usa la notación de las piezas inglesas para que sea "universal".

[ATTACH]29761.vB[/ATTACH]

Se puede ver una explicación en Wikipedia:

[DBOX]Forsyth–Edwards Notation (FEN)

[/DBOX]

La próxima versión incluirá el comienzo de la partida en una jugada cualquiera, partiendo de su posición FEN.

post-47802-145877004652_thumb.jpg

  • 2 weeks later...
publicado

Con la sexta versión de este visor de ajedrez se puede comenzar una partida en el siguiente movimiento de cualquier jugada, guardado en notación FEN, como se puede apreciar en la partida número 11 que comienza con las blancas jugando el movimiento número 16.

[ATTACH]30040.vB[/ATTACH]

post-47802-14587700471_thumb.jpg

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
    • Podrías compartir tu solucion
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.