¿Cómo hacer una macros consecutiva?

Espero me puedan ayudar
Yo manualmente hago lo siguiente:
Selecionno los valores que tengo en la celdas D162:Z162 los copio y los pego conpegado especial en la celdas D8:Z8 y borro el valor que tengo en la celda C8 para que la celda C162 me jale con la siguiente formula=MIN(C8:C106) el valor de celda D9 y en base a D9 me de los nuevos valores de las celdas D162:Z162. Yo grabe la siguiente fórmula y solome sirve la la fila 8 quisiera saber como hacer para que haga el mismo procedimienta hasta la fila 160
Sub Macro3()
'
' Macro3 Macro
'
' Acceso directo: CTRL+s
'
    ActiveWindow.SmallScroll Down:=141
    Range("D162:Z162").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 20
    ActiveWindow.ScrollColumn = 19
    ActiveWindow.ScrollColumn = 18
    ActiveWindow.ScrollColumn = 16
    ActiveWindow.ScrollColumn = 15
    ActiveWindow.ScrollColumn = 14
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    ActiveWindow.SmallScroll Down:=-174
    Range("D8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("C8").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = ""
    Range("C8").Select
End Sub
Respuesta
1
Yo puedo ayudarte con tu problema, ya que solo se necesita tener lo que quieres hacer dentro de un bucle, más no entiendo que es realmente lo que quieres hacer.
Hola antes que nada te agradezco la atención a mi problema
Mira lo que yo estoy haciendo es una hoja donde calculo la nomina y otra donde jalo los valores que me arroja la hoja de calculo de nomina la manera en que lo hago es la siguiente en la celda C162 puse la fórmula de mínimo para que jale el valor mínimo de esa columna que este caso seria el numero que le corresponde a cada trabajador esta celda se copia en la hoja de calculo de nomina y me calcula la nomna de ese numero de trabajador y lugo de la celde D162 a la Z162 extraigo los resultados del calculo de la nomina ya que los tengo en esta hoja los copio y los pego en la celdas C8 a Z8 que serien los resultados para el trabajador 1 después borro el numero del trabajador de la celda c8 que en este caso seria el uno para que en la celda C162 me jale el numero 2 y otra vez copiar el resultado de la celda D162 a la Z162.
Ojala me ha halla explicado bien te envío mi correo para ver si nos podemos contactar y envierte el libro para que le puedas echar un vistazo [email protected] nuevamente te agradezco la atención
Mi correo es [email protected] enviame el libro aquí con la programación que tengas.
Hola me podrías hacer favor de reenviarme tu correo por que ya te envíe el correo pero me lo regresa o enviarme un mensaje a mi correo [email protected]
Inserta un modulo nuevo en el editor de visual basic y pega allí este código:
Sub Macro1()
Dim row As Integer
Dim x As Integer
Sheets("Sabana de Nomina").Select
Range("C1").Select
While ActiveCell.Value = ""
    row = ActiveCell.row
    ActiveCell.Offset(1, 0).Select
    If row >= 7 Then
        x = MsgBox("No se ha encontrado el número del primer empleado", vbCritical, "ERROR")
        End
    End If
Wend
row = row + 1
While ActiveCell.Value <> ""
    Range("D114:Z114").Copy
    Range("D" & row & ":Z" & row).PasteSpecial xlPasteValues
    Range("C" & row).Select
    Selection.Clear
    row = row + 1
    ActiveCell.Offset(1, 0).Select
Wend
End Sub
Pruébalo y avisame si hace lo que tu quieres.
Hola que crees que ya lo hice y primero me decía que el numero del primer trabajador no se encontró después le cambie C1 po C8 y solo me pega los resultados del primer trabajador en la celda C1:Z1
Tienes razón, ya arrgle el error, descarga el archivo de excel que me enviaste con la programación desde aquí, o simplemente copia el código a continuación en un modulo:
Sub Macro1()
Dim row As Integer
Dim x As Integer
Sheets("Sabana de Nomina").Select
Range("C1").Select
While ActiveCell.Value = ""
    row = ActiveCell.row
    ActiveCell.Offset(1, 0).Select
    If row > 7 Then 'aqui estaba el error
        x = MsgBox("No se ha encontrado el número del primer empleado", vbCritical, "ERROR")
        End
    End If
Wend
row = row + 1
While ActiveCell.Value <> ""
    Range("D114:Z114").Copy
    Range("D" & row & ":Z" & row).PasteSpecial xlPasteValues
    Range("C" & row).Select
    Selection.Clear
    row = row + 1
    ActiveCell.Offset(1, 0).Select
Wend
End Sub
Hola oye pues muchísimas gracias la verdad funcionasuper es lo que necesitaba te lo agradezco infinitamente.
Oye pues mira no se de donde seas yo soy de mexico del df, soy contador y pues lo que se te ofrezca en cuanto a dudas fiscales y contables pues estoy a tus ordenes y nuevamente muchísimas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas