Como elimino las columnas vacías en un msflexgrid
Estoy haciendo un programa que me importe una planilla excel a un msflexgrid sin embargo esta planilla me carga bien en el flexgrid pero tiene también hartas columnas vacías sin ningún contenido (es que el excel que se importa contiene columnas vacías que se ocupan para los datos), ¿allí surgue mi problema como puedo hacer para desde el mismo flexgrid hacer un commandbuton que me elimine las columnas vacías?
Estaba haciendo un ciclo for que me recorriera todas las filas y columnas y si encontraba una que no tuviera nada le diera al ancho de la columna un valor 0 pero me borra todas las columnas excepto la primera aquí les adjunto mi código obviamente tiene errores ya que soy principiante en la materia
Private Sub Command3_Click()
Dim a As Long
Dim b As Long
For b = 1 To MSFlexGrid1.Cols - 1
For a = 2 To MSFlexGrid1.Rows - 1
If MSFlexGrid1.TextMatrix(a, b) = "" Then
MSFlexGrid1.ColWidth(b) = 0
End If
Next a
Next b
End Sub
Y de paso preguntar también tengo una columna del excel que son códigos alfanuméricos pero al exportarlos al flexgrid me muestra solamente los códigos que son numéricos y donde debieran ir los códigos alfanuméricos me los deja vacío
ej: cod error: 5107 lo muestra en la flexgrid
cod error: 51d8 me muestra una celda vacía
adjunto también el código
Private Sub Command1_Click()
With CommonDialog1
.DialogTitle = " Seleccionar archivo Excel para cargar"
.Filter = "Archivos XLS|*.xls"
.ShowOpen
If .FileName = "" Then Exit Sub
' Le envía el path del Libro de Excel a llenar en el Flex
Call Cargar_Excel_FlexGrid(.FileName)
Me.Caption = .FileName
End With
End Sub
Sub Cargar_Excel_FlexGrid(path_XLS As String, _
Optional La_Hoja As String = "StyleSheet")
On Local Error GoTo ErrSub
With Data1
.DatabaseName = path_XLS
'Asigna el Recordsource al control data
.RecordSource = La_Hoja & "$"
MSFlexGrid1.Redraw = False
.Refresh
MSFlexGrid1.Redraw = True
End With
'Error
Exit Sub
ErrSub:
MsgBox Err.Description, vbCritical
End Sub
Si pudieran ayudarme en esto estaría también agradecido que mi flexgrid me leyera los datos alfanuméricos
Estaba haciendo un ciclo for que me recorriera todas las filas y columnas y si encontraba una que no tuviera nada le diera al ancho de la columna un valor 0 pero me borra todas las columnas excepto la primera aquí les adjunto mi código obviamente tiene errores ya que soy principiante en la materia
Private Sub Command3_Click()
Dim a As Long
Dim b As Long
For b = 1 To MSFlexGrid1.Cols - 1
For a = 2 To MSFlexGrid1.Rows - 1
If MSFlexGrid1.TextMatrix(a, b) = "" Then
MSFlexGrid1.ColWidth(b) = 0
End If
Next a
Next b
End Sub
Y de paso preguntar también tengo una columna del excel que son códigos alfanuméricos pero al exportarlos al flexgrid me muestra solamente los códigos que son numéricos y donde debieran ir los códigos alfanuméricos me los deja vacío
ej: cod error: 5107 lo muestra en la flexgrid
cod error: 51d8 me muestra una celda vacía
adjunto también el código
Private Sub Command1_Click()
With CommonDialog1
.DialogTitle = " Seleccionar archivo Excel para cargar"
.Filter = "Archivos XLS|*.xls"
.ShowOpen
If .FileName = "" Then Exit Sub
' Le envía el path del Libro de Excel a llenar en el Flex
Call Cargar_Excel_FlexGrid(.FileName)
Me.Caption = .FileName
End With
End Sub
Sub Cargar_Excel_FlexGrid(path_XLS As String, _
Optional La_Hoja As String = "StyleSheet")
On Local Error GoTo ErrSub
With Data1
.DatabaseName = path_XLS
'Asigna el Recordsource al control data
.RecordSource = La_Hoja & "$"
MSFlexGrid1.Redraw = False
.Refresh
MSFlexGrid1.Redraw = True
End With
'Error
Exit Sub
ErrSub:
MsgBox Err.Description, vbCritical
End Sub
Si pudieran ayudarme en esto estaría también agradecido que mi flexgrid me leyera los datos alfanuméricos
1 respuesta
Respuesta
1