Question Excel - Lecture et Comparaison

Plus d'informations
il y a 10 ans 10 mois #19614 par Ivo
Réponse de Ivo sur le sujet Re:Excel - Lecture et Comparaison
En fait, je vais faire le travail sur mon poste. Une évolution sera à prévoir dans le futur lorsque j'aurais les accords..


Sinon, pour le moment, le script sera lancé manuellement et fera une vérification par rapport à la date du jour d’exécution.

Après, il tournera via une tâche planifié tous les jours.

Pour ce qui est des délais. Il faut une comparaison par rapport à la date lu du fichier XL et la date du jour => faire le delta et si la valeur est égale à 30 jours, envoyer un mail. Si la valeur est égale à 7 jours, envoyer un mail.

Je ne sais pas si je suis assez explicite dans ma description.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19615 par Laurent Dardenne
Ivory écrit:

Après, il tournera via une tâche planifié tous les jours.

Je crains qu'il y ait qq soucis dans ce contexte, et dépend, si je me souviens, du compte utilisé par la tâche. Office est conçu pour un usage 'interactif', c'est à dire dans une session utilisateur.

Ivory écrit:

Je ne sais pas si je suis assez explicite dans ma description.

Si, mais il faut expliciter les règles.
Par exemple comment fais-tu pour ne pas traiter + fois la même ligne (même commande) ?

Par exemple ici :
Ivory écrit:

si la valeur est égale à 30 jours

Tu supposes que ton traitement sera tjr activé, s'il existe un décalage d'un jour ou plus (PRA), le test sur l'égalité ne fonctionnera pas.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19617 par Ivo
Réponse de Ivo sur le sujet Re:Excel - Lecture et Comparaison
Merci pour tes réponses Laurent.

Pour faire plus simple.

Est-il possible de modifier le fichier XL en csv et analyser le csv.
Faire un Copy-item pour le copier et ensuite un Rename-Item afin de le transformer en .csv


Exécution : Lire chaque ligne de la Colonne 3 (Date) et la comparer.
Peut-on calculer ce delta entre la date d'une cellule et la date du jour ? Et la retourner dans une variable ?


Le but premier de ce script est vraiment l'analyse de la date d'une cellule par rapport à la date du jour afin de mettre en place des rapports.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19618 par Laurent Dardenne
Ivory écrit:

Est-il possible de modifier le fichier XL en csv et analyser le csv.

Voir ce post .
Il existe une approche via l'objet COM est la méthode SaveAs, cf. forum contribution.
Ivory écrit:

Peut-on calculer ce delta entre la date d'une cellule et la date du jour ? Et la retourner dans une variable ?

Une ébauche :
[code:1]
$DateCourante=Get-Date
#todo : Boucle
$DateValidation=$ObjetCourant.Date_de_validation -As [DateTime]
$DateDiff=($DateValidation - $DateCourante).Days
$StrDebug=\"$($DateValidation.ToShortDateString()) $DateDiff\"
Switch ($DateDiff)
{
{$_ -eq -61} {Write-Host \"A 2 mois avant Expiration : $StrDebug\";break}
{$_ -eq -31} {Write-Host \"A 1 mois avant expiration : $StrDebug\";break}
{$_ -eq -14} {Write-Host \"A 2 semaines avant expiration : $StrDebug\";break}
default {Write-Host \"Autres cas : $StrDebug\"}
}
}
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19621 par Ivo
Réponse de Ivo sur le sujet Re:Excel - Lecture et Comparaison
Bonjour,

merci pour l'ébauche concernant le traitement du delta.

Je suis tombé sur l'un de tes sujets concernant la conversion d'un fichier xls en csv.
www.powershell-scripting.com/index.php?o...id=2630&catid=14

La tranformation en csv, me permettra d'utiliser le split[] pour récupérer la \"date\" de ma colonne via le séparateur \",\".

Cependant, le fichier csv se créer bien mais est vide. J'ai deux erreurs... Peut-être est-ce dû à la version V3.0 de PS sur ma machine. Je travail sur du office 2003.

[code:1]Type [Microsoft.Office.Interop.Excel.xlFileFormat] introuvable : assurez-vous
que l’assembly contenant ce type est chargé.
Au caractère Ligne:42 : 2
+ $FileFormat=[Microsoft.Office.Interop.Excel.xlFileFormat]::«»xlCsv
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (Microsoft.Offic...el.xlFileF
ormat:TypeName) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound

Exception lors de l'appel de «SaveAs» avec «2» argument(s): «La méthode SaveAs
de la classe Workbook a échoué.»
Au caractère Ligne:56 : 3
+ $Classeur.SaveAs($NomFichierTmp,$FileFormat)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:«») [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 10 mois #19623 par Laurent Dardenne
Vérifie si l'assembly interop est bien chargé :
[code:1]
function Get-CurrentDomain{[AppDomain]::CurrentDomain}
function Get-Assemblies{(Get-CurrentDomain).GetAssemblies()}

$Excel = new-object -com Excel.Application
Get-Assemblies|select location|split-path -leaf
[/code:1]
Pour l'appel de la méthode SaveAs vérifie le nombre de paramètre correspond.Mais il se peut que la première erreur déclenche la seconde.
je ne pense pas que la v3 soit en cause, je viens tester cet extrait code sur la v4 sous Seven x64.

Une fois le CSV construit, utilise import-csv, car rien n'empêche d'avoir un caractère ',' dans une cellule de type string.
Ceinture,bretelle...

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.059 secondes
Propulsé par Kunena