VBA - Décompte caractères d'une même colonne

Bonjour le Forum,

Ma problématique actuelle est la comptabilisation de données contenues dans une colonne.

1/- Dans un fichiers contenant plusieurs feuilles, quelque soit leur nom, et quelque soit le contenu des autres cellules

2/- La colonne à traiter est toujours la même : La colonne "I"

3/- La colonne "I" ne comporte que 2 caractères : (*) et (0)

4/- Le truc est de comptabiliser le nombre de (*) entre chaque (0) et de reporter le nombre trouvé dans la colonne "J" dans la cellule sur la même ligne que le (0), ceci dans toutes les feuilles du fichier.

5/- Lorsque la série se termine par un ou plusieurs (*) leur somme est reportée dans la colonne "K" dans la cellule sur la même ligne que le dernier (*), ceci dans toutes les feuilles du fichier aussi.

En fichier joint le résultat attendu.

Merci par avance de votre aide.

Bonjour,

Sub CompterEcarts()
    Dim ws As Worksheet, ec%, i%
    Application.ScreenUpdating = False
    For Each ws In Worksheets
        With ws.Columns("I")
            i = 1
            Do While .Cells(i, 1) <> ""
                If .Cells(i, 1) = "*" Then
                    ec = ec + 1
                ElseIf .Cells(i, 1) = 0 Then
                    .Cells(i, 2) = ec: ec = 0
                End If
                i = i + 1
            Loop
            If ec > 0 Then .Cells(i - 1, 3) = ec: ec = 0
        End With
    Next ws
End Sub

Cordialement.

Bonjour MFerrand,

Merci à toi, mais ta macro fonctionne uniquement sur la première feuille et le résultat attendu en colonne "K" se trouve en colonne "J".

@+++

Je veux bien admettre que je mets du temps à me réveiller... mais toi tu n'as pas les yeux en face des trous !

Je ne sais ce que tu as fait de la macro, la voilà dans ton fichier modèle, et j'en ai ajouté une autre pour effacer les colonnes J et K, afin d'éviter toute ambiguïté.

Et regarde bien jusqu'en C14 (ensuite ya plus rien) et les bonnes colonnes !

Un grand merci à toi pour ton aide mais il doit y avoir un souci qui ne se voit manifestement pas à l'oeil nu, lol.

Ci-joint le fichier sur lequel cela ne marche pas... probablement une raison qui m'échappe...

Vois-donc

La cellule I1 étant vide, la macro considère que la feuille est vide !

Et ça se voit bien à l'oeil nu !

Oupssssssssssssss, Ok.

Je sais pas d'où ça vient ???

Du coup t'as pas une macro pour me faire sauter toutes les premières lignes de chaque feuille. J'en ai 800 à traiter ...

Remplace la ligne i = 1 par :

            If .Cells(1, 1) <> "" Then i = 1 Else i = 2

S'il n'y a pas d'autre écart de structure, cela fonctionnera.

Cordialement.

C'est fait.

Ca marche.

Parfaitement génial.

Un grand merci à toi.

A bientôt

Rechercher des sujets similaires à "vba decompte caracteres meme colonne"