Compter le nombre de cases différentes

Thomas -  
Thomas_code Messages postés 3 Statut Membre -
Bonjour,

Je travaille sur une problématique de stockage.
Je cherche à compter automatiquement le nombre d'emplacements différents dans lesquels est stocké un équipement.

Exemple : Une fabrique de vélos stocke les éléments du vélo dans des rayonnages différents

Vélo 1 stocké à l'emplacement A
Vélo 1 stocké à l'emplacement A
Vélo 1 stocké à l'emplacement B
Vélo 1 stocké à l'emplacement C
Vélo 2 stocké à l'emplacement A
Vélo 2 stocké à l'emplacement D
Vélo 2 stocké à l'emplacement D

Le code devrait donc renvoyer "3" pour le nombre d'emplacements différents occupés par les vélo 1, et renvoyer "2" pour les vélo 2.

Avez vous des propositions à me faire ?
Bien à vous

Thomas
Configuration: Windows / Chrome 81.0.4044.113

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, qu'as-tu essayé?
    0
    1. Thomas_code Messages postés 3 Statut Membre
       
      J'ai essayé la formule :"=SOMMEPROD(1/NB.SI(B1:B8000;B1:B8000))
      Mais cette formule ne répond pas à mon problème puisqu'elle compte les emplacements différents de tous les vélos, sans distinguer le vélo 1 et le vélo 2...
      C'est la raison pour laquelle je pense qu'il faut passer par du code VBA excel (je travaille sur excel).
      0
    2. Thomas_code Messages postés 3 Statut Membre
       
      Sub test2()

      Dim Val1 As String
      Dim Val2 As String
      Dim Nb As Integer

      Nb = 1
      a = i - Nb

      'Comparaison de deux cases successives pour vérifier que l'on traite le même type de vélo'
      Range("A1").Select
      For i = 1 To Range("A65536").End(xlUp).Row
      Val1 = ActiveCell.Value
      Val2 = Selection.Offset(1, 0).Value
      If Val1 = Val2 Then
      Nb = Nb + 1
      Selection.Offset(1, 0).Select
      i = i + 1
      Else
      'ActiveCell = Nb'
      Selection.Offset(-Nb, 2).Select
      'compter le nombre d'emplacements différents'
      ' ActiveCell.FormulaR1C1 = _
      "=SUMPRODUCT(1/COUNTIF(R[0]C[-1]:R[& Nb &]C[-1],R[0]C[-1]:R[& Nb &]C[-1]))"'
      ActiveCell.FormulaR1C1 = _
      "=SUMPRODUCT(1/COUNTIF(B" & a & ":B" & i & ",B" & a & ":B" & i & "))"
      Selection.Offset(Nb + 1, -2).Select

      End If
      Nb = 1

      Next
      End Sub




      Dans ce code, j'ai un problème au niveau du Subproduct et je ne sais même pas si il accepte de lire les emplacements alphanumériques.
      Bien à toi
      0
  2. Utilisateur anonyme
     
    Bonjour,
    quel VB?
    • VBS
    • VBA -> précisez:
      • Word
      • Excel
      • Access
      • Powerpoint
      • Autre
    • VB6 (ou antérieur, précisez)
    • VB.Net - précisez la Framework et ->
      • Winform
      • WPF

    0
    1. Thomas_code Messages postés 3 Statut Membre
       
      VBA excel
      0