Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1701 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Traitement de log sous excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Traitement de log sous excel

n°649862
thalis
Posté le 20-02-2004 à 14:51:57  profilanswer
 

Bon j'vous explique mon pbm (vu qu'apparemment ici c plein de gens sympas :D)
 
Je recupere les logs d'impression de mon 2k serveur.
le pbm quand je les importe dans excel, c'est que la colonne detail me donne un truc comme ça :
 
Le document 1, Microsoft Word - superdocumentvachementimportant.doc possédé par userquiaoséimprimer a été imprimé sur hp LaserJet 1300n via le port hpLaserJet1300n_copy_1. Taille en octets : 59744 ; pages imprimées : 3  
 
le tout dans une seule cellule (la dernière)
sauf que forcement pour compter le nb de pages pour chaque user je suis obligée de retaper à la main le nb de page ds la dernière colonne. c pas que je suis faignasse, mais à environ 200 impressions par jour et un compte rendu bi mensuel ça me gonfle un peu :o
 
donc je voudrais uen macro ou un petit truc en vba qui me prenne le chiffre marqué derrière "pages imprimées :" et me le recopie dans la colonne suivante (comme je faisais à la main sauf que g plus besoin de le faire)
 
y'a qq'un qui peut m'expliquer comment on lui dit ça au biniou svp ? (en langage treeees simple que je puisse reutiliser mais faut que je comprenne et c pas gagner, les admins reseau en prog c tjrs des grosses quiches :o )

mood
Publicité
Posté le 20-02-2004 à 14:51:57  profilanswer
 

n°649870
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 20-02-2004 à 14:55:56  profilanswer
 

Franchement, si c'est pour faire du VBA, retourne sur Discus, hein... :sarcastic:
 
 
 
[:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°649872
thalis
Posté le 20-02-2004 à 14:56:41  profilanswer
 

tu crois que sur discu y'aura qq'un pr m'expliquer comment on fait ?

n°649880
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 20-02-2004 à 15:00:22  profilanswer
 

Boaf :D Attends drasche ou mareek, c'est eux les fondus de VB, perso j'y panne rien :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°649900
drasche
Posté le 20-02-2004 à 15:08:54  profilanswer
 

deux possibilités: tu mets une formule dans la seconde colonne pour extraire x caractères (le plus simple), mais j'imagine que le nombre de pages peut tenir sur 2 chiffres?  d'après ce que tu dis, extraire les deux derniers caractères et les convertir en nombre, ça devrait le faire avec une simple formule. Euh Right(A1, 2) par exemple.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°649903
walli
Posté le 20-02-2004 à 15:09:44  profilanswer
 

drasche a écrit :

deux possibilités: tu mets une formule dans la seconde colonne pour extraire x caractères (le plus simple), mais j'imagine que le nombre de pages peut tenir sur 2 chiffres?  d'après ce que tu dis, extraire les deux derniers caractères et les convertir en nombre, ça devrait le faire avec une simple formule. Euh Right(A1, 2) par exemple.


bah c'est ce a quoi je pensais, mais si jamais y a 100 pages [:dawa]
bon d'accord, c'est peu probable..

n°649919
drasche
Posté le 20-02-2004 à 15:16:59  profilanswer
 

=VALUE(RIGHT(A1;2)) en fait
 
si ya plus tu recopies la formule, ça sera plus rapide qu'une macro à mon avis.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°649929
Carbon_14
Posté le 20-02-2004 à 15:21:02  profilanswer
 

Si le champ "pages imprimées : xxxx" est tout au bout de la ligne, en cherchant à reculons le dernier ":" ou le dernier espace, il restera le nombre. Recherches de caractères un peu "lourdes".
J'avais écrit un prog DOS y a longtemps qui coupait les fichiers en colonnes mais valable que si champs de longueur fixe...
 
En QBasic, on peut écrire un truc qui lit ligne par ligne et crache que les nombres après "pages imprimées : " mais faut faire le lien avec le reste des données...
Si y en a qu'un par ligne, en remplaçant les ";" par chr$(9) (tabulation horizontale) Excel serait pas plus heureux ? Devrait faire deux colonnes ? En CSV, ça devrait être le séparateur colonne, normalement, donc "direct" (en théorie).

n°649937
thalis
Posté le 20-02-2004 à 15:27:19  profilanswer
 

drasche a écrit :

deux possibilités: tu mets une formule dans la seconde colonne pour extraire x caractères (le plus simple), mais j'imagine que le nombre de pages peut tenir sur 2 chiffres?  d'après ce que tu dis, extraire les deux derniers caractères et les convertir en nombre, ça devrait le faire avec une simple formule. Euh Right(A1, 2) par exemple.


 
2 chiffres, voir 3...
 
non ça marche pas, à cause des ": " avant


Message édité par thalis le 20-02-2004 à 15:28:55
n°649941
thalis
Posté le 20-02-2004 à 15:28:35  profilanswer
 

carbon_14 a écrit :

En QBasic, on peut écrire un truc qui lit ligne par ligne et crache que les nombres après "pages imprimées : " mais faut faire le lien avec le reste des données...
Si y en a qu'un par ligne, en remplaçant les ";" par chr$(9) (tabulation horizontale) Excel serait pas plus heureux ? Devrait faire deux colonnes ? En CSV, ça devrait être le séparateur colonne, normalement, donc "direct" (en théorie).


 
euh... g rien compris au binz. là c le dernier ":" je pense à chercher.

mood
Publicité
Posté le 20-02-2004 à 15:28:35  profilanswer
 

n°649952
drasche
Posté le 20-02-2004 à 15:35:16  profilanswer
 

Thalis a écrit :

2 chiffres, voir 3...
 
non ça marche pas, à cause des ": " avant


mmmh dans ce cas, le plus sûr est la macro, style tu pars du dernier caractère, tu continues à lire le précédent. Quand c'est autre chose, tu t'arrêtes, tu gardes les numéros pour en faire un nombre, que tu renvoies à l'appelant. Et tu utilises direct le nom de la fonction VBA dans la page. Ca doit le faire.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°649956
drasche
Posté le 20-02-2004 à 15:36:28  profilanswer
 

ouais en fait non, on peut chercher l'occurence de "pages imprimées  :" et lire ce qu'il y a après sans se tromper alors.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°649964
thalis
Posté le 20-02-2004 à 15:42:35  profilanswer
 

drasche a écrit :

ouais en fait non, on peut chercher l'occurence de "pages imprimées  :" et lire ce qu'il y a après sans se tromper alors.


 
bon pas de pbm :D et je lui dit ça comment ?

n°649968
drasche
Posté le 20-02-2004 à 15:46:15  profilanswer
 

tu crées une macro en VBA qui va rechercher "imprimées : ", sachant que la suite est le nombre de pages, ça doit donner ceci:
 

Code :
  1. Public Function FindNbPages(strCell As String) As Long
  2.     Const NBRPAGES As String = "imprimées : "
  3.     Dim lPosition As Long
  4.     ' Recherche de l'occurence
  5.     lPosition = InStr(1, strCell, NBRPAGES)
  6.     ' Doit être > 0 (sinon on s'en fout, pas pertinent)
  7.     If lPosition > 0 Then
  8.         ' Rechercher le début du nombre
  9.         lPosition = lPosition + Len(NBRPAGES)
  10.         ' Renvoi du nombre
  11.         FindNbPages = CLng(Mid$(strCell, lPosition))
  12.     Else
  13.         ' Résultat non pertinent, aucun résultat
  14.         FindNbPages = 0
  15.     End If
  16. End Function


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°649991
thalis
Posté le 20-02-2004 à 16:10:32  profilanswer
 

