Compter le nombre de cases différentes

Fermé
Thomas - 16 avril 2020 à 19:16
Thomas_code Messages postés 3 Date d'inscription jeudi 16 avril 2020 Statut Membre Dernière intervention 17 avril 2020 - 17 avril 2020 à 10:44
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

yg_be Messages postés 22859 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 7 juin 2024 1 474
16 avril 2020 à 21:10
bonjour, qu'as-tu essayé?
0
Thomas_code Messages postés 3 Date d'inscription jeudi 16 avril 2020 Statut Membre Dernière intervention 17 avril 2020
17 avril 2020 à 00:47
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
Thomas_code Messages postés 3 Date d'inscription jeudi 16 avril 2020 Statut Membre Dernière intervention 17 avril 2020
Modifié le 17 avril 2020 à 11:33
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
Whismeril Messages postés 19049 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 5 juin 2024 913
16 avril 2020 à 21:24
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
Thomas_code Messages postés 3 Date d'inscription jeudi 16 avril 2020 Statut Membre Dernière intervention 17 avril 2020
17 avril 2020 à 00:38
VBA excel
0