Comptabilisation d'item

Le
Didier NOVARIN
Bonjour,
J'ai dans une colonne des numéros de plusieurs sorte 3 ou 4 sortes
Je souhaite avoir dans un msgbox que je lance avec un bouton, le nombre de
numéro différent
exemple "Il y a 300 numéro x, 250 numéro y" etc.
Je vous remercie
Didier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5140711
Bonjour,


Sub Essai()
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("A1", [A65000].End(xlUp))
If Not mondico.Exists(c.Value) Then
mondico.Add c.Value, 1
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp + 1
End If
Next c
a = mondico.keys
b = mondico.items
temp = ""
For i = 0 To mondico.Count - 1
temp = temp & a(i) & ":" & b(i) & " "
Next i
MsgBox temp
End Sub

http://cjoint.com/?bAnnwMj7xb

JB



On 26 jan, 12:06, "Didier NOVARIN" wrote:
Bonjour,
J'ai dans une colonne des numéros de plusieurs sorte 3 ou 4 sortes
Je souhaite avoir dans un msgbox que je lance avec un bouton, le nombre de
numéro différent
exemple "Il y a 300 numéro x, 250 numéro y" etc.
Je vous remercie
Didier


JB
Le #5140661
Sub Essai()
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range("A1", [A65000].End(xlUp))
If Not mondico.Exists(c.Value) Then
mondico.Add c.Value, 1
Else
temp = mondico.Item(c.Value)
mondico.Remove (c.Value)
mondico.Add c.Value, temp + 1
End If
Next c
For Each c In mondico
temp = temp & c & ":" & mondico.Item(c) & " "
Next c
MsgBox temp
End Sub

http://cjoint.com/?bAnJBRLrCz

JB

