Saltar al contenido

Contar rangos variables


jhonam47

Recommended Posts

publicado

Buena noche a todos, soy nuevo en esto y necesito de la ayuda de los expertos

tengo una hoja de calculo, similar a esta

     A                   B                 C                 D                 E          F

1  Director Asistente Gerente Ing Cajero
2  R A C I  
3  RA C     I
4  C A I r  
5  C I A   R
6  RA C     I
7  RA C     I
8  RA C     I

Lo que necesito es una macro que recorra los rangos de de A2:E2 y me escriba en F2 Cuantas letras R encontró y así valla bajando hasta el final, el problema que tengo es que tanto el valor desde A hasta E puede ser mayor o menor y a su vez el valor de 1 puede ser mayor o menos y el texto buscado puede variar de R o A o C o I

Espero pueda haberme explicado y gracias

publicado

Hola

Dibuja un botón en tu hoja1 y coloca el siguiente código :

Dim Uf As String
Dim I As Integer
Dim J As Integer
Dim C As Integer
Dim R As Integer


Uf = Hoja1.Range("A" & Rows.Count).End(xlUp).Row



    For I = 1 To 5
    
    
            For J = 1 To Uf
    
    
                For R = 1 To Len(Hoja1.Cells(1 + J, I))
                
                    If Mid(Hoja1.Cells(1 + J, I), R, 1) = "R" Or Mid(Hoja1.Cells(1 + J, I), R, 1) = "r" Then
                            
                            C = C + 1
                    End If
                
                Next R
    
            
            Next J
    
    
    Next
                Hoja1.Cells(2, 6) = C

Saludos.

publicado

Gracias, pero aun considero ser un estudiante de la materia. De todos modos, gracias por tus palabras.

publicado

Aquí está mi aporte (no se me podría olvidar, jaja), basado en las ideas de enigma, pero la búsqueda de la letra la asigné a una función auxiliar, donde se le puede pasar como argumento la letra a buscar, y usamos Lcase() para comparar por minúsculas y así no diferenciar entre minúsculas y mayúsculas.  Básicamente la idea central es:

    Dim Uf As String
    Dim I As Integer
    Dim J As Integer

    Dim total As Integer
    Dim letra As String

    Uf = Hoja1.Range("A" & Rows.count).End(xlUp).Row

    ' Letra a buscar, puedes cambiar por otra
    letra = "R"

    For I = 2 To Uf
    
        ' La variable total cuenta el número de apariciones de la letra en
        ' las palabras de la fila I
        total = 0
        For J = 1 To 5
            total = total + contarLetras(Hoja1.Cells(I, J), letra)
        Next
        Hoja1.Cells(I, 6) = total
    Next

Aquí está el archivo, y recuerda joham si te gustó este aporte, no olvides recompensarme con un "me gusta", así me ayudas a construir mis puntos de reputación :)

 

Jhonam_ContarRangos.xlsm

  • 4 weeks later...

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.