begin process at 2012 02 13 23:49:30
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > LISTE TÉLÉPHONIQUE VIA ACTIVE DIRECTORY

LISTE TÉLÉPHONIQUE VIA ACTIVE DIRECTORY


 Information sur la source

Note :
Aucune note
Catégorie :VB.NET Source .NET ( DotNet ) Classé sous :téléphonique, activedirectory, ldap, liste Niveau :Débutant Date de création :26/07/2007 Date de mise à jour :30/07/2007 14:03:20 Vu / téléchargé :11 694 / 586

Auteur : apache88

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Bonjour,

Je suis heureux de vous présenter mon tout premier programme que j'ai réalisé en VB .NET!
Bien sûr je n'aurais rien pu faire sans l'immense aide que mon apporté jmfmarques et Renfield! Encore un grand merci!
Je l'avais créé dans l'unique but de m'entraîner, mais je suis dit que je pourrais en faire profiter les autres, et c'est une bonne occasion d'avoir des critiques sur mon travail.

Le principe est simple:

Le programme scan toute l'active directory et relève les informations dont vous aurez choisi (Liste téléphonique pour mon cas)
Il va ensuite écrire ces données dans un fichiers excel et va ensuite améliorer un peu la mise en page. La mise en page du fichier est bien personnalisable. Le fichier sera ensuite enregistré à l'endroit désiré.

