Previo un saludo, acudo para pedir ayuda ya que me veo en la nececidad de exportar datos mendiante una macro en la que tendre celdas con valores y celdas vacias en la que las vacias debo excluirlos para que al expotar mi texto plano me quede sin filas vacias. adjunto imagen.
Debo precisar que las celdas vacias contienen formulas al no cumplir la condicion quedan vacias.
este es mi codigo.
Sub Exporta()
On Error Resume Next
Dim dir As FileSystemObject: Set dir = New FileSystemObject
LaRuta = Cells(2, 91)
Ruc = Cells(3, 91)
Archivo = LaRuta & "\FILE\"
If dir.FolderExists(Archivo) = False Then dir.CreateFolder (Archivo)
nombre = CStr("2022") & Cells(4, 91) & Format(Cells(5, 91), "00") & Ruc & CStr(".TXT")
Archivo = LaRuta & "\FILE\" + CStr(nombre)
Origen = FreeFile
If dir.FileExists(Archivo) = True Then Kill Archivo
uf = Cells(Rows.Count, 1).End(xlUp).Row
For i = 11 To uf
Column01 = Cells(i, 93)
Column02 = Cells(i, 94)
Column03 = Cells(i, 95)
Column04 = Cells(i, 96)
Column05 = Cells(i, 97)
Column06 = Cells(i, 98)
Column07 = Cells(i, 99)
Column08 = Cells(i, 100)
Column09 = Cells(i, 101)
Column10 = Cells(i, 102)
Column11 = Cells(i, 103)
Column12 = Cells(i, 104)
Column13 = Cells(i, 105)
Linea = CStr(Trim(Column01)) & Chr(10) & CStr(Trim(Column02)) & _
Chr(10) & CStr(Trim(Column03)) & Chr(10) & CStr(Trim(Column04)) & _
Chr(10) & CStr(Trim(Column05)) & Chr(10) & CStr(Trim(Column06)) & _
Chr(10) & CStr(Trim(Column07)) & Chr(10) & CStr(Trim(Column08)) & _
Chr(10) & CStr(Trim(Column09)) & Chr(10) & CStr(Trim(Column10)) & _
Chr(10) & CStr(Trim(Column11)) & Chr(10) & CStr(Trim(Column12)) & _
Chr(10) & CStr(Trim(Column13))
Open Archivo For Append As #Origen
Print #Origen, Linea
Close #Origen
Next
End Sub
Adjunto | Tamaño |
---|---|
captura_de_pantalla_2022-01-22_110722.png | 111.78 KB |
Si la celda está realmente vacía (no hay nada, ni fórmulas ni nada) entonces lo que necesitas es la función IsEmpty
pero como comentas que hay una fórmula, imagino que el resultado de esa fórmula será un texto vacío "" (comillas comillas) con lo que la celda no está vacía. en este caso comprobaría si el valor de la celda es igual a eso, a comillas comillas, pero tendrás que ver qué es lo que devuelve la fórmula que hay en esa celda, porque a veces he visto casos en que hay espacios u otras cosas invisibles.
¿Y dónde hacemos esa comprobación?
Pues no sé, si la quieres hacer en la misma instrucción donde concatenas todas esas variables podrías utilizar la función IIF, algo así:
Linea = IIF(Column01="","",CStr(Trim(Column01)) & Chr(10)) & IIF(Column02="","",CStr(Trim(Column02)) & Chr(10)) ........
Es sólo un ejemplo suponiendo que en la celda tengas "", pero yo probaría algo similar para no retocar mucho tu código
------
Ya sé Excel, pero necesito más.