No se ejecuta mi MACRO de acuerdo a mis códigos VBA.

Bueno estoy empezando en el mundo oscuro de las macros y tengo un gran problema, es decir mis códigos VBA están OK porque pude verificarlo apretando F5 desde mi Módulo en el VBA. Sin embargo cuando los ejecuto en el excel pues no se ejecuta de acuerdo a mis códigos VBA. Muchas gracias por su tiempo

¿Yo me pregunto si quizás no haya añadido correctamente mi módulo en la misma hoja de excel?

Aquí les va mi código.

Sub Registro()

        Dim fila As Integer
Rem Obtengo la cantidad de celdas que contienen  datos.

        fila = (Worksheets("Registro").Range("A4:F4").Count-Range("A4:F4").SpecialCells(xlCellTypeBlanks).Count)
Rem Si no ay ningún dato en el Range("A4:F4") de la hoja "Registro" entonces copiar los datos.
If fila = 0 Then
Rem Copiar las celdas requeridas a la base de datos de la hoja "Registro"
Worksheets("Formato"). Range("E5"). Copy Worksheets("Registro"). Range("A4")
Worksheets("Formato"). Range("S5"). Copy Worksheets("Registro"). Range("B4")
Worksheets("Formato"). Range("E6"). Copy Worksheets("Registro"). Range("C4")
Worksheets("Formato"). Range("E8"). Copy Worksheets("Registro"). Range("D4")
Worksheets("Formato"). Range("E7"). Copy Worksheets("Registro"). Range("E4")
End If

Rem Si ay datos en el Range("A4:F4") de la hoja "Registro" insertar una fila y por último copiar los datos.
If fila > 0 Then

Rem Copiar las celdas requeridas a la base de datos de la hoja "Registro"

Worksheets("Registro").Range("A4").EntireRow.Insert
Worksheets("Formato"). Range("E5"). Copy Worksheets("Registro"). Range("A4")
Worksheets("Formato"). Range("S5"). Copy Worksheets("Registro"). Range("B4")
Worksheets("Formato"). Range("E6"). Copy Worksheets("Registro"). Range("C4")
Worksheets("Formato"). Range("E8"). Copy Worksheets("Registro"). Range("D4")
Worksheets("Formato"). Range("E7"). Copy Worksheets("Registro"). Range("E4")
End If

End Sub

2 Respuestas

Respuesta
1

Supongo que no es necesario verificar si existen datos, de todas formas escribes en las celdas de la fila 4.

Prueba lo siguiente:

Sub Registro()
  Dim sh As Worksheet
  Set sh = Sheets("Formato")
  With Sheets("Registro")
    .Range("A4").EntireRow.Insert
    .Range("A4") = sh.Range("E5")
    .Range("B4") = sh.Range("S5")
    .Range("C4") = sh.Range("E6")
    .Range("D4") = sh.Range("E8")
    .Range("E4") = sh.Range("E7")
  End With
End Sub
Respuesta

Perdona pienso como estas empezando y tal vez sea porque no guardas el archivo habilitado para macros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas