begin process at 2012 02 14 19:34:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

Débutants

 > 

Création d'une table des matières


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Création d'une table des matières

mercredi 14 février 2007 à 14:30:10 | Création d'une table des matières

mastere30

Bonjour à tous,

afin de m'aider moi ainsi que mes collègues de travail j'ai crée un fichier excel dans le quel je répertorie tous les documents importants dont nous avons besoin pour notre travail cotidien.

Ce fichier excel contient une macro toute simple qui me crée un fichier .htm avec différentes rubriques (type de document, branche concernée, etc...)

Les documents que j'y insère proviennent de plusieurs lecteurs réseau qui sont mappés sur nos PC.

Le problème de ce fichier est que je dois être informé de chaque remaniement des documents (renommés, nouvelle édition ou création d'un nouveau document), ce qui n'est pas une masse à faire quand je pense que sur les lecteurs réseau les plus important j'ai plus de 35'000 fichiers dont certains sont à répertorier et d'autres non.

Au vu de la quantité de documents à vérifier j'ai donc opté pour une automatisation.

Pour ce faire j'ai crée des batch qui recherchent dans chaque lecteur réseau les différents documents et me les liste dans un fichier excel annex. (premier problème est que je n'ai pas réussi à créer un batch unique pour tous les lecteurs réseau et pour chaque type de document "xls, xlt, doc, dot, pdf, etc....") (temps d'execution 20 minutes et 3 batch à lancer).

Puis j'ai un fichier excel avec une macro qui regroupe automatiquement tous les fichiers crées par le batch en un, puis récolt aussi la base de donnée de ma macro de création des .htm (regroupement des infos de plus de 20 fichiers excel) (temps d'execution 3 minutes)

Toisième étape, ce fichier qui récolte les informations de part et d'autres procède en 2 étapes. La première consiste à vérifier que les fichiers déjà référencés existent toujours, si oui il passe son chemin, si non il me saisi un "x" dans une cellule qui m'indiquera que ce fichier n'existe plus ou éventuellement qu'il a été renommé. (temps d'execution, et là ca se corce, 3 heures pour 35'000 lignes et si le PC se met en veille il me désamorce la macro. Qui plus est, si la macro tourne il me scouate 100% de ressources CPU)

Quatrième étape, le même fichier que le précédent vérifie les nom de fichiers qui n'éxistent pas encore dans ma base de donnée, dans quel cas il les y insère, sinon il passe à la ligne suivante (temps d'execution, là encore pire, plus de 4 heures pour 35'000 lignes et il me scouate 100% de ressources CPU)

Pour finire dernière étape, la macro qui me crée les fichiers .htm. Là pas de souci, temps d'execution (2 minutes).


Tout cela est trop lourd et trop long. J'aimerais une solution plus légère, plus rapide et plus fiable avec les outils autorisés par l'entreprise (Word, excel, Notepad et éventuellement batch). Je n'ai pas pas de VB, acces ou même de serveur dédié, vu que l'application n'est pas officielle dans la boîte, je dois faire avec les moyens du bord....

Quelqu'un aurait-il une idée pour m'éviter un PC bloqué pendant plus de 14h Je peux éventuellement fournir les différents fichiers et batch si quelqu'un veut mieux comprendre le fonctionnement...

Merci pour votre aide...

MasterE30

mailto:mastere30@gmail.com
mercredi 14 février 2007 à 16:59:44 | Re : Création d'une table des matières

JMO

Membre Club


 Bonjour à tous


Bonjour mastere30,

Pourriez-vous préciser tous les types d'extension recherchés afin que je puisse
 testé sur x servers en vbs, avec wmi ???

Faut-il parcourir tous les folders/files d'un server ???

Pour ce faire j'ai crée des batchs => ils sont en quel language ??? (Je n'ai pas pas de VB)

jean-marc
jeudi 15 février 2007 à 01:17:30 | Re : Création d'une table des matières

mastere30

Hello Jean-Marc,

les extensions que je recherche sont .xls/.xlt/.doc/.dot/.pdf/.pps/.ppt/.htm et .txt

Mes batch sont simplement des commandes dos automatisées.

VBS, ca pourrait être une bonne idée.

Merci pour votre aide...

MasterE30

mailto:mastere30@gmail.com

jeudi 15 février 2007 à 18:29:22 | Re : Création d'une table des matières

JMO

Membre Club



 Bonjour,



Ci-dessous, en vbs, un script qui pourrait correspondre à vos attentes.
J'ai testé en local (xp).
J'attends vos remarques pour avancer sur servers + présentation Excel.
Comme d'hab, ce n'est pas trop commenté, mais les variables sont explicites,
et, il n'y a rien de bien compliqué. 
Le fichier résultat (verif_NomServer.txt) est créé dans le répertoire du script.

jean-marc
________________________________________________________

Option Explicit
Const ForWriting = 2
Const HARD_DISK = 3

Dim WshNetwork, objWMIService, colDisks, colFiles, ObjTextStream
Dim strComputer, fso, Select_Ext, objDisk, objFile
Dim curtime, Resultat, i, FicOut
curtime=Now
strComputer = "."

Set WshNetwork = WScript.CreateObject("WScript.Network")
FicOut = GetPath() & "verif_" & WshNetwork.ComputerName & ".txt"
'MsgBox FicOut
Set WshNetwork = Nothing

