MergeCells - problemas

joa
03 de Abril del 2006
hola gente como stasn espero q me puedan ayudar , aver rosa si puedes ayudarme tu.
tengo un mshflexgrid al q le he puesto las sgtes propiedades

Function formatoD()
With mshTipCamb
.Cols = 6
.FixedRows = 2

.TextMatrix(0, 1) = ""
.TextMatrix(0, 2) = "Dolares"
.TextMatrix(0, 3) = "Dolares"
.TextMatrix(0, 4) = "Euros"
.TextMatrix(0, 5) = "Euros"
.TextMatrix(1, 1) = "Fecha"
.TextMatrix(1, 2) = "TC Compra"
.TextMatrix(1, 3) = "TC Venta"
.TextMatrix(1, 4) = "TC Compra"
.TextMatrix(1, 5) = "TC Venta"
.ColWidth(0) = 400
.ColWidth(1) = 1100
.ColWidth(2) = 900
.ColWidth(3) = 900
.ColWidth(4) = 900
.ColWidth(5) = 900

.ColAlignment(2) = 7
.ColAlignment(3) = 7
.ColAlignment(4) = 7
.ColAlignment(5) = 7
.MergeCells = 1
.MergeRow(0) = True
End With
End Function

lo q busco con esto es q la 1 era fila una 2 celdas de un mismo contenido, lo malo es q cuando selecciono una fila no parece sombreada con el caracteristico color azul y si me desplazo por l mshflexgrid con las teclas direccionales no se exactamnete donde me encuentro por q no sale sombreada la linea donde stoy , como puedo hacer para poder sombrear una linea de mi flex?
espero sus respuestas

Rosa
03 de Abril del 2006
Hola, me parece que una vez que combinas las celdas no se puede mostrar sombreada la fila seleccionada, esto es lo que dice la misma ayuda de VB sobre el MergeCells:

"Cuando se establece el valor de MergeCells en un valor distinto de cero (Nunca), el resalte de la selección se desactiva automáticamente. Esto se hace principalmente para volver a colorear más rápidamente y porque la selección de intervalos con celdas combinadas puede conducir a resultados inesperados."

joa
03 de Abril del 2006
si recien me fije en eso de tanto buscar, mas bien lo q keria hacer era q aunque sea en vez de q se sombree la fila solo se resalte una celda, no sombreada totalmente sino los bordes no mas, para eso de mi formato de mi msh le quite el aligment(q es para alinear) y quise darle formato a mis celdas para q las columnas q tiene numeros los muestre ala derecha pero por nada del mundo se colocan ala derecha permanecen en la ixquierda
utilice el format(7854,"####0.000") pero ni con eso agarra
tu sabes por q pasa eso

Rosa
03 de Abril del 2006
pero tu puedes simular la selección de la fila asi:

Private Sub mshTipCamb_EnterCell()

mshTipCamb.Col = 1
mshTipCamb.CellBackColor = vbBlue
mshTipCamb.Col = 2
mshTipCamb.CellBackColor = vbBlue
mshTipCamb.Col = 3
mshTipCamb.CellBackColor = vbBlue
mshTipCamb.Col = 4
mshTipCamb.CellBackColor = vbBlue
mshTipCamb.Col = 5
mshTipCamb.CellBackColor = vbBlue

End Sub

Private Sub mshTipCamb_LeaveCell()

mshTipCamb.Col = 1
mshTipCamb.CellBackColor = vbWhite
mshTipCamb.Col = 2
mshTipCamb.CellBackColor = vbWhite
mshTipCamb.Col = 3
mshTipCamb.CellBackColor = vbWhite
mshTipCamb.Col = 4
mshTipCamb.CellBackColor = vbWhite
mshTipCamb.Col = 5
mshTipCamb.CellBackColor = vbWhite

End Sub

joa
03 de Abril del 2006
muchas gracias ya resolvi mi problema con eso ahora si se sombrea , pero una ultima pregunta al sombrearse cada linea yo le he puesto un color azul igual al q aparece cuando se sombrea normalmente pero las letras se mantienes en negro , intente cambiarlas con:
mshtipcamb.ForeColorSel = &HC0FFFF dentro del Private Sub mshTipCamb_EnterCell() :

mshtipcamb.col = 1
mshtipcamb.CellBackColor = &HC0C0C0
mshtipcamb.ForeColorSel = &HC0FFFF
mshtipcamb.col = 2
mshtipcamb.CellBackColor = &HC0C0C0
mshtipcamb.ForeColorSel = &HC0FFFF
mshtipcamb.col = 3
mshtipcamb.CellBackColor = &HC0C0C0
mshtipcamb.ForeColorSel = &HC0FFFF
mshtipcamb.col = 4
mshtipcamb.CellBackColor = &HC0C0C0
mshtipcamb.ForeColorSel = &HC0FFFF
mshtipcamb.col = 5
mshtipcamb.CellBackColor = &HC0C0C0
mshtipcamb.ForeColorSel = &HC0FFFF
algo si pero no cambia de color
eso se puede hacer?

Rosa
03 de Abril del 2006
Hola Joa, prueba con esto:

Private Sub mshTipCamb_LeaveCell()

mshtipcamb.Col = 1
mshtipcamb.CellForeColor = vbBlack
mshtipcamb.CellBackColor = vbWhite
mshtipcamb.Col = 2
mshtipcamb.CellForeColor = vbBlack
mshtipcamb.CellBackColor = vbWhite
mshtipcamb.Col = 3
mshtipcamb.CellForeColor = vbBlack
mshtipcamb.CellBackColor = vbWhite
mshtipcamb.Col = 4
mshtipcamb.CellForeColor = vbBlack
mshtipcamb.CellBackColor = vbWhite
mshtipcamb.Col = 5
mshtipcamb.CellForeColor = vbBlack
mshtipcamb.CellBackColor = vbWhite

End Sub

Private Sub mshTipCamb_EnterCell()

mshtipcamb.Col = 1
mshtipcamb.CellForeColor = vbWhite
mshtipcamb.CellBackColor = &H8000000D
mshtipcamb.Col = 2
mshtipcamb.CellForeColor = vbWhite
mshtipcamb.CellBackColor = &H8000000D
mshtipcamb.Col = 3
mshtipcamb.CellForeColor = vbWhite
mshtipcamb.CellBackColor = &H8000000D
mshtipcamb.Col = 4
mshtipcamb.CellForeColor = vbWhite
mshtipcamb.CellBackColor = &H8000000D
mshtipcamb.Col = 5
mshtipcamb.CellForeColor = vbWhite
mshtipcamb.CellBackColor = &H8000000D

End Sub