Compter les cellules entre deux cellules.

Résolu
Geant.vert -  
 Geant.vert -
Bonjour à tous,

je souhaiterai dans une macro vba compter le nombre de cellules qu'il y a entre deux cellules identiques.

J'ai dans un fichier excel une liste de produit dont le nombre est indetermine et chaque produit est composé de differents composants dont le nombre peut varié lui aussi.

Ca ce présente sous la forme suivante:

Produit
-composant1
-composant2
-composant3
-composant4

Produit

-composant1
-composant2
-composant3
-composant4
-composant5

Je veux tout simplement compter le nombre de cellules vide et non-vide qu'il y a entre les deux cellules dont la valeur est égale à produit.

D'avance merci

10 réponses

  1. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   380
     
    Bonjour,

    Et comment on sait qu'il s'agit d'un produit, et non d'un composant?

    @ te relire avec plus de précisions
    0
  2. Geant.vert
     
    Tout simplement parceque c'est écrit "Produit" dans la cellule

    @+
    0
  3. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   380
     
    Re-,

    "Tout simplement....."

    Effectivement, j'aurai du le deviner....

    Sous quelle forme? (Produit Untel, Produit 1, ou Produit tout court)
    0
  4. Geant.vert
     
    j'ai du mal m'exprimer,désolé.

    par exemple en A10 il y a le mot Produit
    puis de A11 à A15 des references de composants
    puis en A16 de nouveau le mot produit
    puis de A17 à A... des references de composants

    Ce que je souhaite c'est compter toutes les cellules qui se trouvent en dessous du mot produit jusqu'au prochain mot produit.

    Est-ce clair?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   380
     
    Re-,

    OK

    Et sous quelle forme, tu veux récupérer ces données (on les inscrit dans une cellule, dans un MsgBox....)?

    Par exemple, les cellules concernées sont dans la colonne A

    On note en C1 le produit, et en D1 le nombre de cellules dessous, et ainsi de suite?
    0
  7. Geant.vert
     
    re-,

    je n'ai besoin que tu nombre de cellules dessous.
    Il peut être affiché dans la colonne D sur la même ligne que le mot Produit
    0
  8. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   380
     
    Re-,

    Donc, en supposant les produits dans la colonne A, essaie ainsi :

    Sub produits()
    Dim C As Range, DerCel As Range
    Dim Ligne As Long
    With Columns(1)
        Set C = .Find("Produit", LookAt:=xlPart)
        If Not C Is Nothing Then
            FirstAddress = C.Address
            Do
                Set DerCel = [D65000].End(xlUp)(2)
                DerCel.Value = C
                Ligne = C.Row
                Set C = .FindNext(C)
                DerCel.Offset(, 1).Value = C.Row - Ligne - 1
            Loop While Not C Is Nothing And C.Address <> FirstAddress
            DerCel.Offset(, 1).Value = [A65000].End(xlUp).Row - Ligne
        End If
    End With
    End Sub
    


    bon courage
    0
  9. Geant.vert
     
    re-,

    la macro passe sans problème mais je ne vois pas le résultat.
    0
  10. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   380
     
    re-,

    regarde le fichier joint...

    http://www.cijoint.fr/cjlink.php?file=cj201009/cijdISTnBi.zip

    si cela ne fonctionne pas chez toi, joins un fichier exemple, exempt de toutes données confidentielles, mais respectant la structure réelle de ton fichier initial...
    0
  11. Geant.vert
     
    re-,

    j'ai essayé le fichier que tu m'as envoyé et ça fonctionne très bien avec mes données.

    Il me reste à l'adapter à mon fichier.

    Un grand merci pour ton aide et ta rapidité.

    @+
    0