Compter le nombre de cases différentes

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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    bonjour, qu'as-tu essayé?
    1. 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).
    2. 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
  2. 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

    1. VBA excel