Problema con una macro

Hola recurro a ti para la siguiente pregunta, resulta que tengo lo siguiente:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Worksheets("Orden1").Range("C9").Value = Date
Dim fila As Integer
fila = 17
While Cells(fila, 2) <> Empty
fila = fila + 1
Wend
Cells(fila, 1) = CDbl(TextBox1)
Cells(fila, 2) = TextBox2
TextBox1 = Empty
TextBox2 = Empty
TextBox1.SetFocus
IncluiralHistorial
INSERTARFILAS
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Private Sub IncluiralHistorial()
Dim counter3 As Integer
Dim counter4 As Integer
counter3 = 17
counter4 = 7
Do While Worksheets("Orden1").Cells(counter3, 1).Value <> 0
        If Worksheets("Orden1").Cells(counter3, 2).Value <> Worksheets("Comprasefectuadas").Cells(counter4, 3).Value Then
            If Worksheets("Comprasefectuadas").Cells(counter4, 1) = 0 Then
                Worksheets("Comprasefectuadas").Cells(counter4, 1).Value = Worksheets("Orden1").Cells(9, 3).Value
                Worksheets("Comprasefectuadas").Cells(counter4, 2).Value = Worksheets("Orden1").Cells(counter3, 1).Value
                Worksheets("Comprasefectuadas").Cells(counter4, 3).Value = Worksheets("Orden1").Cells(counter3, 2).Value
                Worksheets("Comprasefectuadas").Cells(counter4, 4).Value = Worksheets("Orden1").Cells(13, 2).Value
                counter3 = counter3 + 1
                counter4 = counter4 + 1
            Else
            counter4 = counter4 + 1
            End If
        Else
        counter3 = counter3 + 1
        End If
Loop
End Sub
Sub INSERTARFILAS()
Application.ScreenUpdating = False
i = 7
While Worksheets("Comprasefectuadas").Cells(i, 1).Value <> ""
    Worksheets("Comprasefectuadas").Cells(i + 1, 1).Select
    i = i + 1
Wend
a = 3
While a > 0
    Worksheets("Comprasefectuadas").Cells(i + 1, 1).Select
    Rows(i).Insert
    Sheets("Comprasefectuadas").Range("G" & i - 1).Select
    Sheets("Comprasefectuadas").Range("G" & i - 1).Copy
    Sheets("Comprasefectuadas").Range("G" & i).PasteSpecial
    a = a - 1
Wend
Application.ScreenUpdating = True
End Sub
Tengo una hoja1 donde hago el llamado de la macro1 que captura 2 datos y al darle al botón de insertar pasa esos datos a la hoja2 y a su vez lo que deseo es que valla insertando filas a esa hoja2, pero me da error en la linea que resalte, cosa que esta macro de insertarfilas funciona bien cuando se trata de la misma hoja. Gracias de Antemano.

1 respuesta

Respuesta
1
Mi primera impresión es que revises la declaración de variables. ¿Es posible que i venga declarado con otro tipo a nivel global?
Bueno, independiente de esto, te conviene sacar del ciclo al select, es decir
i=7
While Worksheets("Comprasefectuadas").Cells(i, 1).Value <> ""
    i = i + 1
Wend
Worksheets("Comprasefectuadas").Cells(i , 1).Select
Le saqué el +1 en el select porque es necesario. Ten cuidado en revisar que el i tome los valores que esperas.  usa el msgbox(i) para chequear. Suerte!
Hola, lo probé e igual me da el error, lo que hice es probar si en verdad esta bien la marco insertarfilas y le coloque al principio la linea:
Sheets("Comprasefectuadas").Select
Como sabes con esto me se va a la hoja con ese nombre, solo así corre bien la macro pero eso no es lo que quiero, porque entonces, si estoy pidiendo los datos desde hoja1, al llegar a la macro se va a hoja2 y se queda allí pidiendo los datos. No se si me explique. Saludos.
Que tal si pruebas declarando la variable  Dim i as integer
Hazlo primero en la rutina local y corre la macro, si no resulta declaralá como global (con esto último cuidando que no te afecte otras macros)
¿Descartemos eso, te parece?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas