Nb de lignes distinctes

Le
Fan
Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de lignes
distinctes.

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5283311
Bonjour,

Donne la première et dernière ligne des colonnes B,C,D

PremLigne = [b:d].Find("*", , , , xlByRows, xlNext).Row
dernLigne = [b:d].Find("*", , , , xlByRows, xlPrevious).Row

JB


On 5 fév, 14:02, "Fan" wrote:
Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de lignes
distinctes.

Merci


MichDenis
Le #5283281
La méthode "Find" utilisée de cette manière ne couvre pas tous les cas de figure !
C'est pas grave, en autant que cela fonctionne la plus part du temps ....!
;-)

L'aide est explicite mais son application demeure alambiquée !



"JB"
Bonjour,

Donne la première et dernière ligne des colonnes B,C,D

PremLigne = [b:d].Find("*", , , , xlByRows, xlNext).Row
dernLigne = [b:d].Find("*", , , , xlByRows, xlPrevious).Row

JB


On 5 fév, 14:02, "Fan" wrote:
Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de lignes
distinctes.

Merci


Fan
Le #5283241
Merci pour votre réponse mais malheureusement je ne la comprends pas.

Pour être sur de ma demande je la reformule.

J'ai x lignes sur 4 colonnes (A, B, C, D) de la facon suivantes

A - B - C - D
10 - 5 - 1 - 8
14 - 5 - 1 - 9
19 - 6 - 1 - 10
10 - 5 - 1 - 11

Je recherche le nombres de lignes dictinctes sur les 1er colonnes ne renant
ainsi pas compte de la dernière
le nombre attendu pour cette exemple devrait être : 3

C'est la méthode sous vba que je n'arrive pas à metre en oeuvre.

Merci


"JB" news:
Bonjour,

Donne la première et dernière ligne des colonnes B,C,D

PremLigne = [b:d].Find("*", , , , xlByRows, xlNext).Row
dernLigne = [b:d].Find("*", , , , xlByRows, xlPrevious).Row

JB


On 5 fév, 14:02, "Fan" wrote:
Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de lignes
distinctes.

Merci


Daniel.C
Le #5283151
Bonjour.
Formule matricielle (valider avec CTRL+MAJ+Entrée) :
=MAX(SOMME(1/NB.SI(A1:A4;A1:A4));SOMME(1/NB.SI(B1:B4;B1:B4));SOMME(1/NB.SI(C1:C4;C1:C4)))
Cordialement.
Daniel
"Fan" a écrit dans le message de news:
eDaQM2$
Merci pour votre réponse mais malheureusement je ne la comprends pas.

Pour être sur de ma demande je la reformule.

J'ai x lignes sur 4 colonnes (A, B, C, D) de la facon suivantes

A - B - C - D
10 - 5 - 1 - 8
14 - 5 - 1 - 9
19 - 6 - 1 - 10
10 - 5 - 1 - 11

Je recherche le nombres de lignes dictinctes sur les 1er colonnes ne
renant
ainsi pas compte de la dernière
le nombre attendu pour cette exemple devrait être : 3

C'est la méthode sous vba que je n'arrive pas à metre en oeuvre.

Merci


"JB" news:
Bonjour,

Donne la première et dernière ligne des colonnes B,C,D

PremLigne = [b:d].Find("*", , , , xlByRows, xlNext).Row
dernLigne = [b:d].Find("*", , , , xlByRows, xlPrevious).Row

JB


On 5 fév, 14:02, "Fan" wrote:
Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de lignes
distinctes.

Merci







Fan
Le #5283001
Superbe, j'aurais eu du mal à la deviner. merci

Mais voilà puis-je pousser le vice en vous demandant comme l'adapter dans
une macro avec comme paramètre inconnu le nombre de ligne à exploiter .

merci


"Daniel.C" news:
Bonjour.
Formule matricielle (valider avec CTRL+MAJ+Entrée) :

=MAX(SOMME(1/NB.SI(A1:A4;A1:A4));SOMME(1/NB.SI(B1:B4;B1:B4));SOMME(1/NB.SI(C

1:C4;C1:C4)))
Cordialement.
Daniel
"Fan" a écrit dans le message de news:
eDaQM2$
Merci pour votre réponse mais malheureusement je ne la comprends pas.

Pour être sur de ma demande je la reformule.

