Saltar al contenido

Macro copiar datos una hoja a definir


Recommended Posts

publicado

Hola, tengo una macro que me copia datos a una hoja dada, pero quisiera que cuando copie los datos y vaya a pegarlos, me pregunte el nombre de la hoja adonde quiero pegar los datos copiados. La macro es simple, ya que entiendo poco de programación

Sub Datos_Capital()
'
' Datos_Capital Macro
'

'
    Sheets("201").Select
    ActiveWindow.SmallScroll Down:=-69
    Cells.Select
    Selection.Copy
    Sheets("220").Select   -------------->aqui es donde quisiera me preguntase el nombre u hoja a copiar
    Range("A1").Select
    ActiveSheet.Paste
    Range("C2:K2").Select
    Selection.Replace What:="3", Replacement:="22", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

publicado

@pikolinjavi, solo debes introducir el InputBox

 

Sub Datos_Capital()
'
' Datos_Capital Macro
  dim Hoja As String

'
    Sheets("201").Select
    ActiveWindow.SmallScroll Down:=-69
    Cells.Select
    Selection.Copy
    Hoja=InputBox("Introduzca el nombre de la hoja donde copiar los datos","Selección de Hoja")
	If Hoja="" Then
		MsBox "Deba introducir un nombre de Hoja"
		Exit Sub
	Else
		Sheets(Hoja).Select   '-------------->aqui es donde quisiera me preguntase el nombre u hoja a copiar
    	Range("A1").Select
    	ActiveSheet.Paste
    	Range("C2:K2").Select
    	Selection.Replace What:="3", Replacement:="22", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
	End If
End Sub

 

publicado

Gracias por responder, entiendo que cuando dices introducir el inputbox, es que me pregunta y pongo donde quiero copiarlo, pero ejecuto la macro y me da un error

Error de compilación

No se ha definido Sub o functión

En esta Linea

MsBox "Deba introducir un nombre de Hoja"

publicado

recording-2023-03-27-10-44-47.gif

Saludos totales.

Mi propuesta de sentencia, (los rangos lo tome de la tuya):

Sub Datos_Capital()
    Dim hojaOrigen As String
    Dim hojaDestino As String
    Dim respuesta As Integer
    
    hojaOrigen = ActiveSheet.Name
    respuesta = MsgBox("Estás en la hoja [" & hojaOrigen & "]. ¿Es esta la hoja origen correcta?", vbYesNo)
    
    If respuesta = vbYes Then
        hojaDestino = InputBox("Ingresa el nombre de la hoja destino:")
        Sheets(hojaOrigen).Cells.Copy
        Sheets(hojaDestino).Range("A1").PasteSpecial
        Sheets(hojaDestino).Range("C2:K2").Replace What:="3", Replacement:="22", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    End If
End Sub

Lo que adicione: Que el mensaje te muestre en qué hoja estás para confirmar si de ahí es donde quieres copiar los datos, si la respuesta es negativa se cancela la copia, si es afirmativa te pide que escribas el nombre de la hoja destino.

IMPORTANTE: la hoja destino debe de existir.

Saludines.

 

publicado
En 27/3/2023 at 12:14 , pikolinjavi dijo:

Gracias por responder, entiendo que cuando dices introducir el inputbox, es que me pregunta y pongo donde quiero copiarlo, pero ejecuto la macro y me da un error

Error de compilación

No se ha definido Sub o functión

En esta Linea

MsBox "Deba introducir un nombre de Hoja"

Es un error tipográfico mío... :(. Debe ser

MsgBox "Deba introducir un nombre de Hoja"

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.