Como ejecuto una macro en una hoja diferente a la hoja del Botón que ejecuta la macro.

Envió mi código por que no se en que lugar insertar el código para que lo ejecutado por el boton aparezca en una nueva hoja.

Sub txt_bonos()
'
' txt_bonos Macro
'
' Acceso directo: CTRL+b
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\EDWINB\Desktop\macro solicitada\T8716170813.txt", Destination _
:=Range("$A$1"))
.Name = "T8716170813"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(9, 19, 15, 19, 2, 30, 30, 17, 17, 8, 17, 17, 17, 17, 1 _
, 2, 30, 6, 3, 8, 9, 6, 12, 4, 16, 10, 3, 30, 19, 57)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Columns("B:B").EntireColumn.AutoFit
Columns("B:B").ColumnWidth = 24.86
Columns("B:B").Select
Selection.NumberFormat = "0"
Columns("D:D").Select
Selection.NumberFormat = "0"
Selection.ColumnWidth = 15.14
Columns("E:E").ColumnWidth = 2.86
ActiveWindow.SmallScroll ToRight:=5
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveWindow.SmallScroll ToRight:=12
Columns("AC:AC").Select
Selection.NumberFormat = "0"
Columns("AD:AD").ColumnWidth = 3.71
Selection.ColumnWidth = 14.71
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
Rows("1:1").Select
Selection.Insert Shift:=xlDown
Range("A1").Select
ActiveCell.FormulaR1C1 = "BIN"
Range("B1").Select
ActiveCell.FormulaR1C1 = "TARJETA"
Range("C1").Select
ActiveCell.FormulaR1C1 = "NIT EMPRESA"
Range("D1").Select
Columns("C:C").EntireColumn.AutoFit
Range("D1").Select
ActiveCell.FormulaR1C1 = "NUMERO CUENTA"
Range("E1").Select
ActiveCell.FormulaR1C1 = "DISPOSITIVO ORIGEN"
Range("F1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "DESCRIPCION ESTADO DE COBRO DE LOS CARGOS"
Range("G1").Select
ActiveCell.FormulaR1C1 = "DESCRIPCION DE TRANSACCION"
Range("H1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "VALOR DE TRANSACCION"
Range("I1").Select
ActiveCell.FormulaR1C1 = "VALOR DISPENSADO"
Range("J1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "FECHA DE TRANSACCION"
Range("K1").Select
ActiveCell.FormulaR1C1 = "VALOR DEL CARGO A COBRAR"
Range("L1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "VALOR DEL IVA"
Range("M1").Select
ActiveCell.FormulaR1C1 = "TOTAL A COBRAR"
Range("N1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "IMPUESTO DE EMERGENCIA ECONOMICA"
Range("O1").Select
ActiveCell.FormulaR1C1 = "INDICADOR DE REVERSO"
Range("P1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "RESPUESTA DEL AUTORIZADOR"
Range("Q1").Select
ActiveCell.FormulaR1C1 = "DESCRIPCION DE RESPUESTA"
Range("R1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "COD AUTORIZACION"
Range("S1").Select
ActiveCell.FormulaR1C1 = "FILLER"
Range("T1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "FECHA DE AUTORIZACION"
Range("U1").Select
ActiveCell.FormulaR1C1 = "HORA AUTORIZACION"
Range("V1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "HORA DE DISPOSITIVO"
Range("W1").Select
ActiveCell.FormulaR1C1 = "NUMERO DE REFERENCIA"
Range("X1").Select
ActiveWindow.SmallScroll ToRight:=3
Range("X1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "RED ADQUIRENTE"
Range("Y1").Select
ActiveCell.FormulaR1C1 = "NRO DISPOSITIVO"
Range("Z1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "CODIGO ESTABLECIMIENTO"
Range("AA1").Select
ActiveCell.FormulaR1C1 = "SUBTIPO"
Range("AB1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "DESCRIPCION SUBTIPO"
Range("AC1").Select
ActiveCell.FormulaR1C1 = "NRO TARJETA SECUNDARIA"
Range("AD1").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = "FILLER"
Range("AE1").Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Font.Bold = True
Rows("1:1").RowHeight = 60
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("A1").Select
End Sub

1 Respuesta

Respuesta

Cambia la primer línea que dice "ActiveSheet" por "Sheets("NombreHoja")"

Recuerda cambiar "NombreHoja" por la hoja donde quieres que se ejecute

O simplemente no modifiques nada, solo agrega antes del with "Sheets("NombreHoja").Select" para que seleccione la hoja y luego ejecute la macro

Hola amigo, no me sirvió ninguna de las dos, tienes alguna otra idea que mpueda ayudar, o si de pronto me pudieras ayudar a modificar el código en el sitio exacto donde debe quedar el cambio, creo queno me funciona por las comillas, paréntesis y puntos y comas.

Osea tu línea es esta

With ActiveSheet.QueryTables.Add

 puedes cambiarlo asi

With Sheets("NombreHoja").QueryTables.Add

o puedes simplemente no modificar nada y agregar al  principio la linea para que seleccione la hoja donde va a trabajar

Sheets("NombreHoja").Select
With ActiveSheet.QueryTables.Add

Sino agregas los ( ) o las " " el comando Sheets no funcionara

---------------------------------------------------------------------------------------------

Sheetsnombrehoja.Select     ------------- ' asi no funciona

Sheets(nombrehoja).Select     ------------- ' asi no funciona

Sheets"nombrehoja".Select     ------------- ' asi no funciona

-------------------------------------------------------------------------------------------------

Sheets("nombrehoja").Select     ------------- ' asi si funciona

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas