cara usa essa minha função aqui, com ela vc zera e monta o grid direitinho...
insira ela em um modulo...
Public Sub ZeraGrid(ByRef aGrid As Object, ByVal aCabecalho As String, ParamArray aTamanho() As Variant)
'Exemplo de uso:
'ZeraGrid FGR_Embalagem, "Embalagem|Quantidade|Contém", 5000, 1300, 1380
Dim a As Integer, vUltimaColuna As Integer
vUltimaColuna = UBound(aTamanho)
aGrid.Tag = "0"
aGrid.Clear
aGrid.Rows = 2
aGrid.Cols = vUltimaColuna + 1
aGrid.FormatString = aCabecalho
For a = 0 To vUltimaColuna
aGrid.ColWidth(a) = aTamanho(a)
Next a
'aGrid.RowHeight(0) = aAlturaPrimeiraLinha
End Sub
no formulário que seseja usa-la faça assim...
ZeraGrid FGR_UltPedido, "Código|Produto|Observação|Qtd|Preço", 800, 3300, 2600, 700, 900
fgr_ultpedido é o nome do grid
"Código|Produto|Observação| etc..." é a descrição das colunas
800,3300,2600, etc... é o tamanho que deseja que cada coluna tenha
abs...