Comme je l'ai dis plus haut, les informations que vous voulez avoir sont totalement personnalisable. Mais pour mon cas il s'agissait de faire une liste téléphonique (utile pour une entreprise qui à besoin d'une liste téléphonique interne).

J'ai commenté un maximum mon code alors j'espère qu'il sera assez clair. Si ce n'est pas le cas, dite le moi

Si vous avez des critiques, des idées d'amélioration ou autres, n'hésitez pas! C'est aussi pour ça que je partage mon code.

PRES-REQUIS:

Références:
System.DirectoryS ervices
Microsoft Excel 9.0 Object library

PS: IMPORTANT!! Ce code est adapté si vous avez office en Français! si vous avez en anglais, il faut adapté le code pour modifier le nom de la feuille! Au lieu de Feuil1 il fraudra mettre Tabelle1 (allemand) ou Sheet1(anglais).

Source

  • Imports System.Reflection
  • Imports System.DirectoryServices
  • Module Module1
  • Sub Main()
  • '================================================================================================================
  • ' LISTE TELEPHONIQUE
  • '
  • ' auteur: Johan Tanner
  • ' Language: Visual Basic .NET
  • '================================================================================================================
  • Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://NOMDUSERVEUR", "USERNAME", "PASSWORD")'Connexion au serveur Active directory
  • Dim searcher As DirectorySearcher = New DirectorySearcher(Ldap)
  • Dim DirEntry As DirectoryEntry
  • Dim excel As New Excel.Application
  • Dim wb As Excel.Workbook
  • Dim ws As Excel.Worksheet
  • Dim Li As Long
  • searcher.Filter = "(objectClass=user)"
  • excel.Visible = True 'la fenêtre excel est visible
  • wb = excel.Workbooks.Add(1) 'on ouvre un classeur dans excel
  • ws = wb.Worksheets(1) 'on ouvre une feuille dans le classeur excel
  • wb.Sheets("Feuil1").Select() 'on séléectionne la feuille nommé "Feuil1"
  • wb.Sheets("Feuil1").Name = "XXX" 'on renomme la feuil1 (XXX étant le nom que vous pouvez modifier à volonté)
  • Li = 4 'on assigne la valeur de 4 à Li
  • For Each result As SearchResult In searcher.FindAll
  • ' On récupère l'entrée trouvée lors de la recherche
  • DirEntry = result.GetDirectoryEntry
  • Dim a = DirEntry.Properties("displayName").Value 'on relève le nom et prénom
  • Dim b = DirEntry.Properties("TelephoneNumber").Value 'on relève le numéro de téléphone
  • Dim c = DirEntry.Properties("physicalDeliveryOfficeName").Value 'on relève le bureau
  • Dim d = DirEntry.Properties("initials").Value 'on relève les initiales
  • If c = "XXX" Then ' Si le champ Office(bureau) contient "XXX" (XXX étant la donnée du champ Office(bureau) dans active directory. Si un utilisateur n'as pas XXX dans le champs Offie, il ne sera pas pris. Ceci est modifiable bien sûr)
  • ws.Range("A" & Li).Value = a 'Ecriture de la valeur de a dans la cellule
  • ws.Range("A" & Li, "B" & Li).MergeCells = True 'fusion entre la cellule Ax et Bx
  • ws.Range("A" & Li, "B" & Li).Borders.LineStyle = 1 'ajout d'une bordure à la cellule
  • ws.Range("C" & Li).Value = d 'Ecriture de la valeur de d dans la cellule
  • ws.Range("C" & Li, "D" & Li).MergeCells = True 'fusion entre la cellule Cx et Dx
  • ws.Range("C" & Li, "D" & Li).Borders.LineStyle = 1 'ajout d'une bordure à la cellule
  • ws.Range("E" & (Li)).Value = b 'Ecriture de la valeur de b dans la cellule
  • ws.Range("E" & (Li), "F" & (Li)).MergeCells = True 'fusion entre la cellule Ex et Fx
  • ws.Range("E" & Li, "F" & Li).Borders.LineStyle = 1 'ajout d'une bordure à la cellule
  • Li = Li + 1 'on adition 1 à la valeur existante de Li
  • End If
  • Next
  • '================================================================================================================
  • ' PARTIE MISE EN PAGE DU FICHIER EXCEL
  • '================================================================================================================
  • ws.Range("A" & Li, "B" & Li).MergeCells = True 'fusion entra la cellule Ax et Bx
  • ws.Range("C" & Li, "D" & Li).MergeCells = True 'fusion entra la cellule Cx et Dx
  • ws.Range("E" & (Li), "F" & (Li)).MergeCells = True 'fusion entra la cellule Ex et Fx
  • ws.Range("A4:F" & Li).Sort(Key1:=ws.Range("A4"), Order1:=Global.Excel.XlSortOrder.xlAscending, Header:=Global.Excel.XlYesNoGuess.xlGuess, _
  • OrderCustom:=1, MatchCase:=False, Orientation:=Global.Excel.XlSortOrientation.xlSortColumns) 'Tri des données dans ordre alphabétique en sélectionnant les 3 colonnes
  • ws.Range("A1").Font.Bold = True 'Texte en gras
  • ws.Range("A1").Font.Size = 10 'Taille du texte
  • ws.Range("A1").Value = "NOM DE L'ENTREPRISE" 'Texte affiché
  • ws.Range("A1", "G1").MergeCells = True 'fusion des cellule A1 et G1
  • ws.Range("A1", "G1").Borders.LineStyle = 12 'bordure de la cellule (12 étant un style, 1 = style de base)
  • ws.Range("A2").Value = "Tél. direct : 058 534" 'Texte affiché
  • ws.Range("A2", "G2").MergeCells = True 'fusion entre la cellule A2 et G2
  • ws.Range("A3").Value = "Nom et Prénom" 'Texte affiché
  • ws.Range("A3").Font.Bold = True 'Texte en gras
  • ws.Range("A3", "B3").MergeCells = True 'fusion entre la cellule A3 et B3
  • ws.Range("A3", "B3").Borders.LineStyle = 1 'Bordure de la cellule (style standard)
  • ws.Range("C3").Value = "Visa" 'Texte affiché
  • ws.Range("C3").Font.Bold = True 'Texte en gras
  • ws.Range("C3", "D3").MergeCells = True 'fusion entre la cellule C3 et D3
  • ws.Range("C3", "D3").Borders.LineStyle = 1 'Bordure de la cellule (style standard)
  • ws.Range("E3").Value = "Téléphone" 'Texte affiché
  • ws.Range("E3").Font.Bold = True 'Texte en gras
  • ws.Range("E3", "F3").MergeCells = True 'fusion entre la cellule E3 et F3
  • ws.Range("E3", "F3").Borders.LineStyle = 1 'Bordure de la cellule (style standard)
  • wb.SaveAs("C:\Liste_tel.xls") 'Enregistrement du fichier (A choix)
  • End Sub
  • End Module
Imports System.Reflection
Imports System.DirectoryServices

