Ir al contenido principal

buscar valores con macros

Mi lector Omar E. me deja la siguiente consulta en donde tiene una tabla, mas o menos, como esta:


a esta hoja la llamaremos "tabla_productos"



y en otra hoja solo posee codigos:
a esta hoja la llamaremos "incompleta".

Entonces: nuestra macro deberá tomar el primer codigo en la hoja "incompleta", ir a "tabla_productos" y buscar si ese código existe... si es así, colocar su nombre al lado, en la columna B.

[+/-] Ver el resto / Ocultar

Comentarios

  1. Omar E. Muchas gracias tocayo, realmente era lo que yo buscaba, me ha servido mucho, porque aquí en el trabajo es un constante estar buscando información en un listado enorme, ahora solo modificaré los rango, y quedará listo para lo que necesito.

    Muchas gracias en verdad!!!!

    ResponderEliminar
  2. bueno Omar, me has dado una alegria enorme al avisarme que el ejemplo fue de utilidad y puedes aplicarlo a tu trabajo. cualquier cosa que necesites me avisas.

    ResponderEliminar
  3. Hola,
    tengo un problema con el siguiente codigo:

    With Sheets(hojadatos).PivotTables("Tabla dinámica1").PivotFields("paquet")

    For i = 1 To .PivotItems.Count
    nombreitem = .PivotItems(i).Value
    Sheets(hojaactiva).Range("j1").Value = nombreitem
    If Application.IsNA(Application.WorksheetFunction.VLookup(Range("j1"), rngCriterios, 1, False)) Then
    .PivotItems(i).Visible = False
    Else
    If Application.WorksheetFunction.VLookup(Range("j1").Value, rngCriterios, 1, False) = nombreitem Then

    .PivotItems(i).Visible = True
    Else
    .PivotItems(i).Visible = False
    End If
    End If
    Next i

    End With


    El problema es que en la funcion vlookup Si valor buscado es inferior al menor de los valores de la primera columna de la matriz en la que realizar la búsqueda, VLookup devuelve el valor de error #N/A.
    lo que estoy buscando son pivotitems de TD. lo que estoy probando con este codigo es que analize si devuelve N/A y que .pivotitems sea visible=false si no da error que evalue dependiendo del rango de busqueda. no se si me explicado bien.
    Espero sus comentarios.
    Agradezco antemano su ayuda y su tiempo

    ResponderEliminar
  4. no comprendo muy bien el planteamiento. para detectar el error y manejarlo, yo haría lo siguiente:

    Dim myPivot

    'capturo el error:
    On Error Resume Next
    myPivot=Application.WorksheetFunction.VLookup(Range("j1").Value, rngCriterios, 1, False)
    'si se produce el error 1004, el dato NO está:
    if err.number=1004 then
    'ocultamos:
    .PivotItems(i).Visible = False
    'si no hay ningún error:
    elseif err.number=0 then

    'si pasa algo no contemplado:
    else
    msgbox err.description,,err.number
    end if

    creo haber respondido (espero) tu pregunta de como capturar si BuscarV devuelve un error.
    estas lineas tuyas "...si no da error que evalue dependiendo del rango de busqueda" no las termino de entender. cualquier cosa pasame el archivo o detallame un poco mas el tema.
    quedo al aguardo de tus noticias.

    ResponderEliminar
  5. Hola,
    Gracias por tu respuesta tan rapida.
    Perdona por no haberme explicado mas claramente. Es justo lo que buscaba. Me has ayudado mucho, estsaba un poco encallado con este tema.
    un placer leer tus aportes.

    ResponderEliminar
  6. muchas gracias por avisar y por tu comentario. vos sabés que anoche, un par de horas luego de responder tu consulta, me volvió el tema a la cabeza y me quedé pensando. como siempre, en programación las cosas se pueden hacer de varias formas.
    aquí tenes otra forma de capturar el error, sin la necesidad de utilizar el controlador On Error Resume Next:

    If Application.WorksheetFunction.IsErr(Application.WorksheetFunction.VLookup("excel", Range("a1:a10"), 1, 0)) Then
    MsgBox "hay un error"
    Else
    MsgBox "no se produjeron errores"
    End If

    lo que hago es "anidar" a VLookup() dentro de la worksheetfunction "IsErr" (eserror). y funciona.
    fijate si te sirve, dado que el código es mas sencillo.
    suerte.

    ResponderEliminar
  7. Hola,
    Veo que eres de los mios no olvidas los temas incluso una vez resueltos. Esa opcion que me adjuntas es la que estava provando, pero no se porque no me funcionaba. incluso provaba con isNa() o on iferror() pero no habia manera.
    no se si es por que estoy trabajando con pivotitems de tablas dinamicas o es que estaba haciendo algo mal.
    gracias nuevamente por tu tiempo.

    ResponderEliminar
  8. jaja, tal cual, algun día voy a tener que limpiar mi bien rígido, por que las ideas y problemas planteados me quedan dando vuelta siempre, o por lo menos por un buen tiempo.

    te comento algo que omití en mi post anterior, el por que tu código no funcionaba:
    1) vos escribiste la siguiente instrucción:
    Application.IsNA
    2) y yo:
    Application.WorksheetFunction.IsErr

    tu codigo está solicitando que se capture un error a nivel aplicacion: "application.isna". aparte hace uso un solo tipo de error: IsNa (que significa: no aplica), dejando de lado cualquier otro que se produzca. no es que no sea válido, de hecho lo es, pero no sería para este ejemplo, sino para otro tipo de casos. vos no querés saber si existieron errores a nivel aplicación, sino a nivel funcion.

    este ultimo detalle lo logro mediante:
    Application.WorksheetFunction.IsErr
    en donde "capturo" al error a nivel función (worksheetfunction). yo estoy diciendo "si se produce un error en la funcion buscarv... hacé tal cosa". ¿se entiende la diferencia?
    vos estabas trabajando sobre el objeto aplicación y yo lo hice a nivel función.

    entre los puntos 1) y 2) que arriba diferencié podrás darte cuenta sobre la cuestión.

    en excel son todos objetos, siguiendo una rigurosa jerarquía: aplicación (excel), workbook (libro), worksheet (hoja), range (rango)... y así con todos. cada uno tiene sus propiedades, metodos y eventos.
    WorksheetFunction es una propiedad del objeto Application: "Application.WorksheetFunction"
    luego, la función que utilices es un método de WorksheetFunction:
    "Application.WorksheetFunction.Max()"

    no sería válido escribir:
    Application.Vlookup()
    lo correcto es:
    Application.WorksheetFunction.Vlookup()

    de la misma forma se procede en la captura de errores, tu solución requería que se trabaje sobre la función en sí y no sobre el objeto Application.

    suerte y gracias por tus mensajes.

    ResponderEliminar
  9. hola,
    perdona por la tardanza però es que estava probando de nuevo lo que me comentas y no hay manera que me funcione. De hecho es de las primeras opciones que estava probando.

    el codigo es el siguiente: (me falla justo cuando hace el if iserror

    Sub tabladinamica()

    Application.Calculation = xlCalculationManual
    Dim rngCriterios As Range
    Dim i As Long
    Dim FilasCriterio As String

    hojaactiva = ActiveSheet.Name

    rng1 = Sheets(hojaactiva).Range("e8").End(xlUp).Row
    Set rngCriterios = Sheets(hojaactiva).Range("e1:e" & rng1)
    FilasCriterio = rngCriterios.Count

    With Sheets("2009").PivotTables("Tabla dinámica1").PivotFields("mes")

    For i = 1 To .PivotItems.Count

    If Application.WorksheetFunction.IsError(Application.WorksheetFunction.VLookup(CDbl(.PivotItems(i)), rngCriterios, 1, False)) Then
    .PivotItems(i).Visible = False
    Else
    .PivotItems(i).Visible = True
    End If
    Next i

    End With
    Set rngCriterios = Nothing

    Sheets("2009").Select
    Range("A4:n100").Select
    Selection.Copy
    Sheets("hoja2").Select
    Range("A10").Select
    ActiveSheet.Paste

    With Sheets("2009").PivotTables("Tabla dinámica1").PivotFields("mes")
    For y = 1 To .PivotItems.Count
    .PivotItems(y).Visible = True
    Next y
    End With
    Application.Calculation = xlCalculationAutomatic
    End Sub

    Gracias por tu tiempo

    ResponderEliminar
  10. El código que te pase funciona, ya que lo probé con ese y otros ejemplos antes de postearlo. Me parece que tu código ha variado y el problema radica en otro lado.
    Vos primero pusiste:

    Application.WorksheetFunction.VLookup(Range("j1"), rngCriterios, 1, False)

    y ahora veo:
    Application.WorksheetFunction.VLookup(CDbl(.PivotItems(i)), rngCriterios, 1, False)

    los argumentos son distintos. Y anteriormente me comentaste que el ejemplo te sirvió.
    Revisa bien los valores que estas pasando como parámetro, si no das oon la solidum tendras que pasarme el archivo así reviso el código en vivo.

    ResponderEliminar
  11. Tengo una serie de libro, en el libro "indicadores"tengo una lista donde a cada fila tiene una columna que toma un valor falso o verdadero, pero en otra hoja llamda "lista" necesito mostrar solo los indicadores que tengan como valor la palabra "TRUE" quiero sabes como va el codigo de esa consulta.

    ResponderEliminar
  12. anonimo:
    en cuanto a tu consulta sobre los valores verdaderos o falsos, necesitaría que me hagas llegar el archivo con algún ejemplo, así lo analizo correctamente y puedo ayudarte bien.
    escribime a: damianexcel@gmail.com

    ResponderEliminar
  13. Y SI QUIERO COLOCARLE UN INPUTBOX PARA QUE ME DIGA EL PRODUCTO

    ResponderEliminar
  14. SI LE COLOCO UN INPUTBOX PARA QUE ME DIGA EL PRODUCTO

    ResponderEliminar
  15. hola Jesus. en el ejemplo voy tomando los valores a buscar desde una celda, con la instrucción:
    Valor = .Cells(I, 1).Value
    si en lugar de ellos preferís o necesitas que el usuario ingrese dicho valor (mediante un inputbox) debería ser:
    Valor=InputBox("Ingrese el valor a buscar:")
    esa línea de código hay que colocarla antes del bucle for...next, eliminado la sentencia anterior dentro del bucle.
    fijate si podes o si no avisame y modifico el archivo para que te sirva.
    un abrazo.

    ResponderEliminar
  16. hola de antemano gracias por la ayuda..
    necesito utilizar application.worksheetfunction.vlookup
    en una macro de excel
    pero para que se entienda bien, lo que quiero es pasar el resultado a una variable y de esa variable pasar el valor a la celda en cuestión.

    El problema que no puedo resolver es que la tabla donde busco los datos se encuentra en otro libro y este libro no está abierto.

    Necesitaría que me ayuden con el código y saber si puedo hacerlo sin abrir el libro o si es necesario que esté abierto. Gracias

    ResponderEliminar
  17. Hola Gerardo.
    Conozco dos formas de leer datos desde un libro cerrado de acuerdo a lo que me planteas:

    1) con el control ADO, mismo que se utiliza para leer cualquier base de datos. (link a la entrada: http://damianexcel.blogspot.com/2011/07/obtener-datos-desde-otro-archivo-de.html)

    2) usando BuscarV, pero colocandola en una celda de la siguiente forma:
    Sub InsertarFuncion()
    Dim Ruta As String

    Ruta = "'C:\Users\damian\Desktop\[Libro2.xls]Hoja1'!$A$1:$B$4"
    Range("a1").Formula = "=Vlookup(1, " & Ruta & ", 2, 0)"

    End Sub

    te explico: creas el Libro1.xls y el Libro2.xls y a ambos los guardas en el Escritorio. En el Libro2.xls, y desde el rango A1 hasta B4 armas una tabla, por ejemplo:
    A B
    1 queso
    2 manteca
    3 vino
    4 fiambres
    sencillo: código en columna A y nombre de producto en columna B. cierras el Libro2.xls y vuelves a Libro1.xls y dentro de un módulo pegas el sub que mas arriba te dejé.

    en la variable Ruta creo la dirección al lugar del disco en donde está Libro2, con el nombre de la hoja y el rango donde debe buscar, para luego utilizarlo como segundo argumento de BuscarV.
    y por último, en A1, coloco a BuscarV:
    =Vlookup(1,Ruta,2,0)
    que en este caso te devuelve el valor: queso.
    fijate si te sirvió y me avisas.
    un abrazo y gracias por tu mensaje.

    ResponderEliminar
  18. Gerardo: aqui te dejo un link al post que armé en base a tu consulta:
    http://damianexcel.blogspot.com/2011/09/otras-formas-de-utilizar-buscarv.html

    ResponderEliminar
  19. Hola Damian, como estas?
    te consulto, estoy trabajando en excel, soy programador abap pero de excel no caso una.
    Necesito esto de simple (hoja1 A1:I1 copy. hoja2 A1:I2 paste) bueno que a esto meta adentro de un loop y lo haga hasta que terminen los registros, osea que encuentre un blanco. Desde ya, si me podes ayudar gracias!

    ResponderEliminar
  20. Estimado: desde ya te agradezco el mensaje. Necesitaría que me pases un pequeño archivo con algunos registros y así ver el ejemplo "in situ" y de esa forma ayudarte mejor. Hasta donde entiendo tu pregunta, y suponiendo que vamos revisando la columna A hasta encontrar la primer celda en blanco, sería algo así:
    Sub CopiarCeldas()
    Dim Fila1, Fila2 As Long

    'empiezo desde la segunda fila, asumiendo que existen
    'encabezados de tabla:
    Fila1 = 2
    Fila2 = 2

    'quito el refresco de pantalla, para que la macro
    'corra mas rápido
    Application.ScreenUpdating = False
    'ejecuto el bucle mientras haya valor en la fila de
    'la columna A
    While Range("a" & Fila1).Value <> ""
    'copio y pego, armando el rango:
    Range("a" & Fila1 & ":i" & Fila1).Copy Sheets("hoja2").Range("a" & Fila2)
    'aumento la variable, para continuar con la
    'siguiente celda
    Fila1 = Fila1 + 1
    Fila2 = Fila1
    Wend
    'elimino la seleccion de copiar, si es que existe
    Application.CutCopyMode = False
    'y activo nuevamente el refresco de pantalla
    Application.ScreenUpdating = True
    End Sub

    copiá el código y pegalo en un módulo, para luego ejecutarlo. lo probé y funciona bien, cualquier cosa me avisas.
    un abrazo

    ResponderEliminar
  21. AGARDEZCO TU CLARIDAD EN LAS EXPLICACIONES. SALUDOS.

    ResponderEliminar
  22. Ok estimado, gracias por avisar, un placer poder ayudarte.

    ResponderEliminar
  23. Hola Mauricio: sin querer borre tu comentario, soy un desastre. Por suerte me llegó el Mail a mi casilla, asi que voy a levantar una entrada al respecto y luego coloco el link. Disculpame, el "dedo mas rapido que mente" me ganó de mano. Igualmente en breve respondo tu consulta sobre la búsqueda en múltiples hojas.
    Un abrazo.

    ResponderEliminar
  24. Muchas gracias por tu pronta respuesta Damian!
    Que bueno que te haya quedado el registro del comentario en tu mail!

    Agradezco tu excelente disposición!
    Un abrazo,
    Mauricio.

    ResponderEliminar
  25. Mauricio: te dejo el link a la entrada que levanté con tu consulta, espero que te sirva:
    http://damianexcel.blogspot.com/2011/10/buscar-valores-en-todas-las-hojas-del.html
    cualquier cosa me avisas.

    ResponderEliminar
  26. hola que tal, es muy buena la macro aqui publicada, pero aqui solo muestran el ejemplo con una variable, (un código= a un producto), pero que tal si se necesita otra variable adicional (por ejemplo departamento/código/ producto o Salchichoneria/código/jamón). mas o menos eso es lo que necesito.

    ResponderEliminar
  27. explicame un poco mejor que es lo que necesitas (podes enviarme un archivo de ejemplo al mail que figura al pié del formulario) y vemos como solucionamos ese tema ¿tiene que buscar varios datos en una misma celda, columna, hoja? detallame con precisión las necesidades de tu proyecto, seguro algo se puede hacer.
    salu2

    ResponderEliminar
  28. Hola damian, abusando de tu amabilidad me podrias ayudar con esto??, necesito que de la captura de dos datos al unirlos me den el valor especifico de una columna.
    ejem
    localidad camion coche moto
    mexico 100 200 300
    puebla 200 150 600
    tlaxcala 142 452 25
    solo pregunte localidad y transporte y me de el valor de la celda correspondiente
    localidad: puebla
    vehiculo: coche
    resultado: 150
    intente con las funciones de buscar pero no me funciono, stoy empezando con esto de las macros y programacion en excel, y me doy cuenta que todavia stoy muy verde!!.
    grax por tu ayuda

    ResponderEliminar
  29. Hola Luis.
    Dale una mirada este post: http://damianexcel.blogspot.com/2010/03/otras-formas-de-buscar-mas-complejas.html
    mas exactamente en el segundo de los ejemplos que allí expongo: con las funciones COINCIDIR() e INDICE() puedes lograr la búsqueda que estás necesitando, sin recurrir a la programación de macros.
    avisame si te fue de ayuda.
    un abrazo y gracias x tu mensaje

    ResponderEliminar
  30. Hola me gustaria saber com puedo encontrar lo siguiente:
    que con una busqueda tipo vlookup me arreje 2 o mas resultados:
    ejemplo:

    A 23
    B 32
    C 45
    A 83

    al buscar letra A arroje los 2 resultados 23 & 83

    por favor enviar a israel.castro@live.com

    Muchas Gracias

    Saludos

    ResponderEliminar
  31. Israel: hacer eso con funciones es casi (casi) imposible. El trabajo es muy complejo y con grandes cantidades de datos Excel se tornaría "torpe y lento". Yo buscaría la solución por el lado de las macros, no con las fórmulas.
    Avisame si de esa otra forma te sirve.

    ResponderEliminar
  32. Hola tengo el siguiente problema tengo una matriz de 30000X2 y luego tengo un vector de Nx1 los datos en la primer columna de 30000X2 y Nx1 son parecidos pero no iguales, en Nx1 estan en desorden y en 30000XN estan en orden decreciente) quiero que busque el valor mas parecido entre estos dos vectores y me arroje el valor el vector de la segundo columna de la matriz 30000xN, lo he intendado con BuscarV y no me arroja el resultado correcto.

    ResponderEliminar
  33. Israel: te dejo el link a la entrada que realicé con tu consulta:
    http://damianexcel.blogspot.com/2012/01/buscarv-con-varios-resultados.html

    hice algo sencillo, pero funciona. Espero que te sirva en tus proyectos.
    Saludos

    ResponderEliminar
  34. Spinosa10: enviame el archivo a la la dirección de correo que figura al pié del formulario, no comprendo muy bien el problema... necesito un poco mas de información.
    Gracias y quedo al aguardo de tus noticias.

    ResponderEliminar
  35. Hola Damian, muy interesante y tu blog y de mucha ayuda para aquellos que trabajamos con Excel. Mi inquietud es la siguiente, necesito hacer una macro que me consulte una columna en hoja con 150000 filas y 50 columnas aprox de acuerdo a los datos que me aparecen en otra hoja. Podria hacerlo con un buscarV. pero adicionalmente a la columna de coincidencias que encuentre me traiga otras columna que yo pueda seleccionar de la primera hoja a traves de un menu. Como no es seguro que me entiendas te envio a tu correo un archivo de muestra de lo que necesito. Gracias de antemano por tu ayuda.

    ResponderEliminar
  36. Ok, analizo el archivo y te aviso.
    Un abrazo y gracias x tu mensaje.

    ResponderEliminar
  37. Omar,
    escribi esta macro para capturar los codigos de la tabla llamada "orden" que coincidan con la tabla "ventas", pero la macro me copia las formulas y solo me gustaria tener los valores de los codigos; como podria lograr esto?

    Sub Ventas()
    Dim i As Integer
    Dim j As Integer
    Worksheets("Ventas").Activate
    Range("K2").Select
    ActiveCell.Formula = "=INDEX(Orden!$X:$X,MATCH(Ventas!B2,Orden!$W:$W,0))&INDEX(Order!$AA:$AA,MATCH(Ventas!D2,Order!$Z:$Z,0))&INDEX(Orden!$AD:$AD,MATCH(Ventas!C2,Orden!$AC:$AC,0))"
    Selection.Copy
    For i = 1 To 348
    ActiveSheet.Paste
    Range("K2").Offset(i, j).Select
    Next i
    End Sub
    De antemano muchas gracias por tu ayuda,

    Henry

    ResponderEliminar
  38. Hola buenas tardes

    Gracias por este código de verdad que es muy útil, en especial porque yo trabajo con hojas llenas de datos y con esto el trabajo que me tomaba una hora ahora solo lo hago en 10 minutos. Sin embargo quisiera tu ayuda para agregar una característica a esta a esta rutina:

    Usando el mismo ejemplo que hay aquí, cómo puedo hacer para que en la hoja "incompleta" si no encuentra el valor 5, lo señale de rojo y en la columna B aparezca la leyenda "No existe".

    De antemano muchas gracias

    ResponderEliminar
  39. Estimo que dentro del bucle las cosas deben ser distintas. Primero: quitar el "Activesheet.Paste", ya que ese comando pega todo.
    Y reemplazar: Range("K2").Offset(i, j).Select
    por:
    Range("K2").Offset(i, j).PasteSpecial xlPasteValues

    en lugar de ir seleccionando la celda con el Offset utilizo la instrucción para pegar solo los valores.

    antes de probar guardá el libro así si los resultados no son los deseados cerrás sin cambios. cualquier cosa me avisas.

    ResponderEliminar
  40. ElAbuelo: que bueno que pudiste aplicar el ejemplo a tu proyecto, realmente las macros nos salvan horas y horas de trabajo.

    Bueno, el código tiene un capturador de errores: si alguno se produce, significa que el valor no existe y pone en blanco la columna B. Hay que reemplazar esto:
    If Err.Number = 1004 Then
        .Cells(I, 2).Value = ""

    por esto:

    If Err.Number = 1004 Then
        .Cells(I, 2).Value = "no existe"
    .Cells(I, 1).Font.Color = vbRed

    si se produce el error coloco "no existe" en la segunda columna y le doy fuente roja (vbRed) a la primera.
    Si quisieras otra leyenda, como "inexistente", o la que sea, simplemente la reemplazas.
    Otros colores para usar pueden ser: vbYellow, vbGreen, vbBlue, vbWhite, vbMagenta, vbBlack


    realiza los cambios que te indico y me avisas.
    muchas gracias x tu mensaje

    ResponderEliminar
  41. Estimado he estado leyendo su blog y lo encontre muy interesante, ando en busca de una macro que me pueda ayudar en mi problema, tengo codigos que se repiten en una misma columna, necesito filtrar por cada codigo y por cada uno copiar las filas resultantes y pegar en una hoja diferente, espero me puedas ayudar, te lo agradeceria mucho.

    Saludos.

    ResponderEliminar
  42. Wladimir: enviame el archivo, así trabajo sobre el ejemplo y levanto un post con tu consulta.
    Avisame por aquí cuando hayas realizado el envío.
    Gracias

    ResponderEliminar
  43. hola dam, necesito una macro para validar si en una celda existe un hiperlink, si existe guardare el nombre y la ruta de este en una bd, de lo contrario en la bd los campos nombre y ruta del hiperlink quedaran vacios.

    ResponderEliminar
  44. Anómino:
    una forma muy sencilla es la siguiente:
    If ActiveCell.Hyperlinks.Count <> 0 Then
    MsgBox ActiveCell.Hyperlinks.Item(1).SubAddress
    Else
    MsgBox "no hay hipervínculo"
    End If

    el If.. revisa que haya un hipervínculo, mostrando la propiedad SubAddress, que es esa dirección que vos necesitas.
    Si no hay hipervínculo, muestro el mensaje avisando.
    Cualquier cosa me avisas.

    ResponderEliminar
  45. HOLA Damian Omar Silva
    NO SE SI ME PUEDAS APOYAR YA QUE TENGO UN CODIGO PERO EL QUE ME HACE EL FILTRO DE UNA TABLA DINAMICA
    ActiveSheet.PivotTables("Tabla dinámica6").PivotFields( _
    "Nivel 1 de categorización operacional").ClearAllFilters
    With ActiveSheet.PivotTables("Tabla dinámica6").PivotFields( _
    "Nivel 1 de categorización operacional")
    .PivotItems("FALLA HARDWARE").Visible = False
    .PivotItems("FALLA SOFTWARE").Visible = False
    .PivotItems("REGISTRO DE LLAMADA").Visible = False
    .PivotItems("SIN ACCESO").Visible = False
    End With

    PERO EN ESTECASO COMO LE PUEDO HACER PARA NO TENER ESTOS VALORES DE
    FALLA SOFTWARE
    FALLA HARDWARE
    REGISTRO DE LLAMADA
    SIN ACCESO
    LO PUEDA SUSTITUIR CON UN EL VALOR QUE SE ENCUENTRA EN LA CELDA A1 ,A2, A3
    ASI SI CAMBIO ESTE VALOR DE LA CELDA EL FILTRO SE AGA POR ESTE

    ResponderEliminar
  46. anónimo: no comprendo muy bien tu planteamiento, por favor detallame mejor el caso así te puedo ayuda correctamente.
    gracias.

    ResponderEliminar
  47. Hola,
    Necesito sacar unas estadísticas de ventas de varios archivos (facturas), todos tienen el mismo formato, lo que necesitaría es conocer como poder por ejemplo conocer cuantas unidades se vendieron de una referencia.
    Vamos buscar en cada uno de los archivos, si esta una unidad en concreto y sumarla en otro excel independiente.
    Gracias de antemano

    ResponderEliminar
  48. Hola
    soy nueva en el blog y quiero hacer una consulta:

    tengo una hoja de excel y necesito que al ingresar 1 en cualquier celda de la columna A me traiga el valor de la celda respectiva de la columna B a la columna C y si ingreso 2 en cualquier celda de la columna A me deje vacio pero que sea con una macro porque con una formula en la columna B no queda vacia la columna B sino queda con la formula.

    espero haberme hecho entender y que alguien me pueda ayudar

    gracias

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

