Excel: interrelacionar datos de diferentes hojas de cálculo

Quisiera por favor me ayuden:
Como puedo hacer en una hoja de calculo al ingresar un código de producto y en un botón aceptar al darle clic me lleve a otra hoja de calculo (mostrándome la información del código ingresado hecha por el usuario).
Gracias. Percy.
Quisiera por favor si me pueden decir cuantas hojas de calculo tiene un libro excel.
Gracias. Percy

1 respuesta

Respuesta
1
Te explico una manera de hacerlo:
He hecho un Excel con 3 hojas.
- Hoja 1, celda donde colocar el código del producto (he puesto la B6) y un botón que nos lleve a la Hoja 3.
- Hoja 2, Listado de productos. He puesto lo siguiente:
          Código Concepto Stock Precio
          A0001 Clavos 15 3
          A0002 Tornillos 30 5
          A0003 Tuercas 45 15
          A0004 Arandelas 60 25
          A0005 Cableado 75 85
          A0006 Interruptores 90 41
          A0007 Enchufes 105 33
          A0008 Pegamento 120 2
          A0009 Silicona 135 5,5
          A0010 Cinta 150 1
   * La celda done pone "codigo" es la B2 y la ultima de precio, "1", es la E12.
- Hoja 3, un buscarV, teniendo como referencia a buscar la celda B6 de la Hoja 1. Lo he puesto de la siguiente manera:
              (C4)Codigo (D4)Concepto (E4)Stock (F4) Precio
 * En la celda C5 la siguiente formula  BUSCARV(Hoja1!B6;Hoja2!B3:E12;1;0)
 * En la D5 BUSCARV(Hoja1!B6;Hoja2!B3:E12;2;0)
 * En la E5 BUSCARV(Hoja1!B6;Hoja2!B3:E12;3;0)
 * En la F5 BUSCARV(Hoja1!B6;Hoja2!B3:E12;4;0)