On 26 jan, 13:13, JB
Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("A1", [A65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
      mondico.Add c.Value, 1
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp + 1
    End If
  Next c
  a = mondico.keys
  b = mondico.items
  temp = ""
  For i = 0 To mondico.Count - 1
    temp = temp & a(i) & ":" & b(i) & "  "
  Next i
  MsgBox temp
End Sub

http://cjoint.com/?bAnnwMj7xb

JB

On 26 jan, 12:06, "Didier NOVARIN" wrote:



Bonjour,
J'ai dans une colonne des numéros de plusieurs sorte 3 ou 4 sortes
Je souhaite avoir dans un msgbox que je lance avec un bouton, le nombre de
numéro différent
exemple "Il y a 300 numéro x, 250 numéro y" etc.
Je vous remercie
Didier- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



MichDenis
Le #5140651
En retenant qu'un filtre élaboré doit avoir une étiquette le colonne
Il est difficile de batre en vitesse et en simplicité ce type de code.

Nom de la feuille et plage de cellules à déterminer selon ton application.

Sub test()
Dim X As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom feuille à adapter
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AdvancedFilter xlFilterInPlace, , , True
X = Application.WorksheetFunction.Subtotal(3, .EntireRow) - 1
End With
.ShowAllData
End With
MsgBox X & " Valeurs différentes"
End Sub





"Didier NOVARIN"
Bonjour,
J'ai dans une colonne des numéros de plusieurs sorte 3 ou 4 sortes
Je souhaite avoir dans un msgbox que je lance avec un bouton, le nombre de
numéro différent
exemple "Il y a 300 numéro x, 250 numéro y" etc.
Je vous remercie
Didier
MichDenis
Le #5140631
Si tu as plusieurs valeurs différentes que tu veux dénombrer,
il y a aussi ceci :

Tu adaptes la valeur que tu cherches et la plage où se fait
le travail.

'-------------------------------------
Sub test()

Dim V1 As Variant, V2 As Variant
Dim V3 As Variant, Plg As String
Dim R As Long, S As Variant, T As Variant

V1 = 3 ' Nombre de 3 dans la plage
V2 = 4 ' Nombre de 4 dans la plage
V3 = 5 ' Nombre de 5 dans la plage

' Nom feuille à déterminer
With Worksheets("Feuil1")
'Définir la plage de cellules
Plg = .Name & "!" & .Range("A1:A" & _
.Range("A65536").End(xlUp).Row).Address
End With

R = Evaluate("SUMPRODUCT((" & Plg & "=" & V1 & ")*1)")
S = Evaluate("SUMPRODUCT((" & Plg & "=" & V2 & ")*1)")
T = Evaluate("SUMPRODUCT((" & Plg & "=" & V3 & ")*1)")

MsgBox R & " Valeur " & V1 & vbCrLf & _
S & " Valeur " & V2 & vbCrLf & _
T & " Valeur " & V3 & vbCrLf
End Sub
'-------------------------------------




"MichDenis" u9%
En retenant qu'un filtre élaboré doit avoir une étiquette le colonne
Il est difficile de batre en vitesse et en simplicité ce type de code.

Nom de la feuille et plage de cellules à déterminer selon ton application.

Sub test()
Dim X As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom feuille à adapter
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AdvancedFilter xlFilterInPlace, , , True
X = Application.WorksheetFunction.Subtotal(3, .EntireRow) - 1
End With
.ShowAllData
End With
MsgBox X & " Valeurs différentes"
End Sub





"Didier NOVARIN"
Bonjour,
J'ai dans une colonne des numéros de plusieurs sorte 3 ou 4 sortes
Je souhaite avoir dans un msgbox que je lance avec un bouton, le nombre de
numéro différent
exemple "Il y a 300 numéro x, 250 numéro y" etc.
Je vous remercie
Didier
MichDenis
Le #5140621
J'y ajoute un détail qui peut t'aider...
Si au lieu de chercher à dénombrer une valeur numérique
tu veux dénombrer une valeur texte, tu dois utiliser ceci
pour renseigner une variable... observe les guillemets.

V1 = """A"""

Et pour formule, il est aussi possible d'utiliser Nb.Si() ou Countif()
'-----------------------------
Sub testdf()

Dim V1 As Variant, V2 As Variant
Dim V3 As Variant, Plg As String
Dim R As Variant, S As Variant, T As Variant

V1 = """a""" ' Nombre de 3 dans la plage
V2 = 4 ' Nombre de 4 dans la plage
V3 = 5 ' Nombre de 5 dans la plage

' Nom feuille à déterminer
With Worksheets("Feuil1")
'Définir la plage de cellules
Plg = .Name & "!" & .Range("A1:A" & _
.Range("A65536").End(xlUp).Row).Address
End With

R = Evaluate("CountIf(" & Plg & "," & V1 & ")")
S = Evaluate("CountIf(" & Plg & "," & V1 & ")")
T = Evaluate("CountIf(" & Plg & "," & V1 & ")")

MsgBox R & " Valeur " & V1 & vbCrLf & _
S & " Valeur " & V2 & vbCrLf & _
T & " Valeur " & V3 & vbCrLf
End Sub
'-----------------------------







"MichDenis"
Si tu as plusieurs valeurs différentes que tu veux dénombrer,
il y a aussi ceci :

Tu adaptes la valeur que tu cherches et la plage où se fait
le travail.

'-------------------------------------
Sub test()

Dim V1 As Variant, V2 As Variant
Dim V3 As Variant, Plg As String
Dim R As Long, S As Variant, T As Variant

V1 = 3 ' Nombre de 3 dans la plage
V2 = 4 ' Nombre de 4 dans la plage
V3 = 5 ' Nombre de 5 dans la plage

' Nom feuille à déterminer
With Worksheets("Feuil1")
'Définir la plage de cellules
Plg = .Name & "!" & .Range("A1:A" & _
.Range("A65536").End(xlUp).Row).Address
End With

R = Evaluate("SUMPRODUCT((" & Plg & "=" & V1 & ")*1)")
S = Evaluate("SUMPRODUCT((" & Plg & "=" & V2 & ")*1)")
T = Evaluate("SUMPRODUCT((" & Plg & "=" & V3 & ")*1)")

MsgBox R & " Valeur " & V1 & vbCrLf & _
S & " Valeur " & V2 & vbCrLf & _
T & " Valeur " & V3 & vbCrLf
End Sub
'-------------------------------------




"MichDenis" u9%
En retenant qu'un filtre élaboré doit avoir une étiquette le colonne
Il est difficile de batre en vitesse et en simplicité ce type de code.

Nom de la feuille et plage de cellules à déterminer selon ton application.

Sub test()
Dim X As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom feuille à adapter
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AdvancedFilter xlFilterInPlace, , , True
X = Application.WorksheetFunction.Subtotal(3, .EntireRow) - 1
End With
.ShowAllData
End With
MsgBox X & " Valeurs différentes"
End Sub





"Didier NOVARIN"
Bonjour,
J'ai dans une colonne des numéros de plusieurs sorte 3 ou 4 sortes
Je souhaite avoir dans un msgbox que je lance avec un bouton, le nombre de
numéro différent
exemple "Il y a 300 numéro x, 250 numéro y" etc.
Je vous remercie
Didier
MichDenis
Le #5140611
Il y a aussi ceci que tu peux utiliser :

'-------------------------------------
Sub test()

Dim V1 As Variant, V2 As Variant
Dim V3 As Variant, Plg As Range
Dim R As Variant, S As Variant, T As Variant

V1 = "a" ' Nombre de 3 dans la plage
V2 = 2 ' Nombre de 4 dans la plage
V3 = 5 ' Nombre de 5 dans la plage

' Nom feuille à déterminer
With Worksheets("Feuil1")
'Définir la plage de cellules
Set Plg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

R = Application.CountIf(Plg, V1)
S = Application.CountIf(Plg, V2)
T = Application.CountIf(Plg, V3)

MsgBox R & " Valeur " & V1 & vbCrLf & _
S & " Valeur " & V2 & vbCrLf & _
T & " Valeur " & V3 & vbCrLf
End Sub
'-------------------------------------



"MichDenis"
J'y ajoute un détail qui peut t'aider...
Si au lieu de chercher à dénombrer une valeur numérique
tu veux dénombrer une valeur texte, tu dois utiliser ceci
pour renseigner une variable... observe les guillemets.

V1 = """A"""

Et pour formule, il est aussi possible d'utiliser Nb.Si() ou Countif()
'-----------------------------
Sub testdf()

Dim V1 As Variant, V2 As Variant
Dim V3 As Variant, Plg As String
Dim R As Variant, S As Variant, T As Variant

V1 = """a""" ' Nombre de 3 dans la plage
V2 = 4 ' Nombre de 4 dans la plage
V3 = 5 ' Nombre de 5 dans la plage

' Nom feuille à déterminer
With Worksheets("Feuil1")
'Définir la plage de cellules
Plg = .Name & "!" & .Range("A1:A" & _
.Range("A65536").End(xlUp).Row).Address
End With

R = Evaluate("CountIf(" & Plg & "," & V1 & ")")
S = Evaluate("CountIf(" & Plg & "," & V1 & ")")
T = Evaluate("CountIf(" & Plg & "," & V1 & ")")

MsgBox R & " Valeur " & V1 & vbCrLf & _
S & " Valeur " & V2 & vbCrLf & _
T & " Valeur " & V3 & vbCrLf
End Sub
'-----------------------------







"MichDenis"
Si tu as plusieurs valeurs différentes que tu veux dénombrer,
il y a aussi ceci :

Tu adaptes la valeur que tu cherches et la plage où se fait
le travail.

'-------------------------------------
Sub test()

Dim V1 As Variant, V2 As Variant
Dim V3 As Variant, Plg As String
Dim R As Long, S As Variant, T As Variant

V1 = 3 ' Nombre de 3 dans la plage
V2 = 4 ' Nombre de 4 dans la plage
V3 = 5 ' Nombre de 5 dans la plage

' Nom feuille à déterminer
With Worksheets("Feuil1")
'Définir la plage de cellules
Plg = .Name & "!" & .Range("A1:A" & _
.Range("A65536").End(xlUp).Row).Address
End With

R = Evaluate("SUMPRODUCT((" & Plg & "=" & V1 & ")*1)")
S = Evaluate("SUMPRODUCT((" & Plg & "=" & V2 & ")*1)")
T = Evaluate("SUMPRODUCT((" & Plg & "=" & V3 & ")*1)")

MsgBox R & " Valeur " & V1 & vbCrLf & _
S & " Valeur " & V2 & vbCrLf & _
T & " Valeur " & V3 & vbCrLf
End Sub
'-------------------------------------




"MichDenis" u9%
En retenant qu'un filtre élaboré doit avoir une étiquette le colonne
Il est difficile de batre en vitesse et en simplicité ce type de code.

Nom de la feuille et plage de cellules à déterminer selon ton application.

Sub test()
Dim X As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom feuille à adapter
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AdvancedFilter xlFilterInPlace, , , True
X = Application.WorksheetFunction.Subtotal(3, .EntireRow) - 1
End With
.ShowAllData
End With
MsgBox X & " Valeurs différentes"
End Sub





"Didier NOVARIN"
Bonjour,
J'ai dans une colonne des numéros de plusieurs sorte 3 ou 4 sortes
Je souhaite avoir dans un msgbox que je lance avec un bouton, le nombre de
numéro différent
exemple "Il y a 300 numéro x, 250 numéro y" etc.
Je vous remercie
Didier
JB
Le #5140601
Avec ADO:

Sub essai2()
' Microsoft ActiveX DataObject doit être coché
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" &
ThisWorkbook.FullName
Set rs = cnn.Execute("SELECT titre,count(*) as nb FROM maBD group by
titre")
Do While Not rs.EOF
temp = temp & rs("titre") & ":" & rs("nb") & " "
rs.MoveNext
Loop
MsgBox temp
End Sub

http://cjoint.com/?bAo4dFoXmo

JB

On 26 jan, 13:13, JB
Bonjour,

Sub Essai()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("A1", [A65000].End(xlUp))
    If Not mondico.Exists(c.Value) Then
      mondico.Add c.Value, 1
    Else
      temp = mondico.Item(c.Value)
      mondico.Remove (c.Value)
      mondico.Add c.Value, temp + 1
    End If
  Next c
  a = mondico.keys
  b = mondico.items
  temp = ""
  For i = 0 To mondico.Count - 1
    temp = temp & a(i) & ":" & b(i) & "  "
  Next i
  MsgBox temp
End Sub

http://cjoint.com/?bAnnwMj7xb

JB

On 26 jan, 12:06, "Didier NOVARIN" wrote:



Bonjour,
J'ai dans une colonne des numéros de plusieurs sorte 3 ou 4 sortes
Je souhaite avoir dans un msgbox que je lance avec un bouton, le nombre de
numéro différent
exemple "Il y a 300 numéro x, 250 numéro y" etc.
Je vous remercie
Didier- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Didier NOVARIN
Le #5140461
Je vous remercie beaucoup
J'ai grâce à vous trouvé mon bonheur !
Didier

"MichDenis"
Il y a aussi ceci que tu peux utiliser :

'-------------------------------------
Sub test()

Dim V1 As Variant, V2 As Variant
Dim V3 As Variant, Plg As Range
Dim R As Variant, S As Variant, T As Variant

V1 = "a" ' Nombre de 3 dans la plage
V2 = 2 ' Nombre de 4 dans la plage
V3 = 5 ' Nombre de 5 dans la plage

' Nom feuille à déterminer
With Worksheets("Feuil1")
'Définir la plage de cellules
Set Plg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With

R = Application.CountIf(Plg, V1)
S = Application.CountIf(Plg, V2)
T = Application.CountIf(Plg, V3)

MsgBox R & " Valeur " & V1 & vbCrLf & _
S & " Valeur " & V2 & vbCrLf & _
T & " Valeur " & V3 & vbCrLf
End Sub
'-------------------------------------



"MichDenis"
J'y ajoute un détail qui peut t'aider...
Si au lieu de chercher à dénombrer une valeur numérique
tu veux dénombrer une valeur texte, tu dois utiliser ceci
pour renseigner une variable... observe les guillemets.

V1 = """A"""

Et pour formule, il est aussi possible d'utiliser Nb.Si() ou Countif()
'-----------------------------
Sub testdf()

Dim V1 As Variant, V2 As Variant
Dim V3 As Variant, Plg As String
Dim R As Variant, S As Variant, T As Variant

V1 = """a""" ' Nombre de 3 dans la plage
V2 = 4 ' Nombre de 4 dans la plage
V3 = 5 ' Nombre de 5 dans la plage

' Nom feuille à déterminer
With Worksheets("Feuil1")
'Définir la plage de cellules
Plg = .Name & "!" & .Range("A1:A" & _
.Range("A65536").End(xlUp).Row).Address
End With

R = Evaluate("CountIf(" & Plg & "," & V1 & ")")
S = Evaluate("CountIf(" & Plg & "," & V1 & ")")
T = Evaluate("CountIf(" & Plg & "," & V1 & ")")

MsgBox R & " Valeur " & V1 & vbCrLf & _
S & " Valeur " & V2 & vbCrLf & _
T & " Valeur " & V3 & vbCrLf
End Sub
'-----------------------------







"MichDenis"
Si tu as plusieurs valeurs différentes que tu veux dénombrer,
il y a aussi ceci :

Tu adaptes la valeur que tu cherches et la plage où se fait
le travail.

'-------------------------------------
Sub test()

Dim V1 As Variant, V2 As Variant
Dim V3 As Variant, Plg As String
Dim R As Long, S As Variant, T As Variant

V1 = 3 ' Nombre de 3 dans la plage
V2 = 4 ' Nombre de 4 dans la plage
V3 = 5 ' Nombre de 5 dans la plage

' Nom feuille à déterminer
With Worksheets("Feuil1")
'Définir la plage de cellules
Plg = .Name & "!" & .Range("A1:A" & _
.Range("A65536").End(xlUp).Row).Address
End With

R = Evaluate("SUMPRODUCT((" & Plg & "=" & V1 & ")*1)")
S = Evaluate("SUMPRODUCT((" & Plg & "=" & V2 & ")*1)")
T = Evaluate("SUMPRODUCT((" & Plg & "=" & V3 & ")*1)")

MsgBox R & " Valeur " & V1 & vbCrLf & _
S & " Valeur " & V2 & vbCrLf & _
T & " Valeur " & V3 & vbCrLf
End Sub
'-------------------------------------




"MichDenis" u9%
En retenant qu'un filtre élaboré doit avoir une étiquette le colonne
Il est difficile de batre en vitesse et en simplicité ce type de code.

Nom de la feuille et plage de cellules à déterminer selon ton application.

Sub test()
Dim X As Long
Application.ScreenUpdating = False
With Worksheets("Feuil1") ' Nom feuille à adapter
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.AdvancedFilter xlFilterInPlace, , , True
X = Application.WorksheetFunction.Subtotal(3, .EntireRow) - 1
End With
.ShowAllData
End With
MsgBox X & " Valeurs différentes"
End Sub





"Didier NOVARIN" de news:

Bonjour,
J'ai dans une colonne des numéros de plusieurs sorte 3 ou 4 sortes
Je souhaite avoir dans un msgbox que je lance avec un bouton, le nombre de
numéro différent
exemple "Il y a 300 numéro x, 250 numéro y" etc.
Je vous remercie
Didier








Publicité
Poster une réponse
Anonyme