funciones: convertir numeros a letras con excel

En realidad hace tiempo que vienen consultándome sobre esto... quizás cinco o seis años . Debe ser una de las funciones mas buscadas de Excel, por lejos: la posibilidad de escribir: 1.534,63 y que en una celda aparezca magicamente "un mil quinientos treinta y cuatro c/15/100". Aquí les dejo una solución, basada en funciones , sin utilizar macros, la cual preparé exclusivamente para este Blog. A pesar de los millones de usuarios que requieren esta herramienta, no viene incorporada en Excel, debemos armarla nosotros mismos .  Luego de la imagen irá la explicación de como llegué a lograr esto, dado que es un proceso medianamente complejo , que utiliza tres o cuatro funciones básicas y requiere de varios pasos. así quedará nuestra planilla y siempre devolverá en letras el valor que ingresemos en A1 [+/-] Ver el resto / Ocultar Desde ya aclaro: esta no es " la forma " de hacerlo, simplemente es una mas, evitando el uso de macros. Sobre esta base, comencemos: 1) El núme

macros: como enviar mails desde Excel (vba)

Un gran amigo "on-line", Johan Moreno, de Colombia , me hizo llegar la inquietud de cómo enviar mails desde Excel . Si bien contaba con algunas líneas de código sobre el particular, decidí retomar mi ejemplo y adaptarlo mejor a las circunstancias. Hace unos minutos termino de remitirle un correo con la solución a Johan... desde Excel y con un archivo adjunto, mismo que transcribo a continuación para ayudar a todos con esta tarea. Veamos primero las dos formas principales de enviar mails: mediante Outlook o nuestro Web Mail ( yahoo, gmail, hotmail, etc, etc ) No soy usuario de Outlook en lo absoluto: no confío en los agujeros de seguridad que continuamente aparecen y, por otro lado, t eniendo a mi alcance una herramienta tan poderosa (y gratuita) como Gmail, la cual ahora también permite sincronizar los mensaje con la Pc para verlos offline (deben activarlo en "google labs") ... no creo que me haga usuario ni hoy ni mañana. Igualmente mas adelante daré una solució

buscarv con varios resultados

Es de las preguntas mas recurrentes que he tenido: ¿se puede lograr que la función BUSCARV() devuelva varios resultados? Si recordamos el uso de esta función, sabremos que la misma buscar en valor en el rango especificado, retornando un solo resultado. Si en la tabla tenermos varios registros iguales BUSCARV() solo nos devolverá el primero de ellos, omitiendo el resto. Entonces ¿se puede? Bueno, aplicando otra técnica sencilla que se me ocurrió al intentar solucionar el planteamiento de un lector... si, puedo hacerlo.... pero sin usar BUSCARV(). la idea es que coloquemos en E1 el código del producto a buscar y a partir de E2 nos devuelva todas las coincidencias de la tabla. [+/-] Ver el resto / Ocultar Vamos a necesitar una columna "auxiliar" para llevar a buen término este proyecto. Con macros el tema sería mas sencillo, pero aquí la cuestión es resolverlo con las funciones de Excel, sin VBA. Paso a paso: Como primer medida chequeamos que valores de la columna A coincide co