Module Module1

    Sub Main()

        '================================================================================================================
        ' LISTE TELEPHONIQUE
        '
        ' auteur: Johan Tanner
        ' Language: Visual Basic .NET
        '================================================================================================================
        Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://NOMDUSERVEUR", "USERNAME", "PASSWORD")'Connexion au serveur Active directory
        Dim searcher As DirectorySearcher = New DirectorySearcher(Ldap)
        Dim DirEntry As DirectoryEntry
        Dim excel As New Excel.Application
        Dim wb As Excel.Workbook
        Dim ws As Excel.Worksheet
        Dim Li As Long

        searcher.Filter = "(objectClass=user)"
        excel.Visible = True 'la fenêtre excel est visible 
        wb = excel.Workbooks.Add(1) 'on ouvre un classeur dans excel
        ws = wb.Worksheets(1) 'on ouvre une feuille dans le classeur excel

        wb.Sheets("Feuil1").Select() 'on séléectionne la feuille nommé "Feuil1"
        wb.Sheets("Feuil1").Name = "XXX" 'on renomme la feuil1 (XXX étant le nom que vous pouvez modifier à volonté)

        Li = 4 'on assigne la valeur de 4 à Li
        For Each result As SearchResult In searcher.FindAll

            ' On récupère l'entrée trouvée lors de la recherche
            DirEntry = result.GetDirectoryEntry
            Dim a = DirEntry.Properties("displayName").Value 'on relève le nom et prénom
            Dim b = DirEntry.Properties("TelephoneNumber").Value 'on relève le numéro de téléphone
            Dim c = DirEntry.Properties("physicalDeliveryOfficeName").Value 'on relève le bureau
            Dim d = DirEntry.Properties("initials").Value 'on relève les initiales

            If c = "XXX" Then ' Si le champ Office(bureau) contient "XXX" (XXX étant la donnée du champ Office(bureau) dans active directory. Si un utilisateur n'as pas XXX dans le champs Offie, il ne sera pas pris. Ceci est modifiable bien sûr)

                ws.Range("A" & Li).Value = a 'Ecriture de la valeur de a dans la cellule
                ws.Range("A" & Li, "B" & Li).MergeCells = True 'fusion entre la cellule Ax et Bx
                ws.Range("A" & Li, "B" & Li).Borders.LineStyle = 1 'ajout d'une bordure à la cellule

                ws.Range("C" & Li).Value = d 'Ecriture de la valeur de d dans la cellule
                ws.Range("C" & Li, "D" & Li).MergeCells = True 'fusion entre la cellule Cx et Dx
                ws.Range("C" & Li, "D" & Li).Borders.LineStyle = 1 'ajout d'une bordure à la cellule

                ws.Range("E" & (Li)).Value = b 'Ecriture de la valeur de b dans la cellule
                ws.Range("E" & (Li), "F" & (Li)).MergeCells = True 'fusion entre la cellule Ex et Fx
                ws.Range("E" & Li, "F" & Li).Borders.LineStyle = 1 'ajout d'une bordure à la cellule

                Li = Li + 1 'on adition 1 à la valeur existante de Li

            End If

        Next

        '================================================================================================================
        ' PARTIE MISE EN PAGE DU FICHIER EXCEL
        '================================================================================================================

        ws.Range("A" & Li, "B" & Li).MergeCells = True 'fusion entra la cellule Ax et Bx
        ws.Range("C" & Li, "D" & Li).MergeCells = True 'fusion entra la cellule Cx et Dx
        ws.Range("E" & (Li), "F" & (Li)).MergeCells = True 'fusion entra la cellule Ex et Fx

        ws.Range("A4:F" & Li).Sort(Key1:=ws.Range("A4"), Order1:=Global.Excel.XlSortOrder.xlAscending, Header:=Global.Excel.XlYesNoGuess.xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=Global.Excel.XlSortOrientation.xlSortColumns) 'Tri des données dans ordre alphabétique en sélectionnant les 3 colonnes

        ws.Range("A1").Font.Bold = True 'Texte en gras
        ws.Range("A1").Font.Size = 10 'Taille du texte
        ws.Range("A1").Value = "NOM DE L'ENTREPRISE" 'Texte affiché
        ws.Range("A1", "G1").MergeCells = True 'fusion des cellule A1 et G1
        ws.Range("A1", "G1").Borders.LineStyle = 12 'bordure de la cellule (12 étant un style, 1 = style de base)

        ws.Range("A2").Value = "Tél. direct : 058 534" 'Texte affiché
        ws.Range("A2", "G2").MergeCells = True 'fusion entre la cellule A2 et G2

        ws.Range("A3").Value = "Nom et Prénom" 'Texte affiché
        ws.Range("A3").Font.Bold = True 'Texte en gras
        ws.Range("A3", "B3").MergeCells = True 'fusion entre la cellule A3 et B3
        ws.Range("A3", "B3").Borders.LineStyle = 1 'Bordure de la cellule (style standard)

        ws.Range("C3").Value = "Visa" 'Texte affiché
        ws.Range("C3").Font.Bold = True 'Texte en gras
        ws.Range("C3", "D3").MergeCells = True 'fusion entre la cellule C3 et D3
        ws.Range("C3", "D3").Borders.LineStyle = 1 'Bordure de la cellule (style standard)

        ws.Range("E3").Value = "Téléphone" 'Texte affiché
        ws.Range("E3").Font.Bold = True 'Texte en gras
        ws.Range("E3", "F3").MergeCells = True 'fusion entre la cellule E3 et F3
        ws.Range("E3", "F3").Borders.LineStyle = 1 'Bordure de la cellule (style standard)

        wb.SaveAs("C:\Liste_tel.xls") 'Enregistrement du fichier (A choix)

    End Sub