De esta manera, pones en la celda B6 de la Hoja 1 el numero de referencia que deseas buscar, le das al botón (que te mueva a la Hoja 3) y en la hoja 3 la fórmula te busca los datos correspondientes a ese numero de referencia.
Bueno, ¿esto responde a tu pregunta?
Sobre el mismo formato que te he indicado antes, coge el botón que te movía a la Hoja3 y quítale esa macro y ponle la siguiente:
Sub verarticulo()
mytitle = " Codigo de Articulo " & Worksheets("hoja3").Range("d5").Value
Mensage = "Codigo: " & Worksheets("hoja3").Range("c5").Value & Chr(10) & Chr(10) & "Concepto: " & Worksheets("hoja3").Range("d5").Value & Chr(10) & Chr(10) & "Stock: " & Worksheets("hoja3").Range("e5").Value & Chr(10) & Chr(10) & "Precio: " & Worksheets("hoja3").Range("f5").Value & "?"
response = MsgBox(prompt:=Mensage, Title:=mytitle)
End Sub
Esto te generará un MsGbOx donde te pondrá los datos del articulo.
[color=#4a4a4a; font-family: Arial]Gracias, creo que no me has entendido, que al ingresar el código y al darle clic en un botón(aceptar) me mande a una hoja que corresponda a dicho código.[/color]
[color=#4a4a4a; font-family: Arial]ejemplo:[/color]
[color=#4a4a4a; font-family: Arial]ingrese codigo .......................[/color]
   Aceptar
Ingrese código y aceptar corresponde a la hoja numero 1.
h-2 es el nombre de la hoja numero 2
h-3 es el nombre de la hoja numero 3
h-4 es el nombre de la hoja numero 4.
Ahora lo que quisiera que me ayudes es: que al ingresar el código h-2 en la hoja numero 1 y al darle clic en aceptar me mande a la hoja numero 2, y así sucesivamente con los demás códigos.
Gracias.
A ver si me he enterado bien, :)
Necesitas que salga un cuadro de dialogo, donde le introduzcas un código de hoja (h-1, h-2, ¿h-3...) y te mande a esa hoja? O un botón que te mueva a la hoja numero 2,¿3...?
Perdón, pero es que creo que no te he entendido bien. :(
Buen día:
Podrías ayudarme con las dos formas, te agradecería bastante.
percy.
Aquí tienes la version donde te aparece el cuadro de dialogo para que le introduzcas el nombre de la hoja donde quieres ir.
Sub probando()
Dim nombre
titulo = "Seleccionando Hoja"
pregunta = "Porfavor, selecciona la hoja a la que quieres ir."
nombre = InputBox(prompt:=pregunta, Title:=titulo)
Sheets(nombre).Select
Range("a1").Select
End Sub
Y lo del boton para cada hoja me referia a :
sub botonporhoja()
Sheets("hoja1").Select
Range("a1").Select
End Sub
Pero esto es más engorroso porque has de hacer una por hoja.
Para poner un boton que te lleve a la siguiente hoja o a la anterior:
Sub siguientehoja()
ActiveSheet.Next.Select
End Sub
Sub hojaanterior()
ActiveSheet.Previous.Select
End Sub
Espero haberte servido de ayuda. Si no es esto lo que buscabas dímelo.
Buenas tardes:
Creo que no me has entendido . en la hoja 1 al escribir pedro me envíe al hoja llamada pedro, nuevamente en la hoja 1 al escribir juan me envíe a la hoja llamada juan, nuevamente en la hoja 1 al escribir carlos me envía a la hoja llamada carlos ..
O puedes ser en la hoja 1 al escribir pedro y darle clic en un botón llamada buscar me envíe a la hoja llamada pedro, nuevamente al escribir juan y darle clic en un botón llamada buscar me envíe a la hoja llamada juan...
Serias tan amable ayudarme de las 2 formas.
Gracias y disculpame por ser tan preguntón.
Saludos.
La siguiente macro te va a la hoja cuyo nombre coincida con el contenido de la celda A1, después de escribir el texto en la A1 y darle a la tecla INTRO o ENTER. Esta macro has de escribirla en el VbA dentro de la hoja1, no en un modulo.
Sub worksheet_change(ByVal Target As Range)
Dim numhoja
If Target.Address = "$A$1" Then
numhoja = Range("a1")
Sheets(numhoja).Select
End If
End Sub
Y esta hace lo mismo pero es para asignarla a un botón, pones el nombre de la hoja a la que quieras ir en la celda A1, y cuando pulses el botón te llevará allí. Esta macro si que va dentro de un modulo.
Sub irahoja()
Dim numhoja
numhoja = Range("a1")
Sheets(numhoja).Select
End Sub
Buenas tardes:
Gracias si me sirve, pero me sale un error al borrar el nombre para ingresar otro nombre, y quisiera por favor agregarle un mensaje si es que escriben el nombre incorrecto como por ejemplo nombre incorrecto.
Y de la otra forma al pulsar el botón, la verdad no se como hacerlo no se si puedes por favor enviarme un ejemplo a mi correo (xxxxxx), te agradecería bastante.                                                       mspa_2008........
Disculpa la ignorancia.
Saludos.
He modificado la macro para que, si el nombre que pones en la celda A1 no es igual a ninguna pestaña del libro, te aparezca un error.
Esta macro, recuerda, hay que crearla en el VbA, pero dentro de la hoja en la que quieras que funcione.
Sub worksheet_change(ByVal Target As Range)
Dim numhoja
If Target.Address = "$A$1" Then
numhoja = Range("a1")
On Error Resume Next
Sheets(numhoja).Select
If ActiveSheet.Name = numhoja Then
Else
response = MsgBox("La hoja seleccionada no se encuentra en el libro.")
End If
End If
End Sub
La macro para el boton tambien te la he cambiado, para que te detecte el error:
Recuerda que esta macro va en un modulo. Desde el Visual Basic (lo abres con Alt+F11) y una vez abierto, en el libro, le das al botón derecho en el menú de la izquierda (que sale el nombre del libro y las hojas que tiene) y le dices "insertar" y luego le das a "modulo".
Sub irahoja()
Dim numhoja
numhoja = Range("a1")
On Error Resume Next
Sheets(numhoja).Select
If ActiveSheet.Name = numhoja Then
Else
response = MsgBox("La hoja seleccionada no se encuentra en el libro.")
End If
Range("a1").Select
End Sub
Lo del botón, no hay problema, no es ignorancia, nadie nace enseñado. Todos hemos tenido que aprender y preguntar. :)
Para crear un botón:
Menu "Ver", "Barras de herramientas", "Formularios".
Seleccionas el icono que es un rectángulo, este es el botón, (si dejas el ratón encima de los iconos de la nueva barra te dirá lo que es cada uno) y lo "dibujas" en la hoja.
Si te pregunta directamente que macro le quieres asignar le indicas la que hemos hecho para él, la que aquí te he nombrado como IRAHOJA, y ya está, cada vez que pulses el botón, te ejecutará la macro.
Si al crear el botón no le asignas la macro, una vez creado el botón clickeas sobre él con el botón derecho del ratón y le dices "asignar macro", te aparecerá un listado de las macros que tengas programadas y ya está, le indicas la que deseas asignarle y listo!.
Si no te sale lo del botón, dímelo, y te enviaré el archivo de ejemplo por mail.
Buen día y disculpa que te moleste, mira al ingresar el numero de hoja en la celda que quiero que se vaya y al dar enter me sale el cuadro de mensaje la hoja seleccionada no se encuentra en el libro, pero si se va a la hoja indicada, ¿no habrá un código que solamente salga ese mensaje cuando escriba una hoja equivocada?. También cuando voy a borrar para ingresar otro numero de hoja en la celda me sale el cuadro de mensaje la hoja seleccionda no se encuentra en el libro.
Y lo del botón no me sale tengo que ejecutar la macro para que cambie a la hoja indicada, si le doy clic al botón no sale, si fueras tan amable de enviar un ejemplo a mi correo te lo agradecería bastante.
Y disculpa la molestia
La verdad es que estoy aprendiendo varias cosas.
Gracias
Te envié mail :)
Gracias
Todo claro, un saludo.
Y que bueno es aprender cosas nuevas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas