nbdif

cocktail

XLDnaute Occasionnel
Bonjour les amis,

je viens solliciter votre aide et vos compétences svp.

Ma formule nbdif permettant de compter le nombre de personnes différentes sur mon fichier xls ne fonctionne plus et fait apparaître un "#nom"

je ne sais pas si c'est un problème de code sur visual basic ou d'erreur excel.

Je vous joins le fichier pour que ce soit plus clair.

Merci pour votre support

Cocktail
 

Pièces jointes

  • Classeur1.xlsx
    9.4 KB · Affichages: 28
  • Classeur1.xlsx
    9.4 KB · Affichages: 27

chris

XLDnaute Barbatruc
Re : nbdif

Bonjour

Soit il y avait du code VBA dans le fichier et il faut sauvegarder le xls en xlsm pour ne pas le perdre, soit cette fonction personnalisée était enregistrée dans le classeur de macros personnelles ou dans un complément et celui-ci n'est plus disponible...
 

cathodique

XLDnaute Barbatruc
Re : nbdif

Bonsoir,

Comme précisé par Chris, il faut enregistrer le fichier dans un format supportant les macros (xlsm).

essai ceci
VB:
Sub nombre_Personne()
    Dim NbLig As Long, d As Object, c As Range
    NbLig = Cells(Rows.Count, 1).End(xlUp).Row  'nombre de ligne en colonne A
    Set d = CreateObject("scripting.dictionary")    'création d'un dictionnaire (Dictionary n'accepte pas de doublons)

    For Each c In Range("A2:a" & NbLig)
        d(c.Value) = ""   'alimente le dictionnaire
    Next c

    [d1] = d.Count  'nombre d'élément dans le dictionnaire
End Sub
Copie ce code dans un module standard et tu l'executes (F5 ou F8 pour pas à pas).

Bonne soirée.
 

cocktail

XLDnaute Occasionnel
Re : nbdif

Bonjour Cathodique,

merci pour ton aide, fichier enregistré en xlsm, mais le code vba ne semble pas fonctionner à moins que je fasse une mauvaise manip :-(

Quelqu'un connaitrais t-il le code vba associé à la formule nbdif svp ?

merci encore pour votre aide
 

Dranreb

XLDnaute Barbatruc
Re : nbdif

Elle donne ça seulement si on la valide par simple Entrée au lieu de maintenir successivement appuyées les touche Ctrl, majuscule et Entrée.
Alors cliquez dans la barre de formule, n'y changez rien, mettez le pouce de la main gauche sur la touche tout en bas à gauche du clavier, puis sans la lâcher, l'index sur la touche juste au dessus, et de la main droite Entrée.
 
Dernière édition:

Chris401

XLDnaute Accro
Re : nbdif

Bonsoir à tous
le problème avec la formule, c'est qu'il faut la modifier à chaque fois que tu rajoute des noms, à moins d'ajouter une condition qui évite le DIV.
Avec la condition en plus :
Code:
=SOMME(SI(A2:A100<>"";1/NB.SI(A2:A100;A2:A100)))

La macro :
Code:
Function nbdif(plage As Range)
Application.Volatile
  Set pl = CreateObject("Scripting.Dictionary")
    For Each c In plage
        If c.Value <> "" Then pl(c.Value) = ""
    Next c
nbdif = pl.Count
End Function
Cordialement
Chris
 

Discussions similaires

Réponses
6
Affichages
301

Statistiques des forums

Discussions
312 330
Messages
2 087 346
Membres
103 525
dernier inscrit
gbaipc