Gestion d'un stock suivant un nombre de cellules

Résolu
Laurent8585 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
Laurent8585 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Ma question précedente étant résolu rapidement par Vaucluse que je remercie, je me permet d'ouvrir un nouveau post
Pour chercher le nombre de cellule par rapport a un critere, il y a ça
=NB.SI(B9:U188;B3)

Type Qté
Vide 3578
A1 19
B5 3

1 2 3 4 5 6

1 A1
2 A1
3 A1 B5
4 A1 B5
5 A1 B5

Mon dernier problème est que je suis obliger de me rappeler de tous les codes inscrits dans ma plage de cellules pour pouvoir les compter
Existe t il un système de recherche qui compterait toutes les cellules en les classant par les codes (environ 20 codes différents mais qui changent régulierement)et le nombre correspondant
Les cellules vides peuvent se compter avec NB.VIDE
Merci d'avance

--
J'ai le temps, je ne suis pas en retraite...

4 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Re
    avez vous un modèle de votre problème à déposer ici:
    https://www.cjoint.com/
    en revenant coller dans un prochain message le lien créé sur le site
    à vous lire
    0
  2. Laurent8585 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
     
    Re
    Le fichier se trouve ici
    http://www.cjoint.com/c/GGumQTrVAZl
    J'ai remis des explications dans la feuille concernée
    Merci d'avance pour votre implication
    0
  3. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour Laurent, salut amical Vaucluse,

    Ton fichier en retour avec un bouton pour actualiser
    ALT+F11 pour voir la macro
    https://mon-partage.fr/f/AvCu7hay/

    Cdlmnt
    Via
    0
  4. Laurent8585 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
     
    Un grand merci pour ce problème résolu rapidement
    Première visite sur ce forum et la je suis agréablement surpris par votre aide
    La solidarité existe encore
    Merci !!!!
    0
    1. dany
       
       
      Bonjour Laurent,

      ⚠  Ta formule en Z8 est erronée !

      Remplace : =NB.SI(B7:U186;Y8)

      par : =SI(Y8="";"";NB.SI(B$7:U$186;Y8))

      puis recopie cette formule vers le bas.

      ----------------------------------------

      Le code VBA de via55 est très bon ; je l'ai un peu modifié :

      1) Indentation du programme (pour une lecture plus facile)
      2) Ajout de Option Explicit : force la déclaration des variables
      3) Toutes les variables sont déclarées explicitement
      4) Ajout de Application.ScreenUpdating = False
      5) Après un Next, ajout de la variable correspondante
      6) Détection de la dernière ligne utilisée, selon la colonne A =>
          possibilité d'ajouter des lignes supplémentaires sous le tableau
      7) Ig initialisé à 7 au lieu de 8, car modif ci-dessous
      8) lg = lg + 1 mis devant Range("Y" & lg) = cod (au lieu de après)
      9) Ajout d'un tri croissant de la liste des lots (utilise lg précédent,
          qui est déjà ok grâce à modif ci-dessus)

      
      Option Explicit
      
      Sub codes()
        Dim cod As String, existe As Byte, lg As Long
        Dim dlig As Long, x As Long, y As Integer, z As Long
        Application.ScreenUpdating = False
        dlig = Range("Y" & Rows.Count).End(xlUp).Row
        If dlig > 7 Then Range("Y8:Y" & dlig).ClearContents
        dlig = Range("A" & Rows.Count).End(xlUp).Row
        lg = 7
        For x = 7 To dlig
          For y = 2 To 21
            If Cells(x, y) <> "" Then
              cod = Cells(x, y): existe = 0
              For z = 8 To lg
                If Range("Y" & z) = cod Then existe = 1
              Next z
              If existe = 0 Then
                lg = lg + 1: Range("Y" & lg) = cod
              End If
            End If
          Next y
        Next x
        Range("Y8:Y" & lg).Sort [Y8], 1
      End Sub
      
      

      Merci de confirmer que tu obtiens bien les résultats attendus.

      ----------------------------------------

      Autres améliorations

      J'ai aussi amélioré la présentation de la feuille "Parc vert"
      (notamment des formats de cellules).

      En colonne A, le dernier n° est 180 ; si tu as besoin d'ajouter des lignes
      dessous (donc à partir de la ligne 187), tu peux le faire : le code VBA
      s'y adapte automatiquement.

      ----------------------------------------

      Voici le fichier (avec formule corrigée et nouveau code) :

      https://mon-partage.fr/f/Fcu1mSM6/

      Pour actualiser : clic sur le bouton, ou Ctrl e =>
      lots triés par ordre alphabétique.

      Cordialement
       
      0
      1. Laurent8585 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > dany
         
        Bonjour
        Ok ça marche nickel
        J'essaye de moderniser mon fichier et je reviens vers vous si besoin
        Un grand merci pour votre aide précieuse
        Cordialement
        0