es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ubicación pegada basada en la entrada del usuario

Tengo un fragmento de código simple que copia un valor de un archivo de trabajo a otro. Quiero pegar el valor en una ubicación diferente según la entrada del usuario. Por ejemplo, si el usuario ingresa Q1, la ubicación para pegar será H5, si ingresa Q2, será I5, si ingresa Q3, será J5, y si ingresa Q4, será K5. Podría agregar cuatro instrucciones if y copiar todo el código debajo de ellas, pero debe haber una manera más simple.

“`Sub prueba()

Dim wb As Workbook
Set wb = Workbooks.Open("ruta del archivo de trabajo")

Dim myValue As Variant
myValue = InputBox("Elige el trimestre")

Dim v As Variant, v1 As Variant

Dim i As String
i = myValue

v = wb.Worksheets("Master").Range("J6").Value
ThisWorkbook.Worksheets("Hoja 1").Range("H5").Value = v 'si es Q1 entonces H5, Q2 I, Q3 J, Q4 K

v1 = wb.Worksheets("Master").Range("J7").Value
ThisWorkbook.Worksheets("Hoja 2").Range("H5").Value = v1 'si es Q1 entonces H5, Q2 I, Q3 J, Q4 K“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sub prueba()

    Dim wb As Workbook
    Set wb = Workbooks.Open(“ruta del archivo”)

    Dim myValue As Variant
    myValue = InputBox(“Elige el trimestre”)

    Dim v As Variant, v1 As Variant

    Dim i As String
    Set i = myValue

    Select Case i
    Case “Q1”
    ThisWorkbook.Worksheets(“Hoja 1”).Range(“H5”).Value = wb.Worksheets(“Maestro”).Range(“J6”).Value
    ThisWorkbook.Worksheets(“Hoja 2”).Range(“H5”).Value = wb.Worksheets(“Maestro”).Range(“J7”).Value
    Case “Q2”
    ThisWorkbook.Worksheets(“Hoja 1”).Range(“I5”).Value = wb.Worksheets(“Maestro”).Range(“J6”).Value
    ThisWorkbook.Worksheets(“Hoja 2”).Range(“I5”).Value = wb.Worksheets(“Maestro”).Range(“J7”).Value
    Case “Q3”
    ThisWorkbook.Worksheets(“Hoja 1”).Range(“J5”).Value = wb.Worksheets(“Maestro”).Range(“J6”).Value
    ThisWorkbook.Worksheets(“Hoja 2”).Range(“J5”).Value = wb.Worksheets(“Maestro”).Range(“J7”).Value
    Case “Q4”
    ThisWorkbook.Worksheets(“Hoja 1”).Range(“K5”).Value = wb.Worksheets(“Maestro”).Range(“J6”).Value
    ThisWorkbook.Worksheets(“Hoja 2”).Range(“K5”).Value = wb.Worksheets(“Maestro”).Range(“J7”).Value
    Case Else
    MsgBox “Valor no válido”
    End Select

    End Sub

    El código utiliza una declaración Select Case en lugar de múltiples instrucciones if para determinar la ubicación donde pegar el valor según la entrada del usuario. Los diferentes casos representan los diferentes trimestres (Q1, Q2, Q3 y Q4), y dentro de cada caso, se selecciona la celda correspondiente y se pega el valor. Si el usuario ingresa un valor no válido, se muestra un mensaje utilizando la función MsgBox.

Comments are closed.