Select_Ext = Array("xls","xlt","doc","dot","pdf","pps","ppt","htm","txt")

Set objWMIService = GetObject("winmgmts:" _
                    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colDisks = objWMIService.ExecQuery _
        ("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")
       
         For Each objDisk in colDisks
             For i=LBound(Select_Ext) To UBound(Select_Ext)
                 Set colFiles = objWMIService.ExecQuery _
                            ("Select * from CIM_DataFile where Drive = '" &_
                             objDisk.Name & "' And Extension = '" & Select_Ext(i) &"'")
                 For Each objFile in colFiles
                     Resultat = Resultat &vbCrLf&_
                                objFile.Name &vbTab&vbTab& clair(objFile.LastModified)
                 Next
             Next
         Next
'MsgBox "fin read disks"
Set colFiles =  Nothing
Set colDisks =  Nothing
Set objWMIService = Nothing

'Création du fichier txt résultat
Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjTextStream = Fso.OpenTextFile(FicOut, ForWriting, True)
ObjTextStream.Write "début script: " & curtime &vbCrLf&_
                    "fin   script: " & Now &vbCrLf& Resultat
ObjTextStream.Close
Set ObjTextStream = Nothing
Set fso = Nothing

'Affichage du fichier résultat
Dim WshShell, intReturn
Set WshShell = WScript.CreateObject("WScript.Shell")
intReturn = WshShell.Run("notepad " & FicOut, 1, False)
Set WshShell = Nothing
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function clair(temps)
Dim debut, an, mois, jour, h, m
debut = left(temps,8)
an = left(debut,4)
mois = mid(debut,5,2)
jour = right(debut,2)
h = Mid(temps, 9,2)
m = Mid(temps, 11,2)
clair = CStr(jour) & "/" & CStr(mois) & "/" & CStr(an) & " " & h & ":" & m
End Function

'Récupère le répertoire courant
Function GetPath()
Dim path
'WScript.ScriptfullName ramène par exemple C:\MesAppli\LeScript.vbs
path = WScript.ScriptFullName
'On ne garde que ce qui est à gauche du dernier slash (compris), exemple C:\MesScripts\
GetPath = Left(path, InStrRev(path, "\"))
End Function

lundi 19 février 2007 à 12:27:54 | Re : Création d'une table des matières

JMO

Membre Club


 Bonjour à tous,


Bonjour mastere30,

J'ai profité du week-end pour remplacer le .txt, du précédent post,  par un .xls pré-trié.
voir la source
http://www.vbfrance.com/codes/INVENTAIRE-FICHIERS-SUR-SERVER-DISTANT-OU-LOCAL_41522.aspx


jean-marc


Cette discussion est classée dans : fichier, macro, excel, fichiers, batch


Répondre à ce message

Sujets en rapport avec ce message

macro sur un dossier de fichier excel [ par funkay91 ] je souhaite appliquer ma macro sur l'ensemble des fichiers .xls de mon dossier C'est dire j'ai un fichier exel dans lequel j'aurai ma macro qui une fo macro commune à tous les fichiers [ par lili9578 ] Bonjour,je souhaite réaliser une macro qui pourrait être appelée par n'importe quel fichier Excel. Je m'explique : lorsque je créer un nouveau fichier executer une macro d'impression sur tous les fichiers excel creés dans un repertoire [ par vbanovice ] bonjour,je suis nouveau sur le forum.... et je debute avec vb excel2003mon probleme est le suivant:j'ai creer un fichier excel type avec une feuille " [Déplacé .Net --> VBA] Comment créer un macro utilisable pour tous les fichiers excel de mon ordi? [ par DeKroch42 ] Bonjour, J'ai réussi à créer une petite macro (non sans peine!!) pour mon travail, et j'aurais souhaité pouvoir l'utiliser pour n'importe quel fichie [Catégorie modifiée VB6 --> VBA] comparaison de deux fichiers excel via une macro VBA [ par imados2002 ] Bonjour, Je suis débutant en Macro Excel et ca fais 2jours que je rame sur un problème certainement simplissime...!!!!! Voilà j'ai deux tableaux dans comparaison de deux fichiers excel via une macro VBA [ par imados2002 ] Bonjour, Je suis débutante en Macro Excel et ca fais 2jours que je rame sur un problème certainement simplissime...!!!!! Voilà j'ai deux tableaux dan Bug macro aléatoire sur réseau d'entreprise (Projet ou bibliothéques introuvables) [ par garfield26 ] Bonjour, J'ai un problème assez complexe et cela fait plusieurs jours que l'admin réseau de ma boite et moi même en cherchons la cause. Si certains Macro Excel pr concatener plusieurs fichiers [ par SERIEUXETCOOL ] Bonjour tout le monde, C'est mon premier post ici alors je ne sais pas trop si je suis au bon endroit. D'avance je m'excuse. Je viens vous demander ouverture de fichiers [ par samy ] Bonjour a tous,Je travaille sous Visual Basic de Excel 97.J'aimerai savoir comment ouvrir un fichier excel qui contient une macromais sans exécuter ce VB6 et des fichiers Excel 97 [ par Sandro ] Bonjour,Je cherche à ouvrir un fichier Excel 97 avec VB6, pour extraire le contenu de feuilles et de cellules, pour générer un fichier texte avec.Ext-


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 : 1,295 sec (4)

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