Contar.si en una columna que se indica en una celda

Hola experto!
Tengo una consulta en la que ojalá me puedas ayudar:
Cómo hacer una macro que realice algo parecido a "contar.si" que cuente las celdas con un determinado valor en una columna que se indique en otra celda, me explico:
Si la información que quiero contar está en la columna A, indicaré en una celda (ej. F1) la letra de la columna (en este caso "A"), y que inmediatamente cuente en esa columna las celdas que contengan "Seguridad", "Planificación", "RRHH" etc., y que vaya escribiendo los totales desde la celda F3 hacia abajo.
De antemano muchas gracias por tu tiempo... Saludos!
Respuesta
1
¿Bien entendido de donde tomamos los valores que hay que contar?
Aclarame esto.
>Un saludo
>Julio
Te refieres a las palabras "Seguridad", "Planificación", ¿etc?, bueno, si es así, la verdad es que esos valores son fijos... ya que siempre la columna que se ingrese en la celda tendrá sólo de esos valores.
Pero no te preocupes, dame el ejemplo para "Seguridad" y "Planificación" y yo completo los demás bucles con todas las demás palabras. Lo que me complica más es la parte de contar sólo en la columna cuya letra o número se indicará en la celda F1.
Gracias por responder tan pronto.
pd: no sé porque se ingresó 2 veces la consulta, pero no olvidaré puntuar ambas.
Esta macro se la asignas a un botón en la hoja y lo pulsas para contar los valores que pongas en el Inputbox, si no quieres un Inputbox y tener que estar escribiendo create una lista en una celda y la variable valor se la asignas al valor de esa celda, o pones una lista en la col G con todos tus datos y la variable a buscar que sea la celda de la izquierda respecto a la celda del resultado... como quieras:
Private Sub contar()
Dim col, valor, rag As String
col = Range("F1").Value 'Indicar la letra de la Columna
valor = InputBox("Escriba el valor a contar")
rag = col & ":" & col
If Range("F3").Value = "" Then
Range("F3").Select
End If
If Range("F3").Value <> "" Then
Range("F3").Select
End If
ActiveCell.Formula = "=COUNTIF(" & rag & ", """ & valor & """ )"
End Sub
Si te ha servido comenta, puntúa y finaliza la consulta. Gracias.
>Un saludo
>Julio
Tal como me dices, me serviría si es que la lista de valores a buscar estuviera fijo en la columna G (esto es, de G3 a G13, ya que son éstos los valores que siempre se contarán en la columna que ingrese el usuario), pero no entiendo cómo puedo relacionarla con la columna de al lado, ¿entiendo el concepto pero no sé como hacerlo... me podrías dar esa última ayudita?
De todas maneras te cuento que el código funciona a la perfección! :D
Gracias por tu valiosa ayuda.
Pues en ves de tomar la referencia del Inputbox la tomaríamos desde la celda contigua a la celda donde vamos a mostrar el dato quedaría así:
Private Sub contar()
Dim col, valor, rag As String
col = Range("F1").Value 'Indicar la letra de la Columna
rag = col & ":" & col
If Range("F3").Value = "" Then
Range("F3").Select
valor=ActiveCell.Offset(0,-1).Value
End If
If Range("F3").Value <> "" Then
Range("F3").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
valor=ActiveCell.Offset(0,-1).Value
End If
ActiveCell.Formula = "=COUNTIF(" & rag & ", """ & valor & """ )"
End Sub
Y ya lo tienes tomaría el nombre de la variable de la celda contigua de la izquierda de la celda donde va a poner el resultado de la fórmula.
>Un saludo
>Julio
Muchas gracias!... me funcionó perfecto!... realmente agradezco tu tiempo y tu dedicación.
Abusando un poco de tu buena voluntad, ¿sería posible que te enviara un pequeño archivo con el que tengo unos problemas gigantescos?, hace semanas que estoy pidiendo ayuda en distintos foros, pero nadie me ha dado respuesta. Considerando tu nivel de experto sé que me podrías ayudar.
¿Es posible?
Muchas gracias nuevamentes, saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas