XL 2013 VBA : comptabiliser le nombre de fois que l'on retrouve des termes precis

pasquetp

XLDnaute Occasionnel
bonjour,

je vous contacte sur un probleme que je rencontre

je travaille en entrepot et les produits sont stockes dans des etageres.

voici un fichier joint

la colonne qui nous interesse est la colonne I

vous verrez des adresses et des XXX (donnees sensible retiree)

ce qui m'interesse ce sont les adresses

vous verrez un userform

ce que je tente de faire c'est d'avoir la liste des noms d'etageres qu'on retrouve en colonne I et de donner leur nombre dans le userform:

Attention je precise que c'est bien le nombre de fois que le nom apparait et NON le nombre de celulle qui le contienne


exemple:

CRITICALSPARES.1A => 1 fois
CRITICALSPARES.3B => exemple 10 fois
...

ainsi le nom de chaque etageres et le nombre de fois que cette x etagere est mentionne doit apparaitre dans le userform

il faudrait donc je suppose 2 textbox variable

quelqu'un aurait il une idee?

Merci beaucoup de votre aide

Pierre
 

Pièces jointes

  • TEST.xlsm
    37.8 KB · Affichages: 55
  • TEST.xlsm
    37.8 KB · Affichages: 63
Dernière édition:

pasquetp

XLDnaute Occasionnel
Résolu : VBA : comptabiliser le nombre de fois que l'on retrouve des termes precis

bonjour,

merci de la video, tres pratique

j'ai maintenant compris comment votre macro fonctionne

le souci est dans la condition

dans votre macro elle fonctionne si la colonne F et H sont vides

en faite ce qu'il faudrait serait:

la macro exclurait l'avant derniere ligne uniquement si: ( G(x)= 0 AND H(x)="" ) OU ( H(x)=0 )

Veuillez m'excuser si il y a un manuq e de clarete

Merci

Pierre
 
Dernière édition:

pasquetp

XLDnaute Occasionnel
Re : VBA : comptabiliser le nombre de fois que l'on retrouve des termes precis

bonjour,

Merci de votre reponse

jai en effet tente

"une cellule vide ou égale à 0 est la même chose pour Excel / VBA "

cela explique sans doute le souci

du coup voici la condition:

( G(x)= 0 AND H(x)=VIDE ) OU ( H(x)=0 )
 

Marc L

XLDnaute Occasionnel
Aucun souci de mon côté sinon je n'ai rien compris aux conditions …

DictionaryListBox0.gif
 
Dernière édition:

pasquetp

XLDnaute Occasionnel
Re : Aucun souci de mon côté sinon je n'ai rien compris aux conditions …

Merci de votre retour rapide

votre video demontre bien que ca marche

je vais recontroler de mon cote, cest curieux

pouvez vous m'envoyer le fichier avec le code?

Merci
 

pasquetp

XLDnaute Occasionnel
Re : Aucun souci de mon côté sinon je n'ai rien compris aux conditions …

ok j'ai compris ce qui ne vas pas

votre code fonctionne pour une des conditions


( G(x)= 0 AND H(x)=VIDE )

celle ci fonctionne comme dans la video

mais celle ci ( H(x)=0 ) ne fonctionne pas

je vous donne un exemple

si par exemple en g10 j'ai 10 et en h10 j'ai 0 : cela voudra dire que cette ligne respecte la formule ( H(x)=0 )

si en H(x) j'ai le chiffre 0 et que cette donnee la, alors automatiquement la couleur verte apparaitra et ainsi les adresses de cette ligne ne doivent pas apparaitre mais actuellement le useform les montre toujours

voici le fichier avec un exemple parfait

deux couleur verte mais le userform montre toujours les donnes de la derniere ligne
 

Pièces jointes

  • Copy of Pasquetp Dictionary ListBox .xlsm
    24 KB · Affichages: 38
Dernière édition:

pasquetp

XLDnaute Occasionnel
Re : VBA : comptabiliser le nombre de fois que l'on retrouve des termes precis

:D it works

Merci encore ca fonctionne.

il manque peut etre la touche finale: uine fois que tous est vert, il me sort une erreur. peux on la remplacer par un message que tout est fini

vous etes un Boss

:)
 

Marc L

XLDnaute Occasionnel
VB:
Sub DemoListBox()
    With Sheet3.Cells(1).CurrentRegion.Rows
        If .Count = 1 Or .Columns.Count < 9 Then Beep: Exit Sub
        VA = .Item("2:" & .Count).Columns("G:I").Value
    End With
    With CreateObject("Scripting.Dictionary")
        For R& = 1 To UBound(VA)
            If Not ((VA(R, 1) = 0 And VA(R, 2) = "") Or VA(R, 2) = 0) Then
                For Each V In Split(VA(R, 3), ";")
                    V = Trim$(Split(V, "(")(0))
                    If V > "" Then .Item(V) = .Item(V) + 1
                Next
            End If
        Next
        Select Case .Count
            Case 1:       UserForm1.ListBox1.List = Evaluate("{""" & .Keys()(0) & """," & .Items()(0) & ";"""",""""}")
            Case Is > 1:  UserForm1.ListBox1.List = Application.Transpose(Array(.Keys, .Items))
        End Select
            .RemoveAll
    End With
             UserForm1.Show
End Sub
_______________________________________________________________________________
Merci de cliquer sur J'aime ce post en bas à gauche de chaque message ayant aidé …
 

Discussions similaires

Statistiques des forums

Discussions
311 713
Messages
2 081 808
Membres
101 819
dernier inscrit
lukumubarth