hola erbunson!
Aqui he encontrado parte del error, he cogido todo el codigo y lo he simplificado sin sentencias intermedias o rutinas para ver donde se me colapsaba y parte era debido a que al entrar los datos a la variable
dia_C de
.dia no he tenido en cuenta que en Horas.dat el tamaño de
.dia es siempre el mismo, ya sea lunes o martes con lo que si no Trimaba el resultado lo de dia_C no era igual a lo del case es decir .:
dia_C = " lunes" y
case "lunes" ya que el primero tenia tres espacios y en el otro no, he variado esto .:
dia_C = Trim(.dia)
en vez de
dia_C = .dia
ahora se me rellena la grilla pero me falta ordenarla y que no me coja datos de una semana por otra.
Por otro lado, ahora he empezado a aplicar lo por ti comentado con funciones iniciales o modulos, he creado un modulo.bas con por ejemplo el GridponerDatos y al ejecutar el programa en la linea donde lo llamo me da el error "Procedimiento Sub o funcion no definida" ¿A que es debido eso? Lo he probado con Modulo.bas y de clase e idem de idem incluso como funcion dentro del formulario.
Aqui te pongo la parte del codigo donde lo llamo :
Código vb:
Ver original' ---------------------------------------------------------------------------
' \\ -- Subrutina que Visualiza los datos en el MSFlexGrid
' ---------------------------------------------------------------------------
Private Sub VisualizarDatos()
'Mostramos los datos en las celdas
Select Case dia_C
Case "lunes"
GridPonerDato MSFlexGrid, 0, 0, inicio1_C
GridPonerDato MSFlexGrid, 1, 0, fin1_C
GridPonerDato MSFlexGrid, 2, 0, inicio2_C
GridPonerDato MSFlexGrid, 3, 0, fin2_C
GridPonerDato MSFlexGrid, 4, 0, inicio3_C
GridPonerDato MSFlexGrid, 5, 0, fin3_C
GridPonerDato MSFlexGrid, 6, 0, tiempo_C
'MSFlexGrid.TextMatrix(0, 0) = inicio1_C
'MSFlexGrid.TextMatrix(1, 0) = fin1_C
'MSFlexGrid.TextMatrix(2, 0) = inicio2_C
'MSFlexGrid.TextMatrix(3, 0) = fin2_C
'MSFlexGrid.TextMatrix(4, 0) = inicio3_C
'MSFlexGrid.TextMatrix(5, 0) = fin3_C
'MSFlexGrid.TextMatrix(6, 0) = tiempo_C
'Aqui faltan el resto de dias que son igual pero con columna diferente.
End Select
End Sub
Y la parte del codigo en el Modulo es esta:
La de cabecera es identica y esta igual aunque la he de modificar pues no tengo cabecera y tampoco la llamo en ninguna parte.
Código vb:
Ver originalPrivate Sub GridPonerDato(Grid As MSFlexGrid, Fila As Single, Columna As Single, Dato As Variant)
' Si la fila no existe, la añadimos. La columna es de suponer que ya le hemos puesto cabecera
If Grid.Rows - 1 < Fila Then Grid.Rows = Fila + 1
Grid.CellAlignment = 4
Grid.TextMatrix(Fila, Columna) = Dato
End Sub
Es practicamente igual a la tuya solo le he añadido una linea para centrar los datos en la celda.
Un saludo