J'ai x lignes sur 4 colonnes (A, B, C, D) de la facon suivantes

A - B - C - D
10 - 5 - 1 - 8
14 - 5 - 1 - 9
19 - 6 - 1 - 10
10 - 5 - 1 - 11

Je recherche le nombres de lignes dictinctes sur les 1er colonnes ne
renant
ainsi pas compte de la dernière
le nombre attendu pour cette exemple devrait être : 3

C'est la méthode sous vba que je n'arrive pas à metre en oeuvre.

Merci


"JB"
news:


Bonjour,

Donne la première et dernière ligne des colonnes B,C,D

PremLigne = [b:d].Find("*", , , , xlByRows, xlNext).Row
dernLigne = [b:d].Find("*", , , , xlByRows, xlPrevious).Row

JB


On 5 fév, 14:02, "Fan" wrote:
Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de
lignes



distinctes.

Merci












JB
Le #5282921
Sub Essai()
MsgBox SDM([A1:C6])
End Sub

Function SDM(champ)
Set MonDico = CreateObject("Scripting.Dictionary")
a = champ
For i = LBound(a, 1) To UBound(a, 1)
temp = ""
For k = LBound(a, 2) To UBound(a, 2)
temp = temp & " " & a(i, k)
Next k
If Not MonDico.Exists(temp) Then MonDico.Add temp, temp
Next i
SDM = MonDico.Count
End Function

http://cjoint.com/?cftxyKBr8n

JB



On 5 fév, 14:46, "Fan" wrote:
Merci pour votre réponse mais malheureusement je ne la comprends pas.

Pour être sur de ma demande je la reformule.

J'ai x lignes sur 4 colonnes (A, B, C, D) de la facon suivantes

A  -  B - C - D
10 -  5 - 1  - 8
14 -  5 - 1  - 9
19 -  6 - 1  - 10
10 -  5 - 1  - 11

Je recherche le nombres de lignes dictinctes sur les 1er colonnes ne renan t
ainsi pas compte de la dernière
le nombre attendu pour cette exemple devrait être : 3

C'est la méthode sous vba que je n'arrive pas à metre en oeuvre.

Merci

"JB" Bonjour,

Donne la première et dernière ligne des colonnes B,C,D

   PremLigne = [b:d].Find("*", , , , xlByRows, xlNext).Row
   dernLigne = [b:d].Find("*", , , , xlByRows, xlPrevious).Row

JB

On 5 fév, 14:02, "Fan" wrote:



Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de lignes
distinctes.

Merci- Masquer le texte des messages précédents -


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



Daniel.C
Le #5282911
Etant assez paresseux :

MsgBox Evaluate("=MAX(SUM(IF(ISERR(1/COUNTIF(A1:A65000,A1:A65000))" & _
",0,1/COUNTIF(A1:A65000,A1:A65000))),SUM(IF(ISERR(1/COUNTIF(B1:B65000,B1:B65000))"
& _
",0,1/COUNTIF(B1:B65000,B1:B65000))),SUM(IF(ISERR(1/COUNTIF(C1:C65000,C1:C65000))"
& _
",0,1/COUNTIF(C1:C65000,C1:C65000))))")

Daniel
"Fan" a écrit dans le message de news:
%
Superbe, j'aurais eu du mal à la deviner. merci

Mais voilà puis-je pousser le vice en vous demandant comme l'adapter dans
une macro avec comme paramètre inconnu le nombre de ligne à exploiter .

merci


"Daniel.C" news:
Bonjour.
Formule matricielle (valider avec CTRL+MAJ+Entrée) :

=MAX(SOMME(1/NB.SI(A1:A4;A1:A4));SOMME(1/NB.SI(B1:B4;B1:B4));SOMME(1/NB.SI(C

1:C4;C1:C4)))
Cordialement.
Daniel
"Fan" a écrit dans le message de news:
eDaQM2$
Merci pour votre réponse mais malheureusement je ne la comprends pas.

Pour être sur de ma demande je la reformule.

J'ai x lignes sur 4 colonnes (A, B, C, D) de la facon suivantes

A - B - C - D
10 - 5 - 1 - 8
14 - 5 - 1 - 9
19 - 6 - 1 - 10
10 - 5 - 1 - 11

