Jump to content
Sign in to follow this  
Visor

Distribuir fechas en orden ascendente según día

Recommended Posts

Saludos amigos del foro, intento en esta ocasión ordenar fechas,  en relación a una columna de días que están indicadas en la columna de la Hoja1. Los días colocados allí corresponden a los laborables de cada mes pero me gustaría que las fechas se acomoden en función de los días tal como se muestra el resultado en la Hoja3. Las fechas están en la Hoja2.

Subo el archivo para que lo vean

Gracias anticipadas por el apoyo

Distribucion de ordenada de fechas segun dia.xlsm

Share this post


Link to post
Share on other sites

Es interesante ver como se formula los resultados en código macro...funciona justo como quería. Si el código lo paso de la Hoja vba a un modulo igual funciona bien.

No obstante cuando llevo el código a mi libro, donde son hojas diferentes, no funciona (con la corrección obvia de la Hoja)

Si el código lo coloco en la Hoja4 vba y ejecuto me sale el error "X400"

Si coloco en un modulo me sale el error 1004 en tiempo de ejecución y me muestra la linea de error.

Que podrá ser??

muestro como puse el código en el modulo y las imágenes de los errores

Sub DistribuirFechas()
Dim I, Días, Fecha
Application.ScreenUpdating = False
Días = Array("", "LUNES", "MARTES", "MIÉRCOLES", "JUEVES", "VIERNES", "SÁBADO", "DOMINGO")
I = 7
For X = 6 To Hoja4.Range("E" & Rows.Count).End(xlUp).Row
   Fecha = Días(Weekday(Hoja6.Range("A" & I), vbMonday))
   Do Until UCase(Hoja4.Range("E" & X)) = Fecha Or Hoja6.Range("A" & I) = ""
      I = I + 1
   Loop
   Do While UCase(Hoja4.Range("E" & X)) = Fecha
      Hoja4.Range("F" & X) = Hoja6.Range("A" & I)
      X = X + 1
   Loop
   If Hoja4.Range("E" & X) = "" Then Exit Sub
   X = X - 1
   I = I + 1
Next
End Sub

También he revisado las Referencias y estas iguales en los dos archivos

 

 

 

X400.PNG

Share this post


Link to post
Share on other sites

Te adjunto una macro que funciona, lo aplicas a otro archivo y no funciona, ergo, no has sabido aplicar la macro a tu archivo o los datos no se adaptan al ejemplo suministrado, por consiguiente, o subes el archivo en los que se producen los errores que describes o te quedas sin solución.

 

Edited by Antoni

Share this post


Link to post
Share on other sites

Recuerda que MIÉRCOLES y SÁBADO se acentúan.

Sub DistribuirFechas()
Dim I, X, Fecha, OK
Application.ScreenUpdating = False
Application.EnableEvents = False
Días = Array("", "LUNES", "MARTES", "MIÉRCOLES", "JUEVES", "VIERNES", "SÁBADO", "DOMINGO")
I = 7
For X = 6 To Hoja4.Range("E" & Rows.Count).End(xlUp).Row
   Hoja4.Range("F" & X) = ""
   OK = False
   For I = I To Hoja6.Range("A" & Rows.Count).End(xlUp).Row
      Fecha = Días(Weekday(Hoja6.Range("A" & I), vbMonday))
      If UCase(Hoja4.Range("E" & X)) = Fecha Then
         OK = True
         Exit For
      End If
   Next
   If OK = True Then Hoja4.Range("F" & X) = Hoja6.Range("A" & I)
Next
Application.EnableEvents = True
End Sub

 

Share this post


Link to post
Share on other sites

Es cierto,!!! muy importante observar todos los detalles, en especial corregirse en los errores ortográficos que nos vienen en las plantillas de la institución.

Funcionó al colocarle las tildes

Gracias y mil disculpas😁:huh: Avergonzado40x43.jpg

Tema solucionado

Edited by Visor

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

Privacy Policy