ah oki merci. dernière question, je la fous où la macro vba ? :D (ds les macro oui je sais, mais je la fais s'executer à chaque ligne c ça ?)

n°649994
drasche
Posté le 20-02-2004 à 16:13:19  profilanswer
 

oui, tu l'utilises comme n'importe quelle macro standard Excel.
 

Code :
  1. =FindNbPages(A1)


 
par exemple


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°650006
thalis
Posté le 20-02-2004 à 16:25:38  profilanswer
 

oki merci bcp de ton aide (celle de ceux qui ont repondu aussi hein :o ) :D

n°650025
tegu
Posté le 20-02-2004 à 16:46:14  profilanswer
 

Pour la solution avec la colonne supplémentaire extrayant le nombre de pages, voici la formule Excel à utiliser :
 
=CNUM(DROITE(LC(-1);NBCAR(LC(-1))-CHERCHE("pages imprimées :";LC(-1))-NBCAR("pages imprimées :" )))
 
 
 
a+

n°650205
Carbon_14
Posté le 20-02-2004 à 19:54:52  profilanswer
 

Sinon, je sais pas si renommé (une copie) en .CSV ne permettrait pas de lire deux colonnes.
 
fichier CSV (comma separated values) :  
a;b;c
a est ds première colonne, b dans la seconde, c ds la troisième
Vu qu'il y a un point-virgule et un seul juste avant le bon endroit, à voir. Ca simplifierait la macro, juste "pages imprimées :" à enlever.

n°650207
thalis
Posté le 20-02-2004 à 20:05:49  profilanswer
 

vi le pbm c que le log d'origine est déjà un csv, avec tab en separation


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Traitement de log sous excel

 

Sujets relatifs
Koment afficher un fichier excel dans le navigateurComment recuperer le nom d'un objet (image) selectionne en vba Excel ?
[Java/Servlet] Balcer une page d'attente avt le début d'un traitement[ VB EXCEL] Comment recup un evenement ?
[VBA Excel] Comment incorporer une frame html dans un UserForm ?Pb VBA/Excel
Excel et VB6[VB Excel] Comment inhiber les boutons "fermer","reduire"...
Traitement d'image (contrôle image) sous VBA Excelexcel - traitement d'un champ
Plus de sujets relatifs à : Traitement de log sous excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR