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
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
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
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 -
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" <didier.nova...@club-internet.fr>
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 -
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 -
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 -
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" <didier.nova...@club-internet.fr>
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 -
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 -
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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" a écrit dans le message
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
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" <michdenis@hotmail.com> a écrit dans le message de news:
OacYrACYIHA.2000@TK2MSFTNGP05.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message de news:
uRvZQ4BYIHA.1212@TK2MSFTNGP05.phx.gbl...
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" <michdenis@hotmail.com> a écrit dans le message de news:
u9%23bEhBYIHA.3400@TK2MSFTNGP03.phx.gbl...
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" <didier.novarin@club-internet.fr> a écrit dans le message
de news:
uhqZSuAYIHA.5816@TK2MSFTNGP06.phx.gbl...
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
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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" a écrit dans le message de news:
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" a écrit dans le message
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