Je recherche le nombres de lignes dictinctes sur les 1er colonnes ne
renant
ainsi pas compte de la dernière
le nombre attendu pour cette exemple devrait être : 3

C'est la méthode sous vba que je n'arrive pas à metre en oeuvre.

Merci


"JB"
news:


Bonjour,

Donne la première et dernière ligne des colonnes B,C,D

PremLigne = [b:d].Find("*", , , , xlByRows, xlNext).Row
dernLigne = [b:d].Find("*", , , , xlByRows, xlPrevious).Row

JB


On 5 fév, 14:02, "Fan" wrote:
Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de
lignes



distinctes.

Merci
















MichDenis
Le #5282881
En supposant que la première ligne renferme des étiquettes
de colonnes (obligatoire pour un filtre élaboré)

Tu adaptes la plage où sont tes données dans mon exemple : A1:Dx

Feuil1 est le nom de l'objet "Feuil1" dans la feuille de l'éditeur de code
et non le nom de l'onglet de la feuille.

Il y a ceci :
'----------------------------------
Sub test()
Dim Nb As Long, Total As Long
Application.ScreenUpdating = False
With Feuil1
Derlig = .Range("A:D").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
With .Range(.Cells(1, "A"), .Cells(Derlig, "C"))
.AdvancedFilter xlFilterInPlace, , , True
Total = Application.Subtotal(3, .Columns(1).Cells) - 1
End With
.ShowAllData
End With
MsgBox Total
End Sub
'----------------------------------



"Fan" a écrit dans le message de news: e6Heed$
Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de lignes
distinctes.

Merci
MichDenis
Le #5282791
Si dans la colonne A, B, ou C, tu as des cellules vides, modiifie
la ligne Total = .... par ce qui suit dans la procédure soumiise .

Total = Round(((Application.Subtotal(3, .Cells) + _
Application.CountBlank(.Cells)) / 3) - 1, 0)




"MichDenis"
En supposant que la première ligne renferme des étiquettes
de colonnes (obligatoire pour un filtre élaboré)

Tu adaptes la plage où sont tes données dans mon exemple : A1:Dx

Feuil1 est le nom de l'objet "Feuil1" dans la feuille de l'éditeur de code
et non le nom de l'onglet de la feuille.

Il y a ceci :
'----------------------------------
Sub test()
Dim Nb As Long, Total As Long
Application.ScreenUpdating = False
With Feuil1
Derlig = .Range("A:D").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
With .Range(.Cells(1, "A"), .Cells(Derlig, "C"))
.AdvancedFilter xlFilterInPlace, , , True
Total = Application.Subtotal(3, .Columns(1).Cells) - 1
End With
.ShowAllData
End With
MsgBox Total
End Sub
'----------------------------------



"Fan" a écrit dans le message de news: e6Heed$
Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de lignes
distinctes.

Merci
Fan
Le #5282141
Merci à tous les 3 pour vos solutions; elles sont parfaites.

"MichDenis" news:uH4$
Si dans la colonne A, B, ou C, tu as des cellules vides, modiifie
la ligne Total = .... par ce qui suit dans la procédure soumiise .

Total = Round(((Application.Subtotal(3, .Cells) + _
Application.CountBlank(.Cells)) / 3) - 1, 0)




"MichDenis"
En supposant que la première ligne renferme des étiquettes
de colonnes (obligatoire pour un filtre élaboré)

Tu adaptes la plage où sont tes données dans mon exemple : A1:Dx

Feuil1 est le nom de l'objet "Feuil1" dans la feuille de l'éditeur de code
et non le nom de l'onglet de la feuille.

Il y a ceci :
'----------------------------------
Sub test()
Dim Nb As Long, Total As Long
Application.ScreenUpdating = False
With Feuil1
Derlig = .Range("A:D").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
With .Range(.Cells(1, "A"), .Cells(Derlig, "C"))
.AdvancedFilter xlFilterInPlace, , , True
Total = Application.Subtotal(3, .Columns(1).Cells) - 1
End With
.ShowAllData
End With
MsgBox Total
End Sub
'----------------------------------



"Fan" a écrit dans le message de news:
e6Heed$

Bonjour

J'ai 3 colonnes et je souhaiterais par vba connaitre le nombre de lignes
distinctes.

Merci







Publicité
Poster une réponse
Anonyme