Como puedo hacer para hacer na función si aniadad en el vba la cual me contenga varias macros

Sub Botón_datos()
'
' Botón_datos Macro
'

'
Rows("19:19").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("C7").Select
Selection.Copy
Range("B19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C8").Select
Application.CutCopyMode = False
Selection.Copy
Range("C19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C9").Select
Application.CutCopyMode = False
Selection.Copy
Range("D19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C10").Select
Application.CutCopyMode = False
Selection.Copy
Range("E19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C11").Select
Application.CutCopyMode = False
Selection.Copy
Range("F19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C12").Select
Application.CutCopyMode = False
Selection.Copy
Range("G19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C13").Select
Application.CutCopyMode = False
Selection.Copy
Range("H19").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
If Sheets("Movimientos").Range("d12") = "Entradas" Then
Botón_entradas
End If
If Sheets("Movimientos").Range("d12") = "Salida por stock muerto" Then
Botón_muerto
End If
If Sheets("Movimientos").Range("d12") = "Devolución cliente" Then
Botón_cliente
End If
If Sheets("Movimientos").Range("d12") = "Salidas" Then
Botón_salidas
End If
If Sheets("Movimientos").Range("d12") = "Devolución proveedor" Then
Devolución_proveedor
End If
Botón_limpiar

End Sub

Ya tengo todas las macros respectivas nombradas como botón_*** pero quiero que con un mismo botón se ejecuten todas

1 respuesta

Respuesta
1

Puedes reemplazar tu código por el que te pongo a continuación:

Sub Botón_datos()
    'Por Víctor M
    Application.ScreenUpdating = False
    Rows("19:19").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("C7"). Copy Range("B19")
    Range("C8"). Copy Range("C19")
    Range("C9"). Copy Range("D19")
    Range("C10"). Copy Range("E19")
    Range("C11"). Copy Range("F19")
    Range("C12"). Copy Range("G19")
    Range("C13"). Copy Range("H19")
    Range("C7").Select
    Application.CutCopyMode = False
    'Select Case reemplaza If anidado
    Select Case Sheets("Movimientos").Range("D12")
        Case "Entradas"
        Botón_entradas
        Case "Salida por stock muerto"
        Botón_muerto
        Case "Devolución cliente"
        Botón_cliente
        Case "Salidas"
        Botón_salidas
        Case "Devolución proveedor"
        Devolución_proveedor
    End Select
    Botón_limpiar
End Sub

Este código está más simplificado y con Select Case eliminas los IF anidados. Espero te sea de ayuda. Saludos...Víctor M.

P.D. Si te sirvió valora mi respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas