Macros de Excel, ¿cómo rellenar automáticamente las celdas?

0

Hola, no estoy familiarizado con el código VBA pero sé de Java. Estoy buscando crear una macro que verifique si una celda no está en blanco y autocompletar las celdas en otra columna, pero en la misma fila con la fórmula sobre ellas. ¿¿Algunas ideas??

    975   805040   2065bc210    325647998522
    976   802030   2089bc212    325647956721
    977                        *325647964751*
    978                        *325647967866*
    979                        *325647964452*

Perdón por la falta de detalles. Este es un ejemplo de mi excel. A la izquierda están los números de filas que necesito para rellenar automáticamente las otras columnas cuando agrego manualmente los números en estrellas. Las otras columnas obtienen su información de una fórmula. No puedo publicar una foto porque mi reputación es baja.

Algo así pero no funcionó

Sub CheckCell()
    Dim i As Integer
       i = 3

     Do
      Selection.AutoFill Destination:=Range("Ai:A(i+1)"), Type:=xlFillDefault  
     i = i+1
    Loop While (ActiveSheet.Range("Bi").Value != "")
 End Sub
rexxar
fuente
hice eso pero la verificación no se registra porque lo hago visualmente. Quiero que la macro complete automáticamente las otras columnas como lo hago con draging-aytofill hasta la última fila de las celdas que agregué
rexxar
Por favor, editar su pregunta con más detalles acerca de cómo se presenta los datos y lo que los datos de origen "relleno automático" es. ¿Qué significa "en la misma fila con la fórmula por encima de ellos"? Dices VBA y fórmula en la misma pregunta. ¿Cuál quieres usar?
CharlieRB

Respuestas:

1

Esto se puede hacer de dos maneras;
(Estos ejemplos asumen que la celda para verificar es A2 y el texto de autocompletar debe ir a B2. Ajustar en consecuencia)

Con una fórmula (colocada en la celda que desea el texto de autocompletar)

=IF(ISBLANK(A2),"autofill text","")

Con VBA

Sub CheckCell()

    If ActiveSheet.Range("A2").Value = "" Then
        ActiveSheet.Range("B2").Value = "Autofill"
    End If

End Sub

NOTA: Estos ejemplos son muy básicos y vagos porque no proporcionó muchos detalles en su pregunta.

CharlieRB
fuente
edité
0

Después de buscar mejor en Internet y probar, encontré que este código funcionaba.

Sub FillCells()

Dim i As Long
Dim k As Long
    With ActiveSheet
    k = .Cells(.Rows.Count, "K").End(xlUp).Row
    i = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With
Range("a" & i & ":a" & k).Formula = Range("A" & i).Formula
Range("B" & i & ":B" & k).Formula = Range("B" & i).Formula
Range("C" & i & ":C" & k).Formula = Range("C" & i).Formula
Range("D" & i & ":D" & k).Formula = Range("D" & i).Formula
Range("E" & i & ":E" & k).Formula = Range("E" & i).Formula
Range("F" & i & ":F" & k).Formula = Range("F" & i).Formula
Range("G" & i & ":G" & k).Formula = Range("G" & i).Formula
Range("H" & i & ":H" & k).Formula = Range("H" & i).Formula
Range("I" & i & ":I" & k).Formula = Range("I" & i).Formula
Range("J" & i & ":J" & k).Formula = Range("J" & i).Formula
Range("M" & i & ":M" & k).Formula = Range("M" & i).Formula
Range("N" & i & ":N" & k).Formula = Range("N" & i).Formula
Range("O" & i & ":O" & k).Formula = Range("O" & i).Formula
Range("P" & i & ":P" & k).Formula = Range("P" & i).Formula
Range("U" & i & ":U" & k).Formula = Range("U" & i).Formula
Range("Y" & i & ":Y" & k).Formula = Range("Y" & i).Formula
Range("Z" & i & ":Z" & k).Formula = Range("Z" & i).Formula

End Sub
rexxar
fuente