End Module

 Conclusion

Mon code sera mis à jour très prochainement afin d'y ajouter quelques truc.

J'aimerais pouvoir scanner uniquement un OU et non tout l'active directory.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

26 juillet 2007 11:55:42 :
Correction de commentaire
27 juillet 2007 11:27:59 :
Ajout de mon projet dans un fichier ZIP
27 juillet 2007 11:31:36 :
Modification du code
27 juillet 2007 11:35:37 :
Modification de commentaires
27 juillet 2007 12:45:11 :
Ajout d'un commentaire de présentation du code
30 juillet 2007 14:03:20 :
Ajout du pres-requis dans la présentation de la source

 Sources du même auteur

Source avec Zip [VBA-EXCEL] MODIFICATEUR DE FICHIER EXCEL

 Sources de la même categorie

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

 Sources en rapport avec celle ci

ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
LISTER DOSSIER + SOUS DOSSIER + "PUBLICATION" TABLEAU HTML par Alexis28130
LISTE DES PROGRAMMES INSTALLES par djebbipgm
Source avec Zip INTÉGRATION MASSIVES ET ÉVOLUTIVES DE COMPTES ACTIVE DIRECTO... par snaps
Source avec Zip RÉPÉRTOIRE TÉLÉPHONIQUE MODIFIABLE À PARTIR DE L'EXECUTABLE par Antitrust

Commentaires et avis

Commentaire de thonyboy le 30/07/2007 10:20:35

Bonjour,

Voilà un travail qui m'interesse puisque je cherche a faire quelque chose en vbnet pour creer une liste téléphonique, sauf que dans mon cas je voudrais pouvoir réaliser des mises à jours.

Enfin donc voici de quoi me mettre le pied a l'étrier.

Sauf que, je suis débutant, et sans vouloir etre critique j'ai l'impression que tu as un peu mélangé tes sources. On a un fichier projet qui fait appel a des sources innexistantes (loginform1, listecontact_tempory_key etc)

Donc a cause de cela, et parceque je suis un gros nul je n'arrive pas a faire tourner le truc

Commentaire de julienlami le 30/07/2007 12:18:41

mais il est plein d'erreur

Commentaire de apache88 le 30/07/2007 13:51:47

Julienlami ==> C'est sûrement parcequ'il te faut ajouter la référence System.DirectoryServices et Microsoft Excel truc du genre.

Thonyboy ==> Bizzard je vais revoir un peu... mais si tu copies mon code et que tu créé un nouveau projet ça ne fonctionne pas?

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Retirer des composantes [ par Amonbofis ] Bonjour!Quelqu'un peux me dire comment retirer des composantes de la listede VB6?Ici je veux dire, quand on veux ajouter une composante au projet,par Problème de DBGRID [ par Steph ] Bonjour à tousDans un control DBGRID contenant une liste de nom par exempleComment faire pour que le contenu du DBGRID affiche la liste à partir d'une liste déroulante dans un datagrid [ par elfnoir ] bonjour a tous, je galere depuis plusieur jour sur un datagrid j'aimerai savoir comment on rempli la liste déroulante integré a un datagridmerci d'ava liste box [ par Wind ] J'aimerais lier une listbox avec un fichier de données (pas de basse de donnée mais genre fichier .ini ou txt).et en plus je voudrais que quand je cli Liste imprimante!!! [ par Le J ] Salut,Comment optenir la liste des imprimantes installés sur mon ordinateurs????MerciALPLe J Limiter le nombre de processus [ par Adrien ] à partir d'une liste d'adresses IP, je lance des batchs sur chacune des adresses mais le lancement en shell("batch.bat") m'ouvre les process "cmd" en liste déroulante et datagrid [ par g.hamel ] Comment activer un e liste déroulante intégrée associée à un buttondabs un controle datagridex: datagrid1.columns(2).button=truele click sur le bouton Liste des couleurs [ par $hawn ] Bonjour je voudrai savoir s'il existe une liste assez complète avec toutes les couleurs en HéxadecimalMerci beaucoup d'avance Comment enregistrer le contenu d'une liste box... [ par fatcat ] Comment enregistrer et ouvrir le contenut d'une listbox en utilisant l'ocx common dialog.Merci.


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,683 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales