Exportar datos excluyendo celdas vacías en Excel

2 envíos / 0 nuevos
Último envío
carlosjose11x
Imagen de carlosjose11x
Offline
última acción: Hace 1 mes 3 días
alta: 22/01/2022 - 15:29
Puntos: 25
Exportar datos excluyendo celdas vacías en Excel

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

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 18 horas 28 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11035
IsEmpty

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.