Question Impression puis deplacement de fichier Excel

Plus d'informations
il y a 4 ans 11 mois #28775 par Ome
Bonjour,

Alors mon code fonctionne a savoir qu'il imprime automatiquement un fichier excel mais il me manque des fonctionnalités :

Je souhaiterais déplacer un fichier Excel dans un autre répertoire mais j’obtiens une erreur :

Move-Item : Le processus ne peut pas accéder au fichier, car il est utilisé par un autre processus.


En effet j'ouvre le fichier avant pour l'imprimer.

J'aimerais également que le powershell ouvre le premier fichier Excel disponible et non pas un fichier nommé

$path = \"C:\Powershell\test\test.xlsx\"

car les fichiers change de nom à chaque fois.

Voici mon code

[code:1]$path = \"C:\Powershell\test\test.xlsx\"

$objExcel = new-object -comobject excel.application
$objExcel.Visible = $False

$objWorkbook = $objExcel.WorkBooks.Open($path)
$objWorksheet = $objWorkbook.Worksheets.Item(1)

$objexcel.ActivePrinter = \"\\SVPIMPNEC1\INEUNI00\"

$objWorksheet.PrintOut(1,1,2)

$objexcel.Quit()
$objExcelattachment.Dispose()
Move-Item -Path $path -Destination \"C:\Powershell\test\archive\"[/code:1]

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

Plus d'informations
il y a 4 ans 11 mois #28782 par Ome
Ome écrit:

Bonjour,

Alors mon code fonctionne a savoir qu'il imprime automatiquement un fichier excel mais il me manque des fonctionnalités :

Je souhaiterais déplacer un fichier Excel dans un autre répertoire mais j’obtiens une erreur :

Move-Item : Le processus ne peut pas accéder au fichier, car il est utilisé par un autre processus.


En effet j'ouvre le fichier avant pour l'imprimer.

J'aimerais également que le powershell ouvre le premier fichier Excel disponible et non pas un fichier nommé

$path = \"C:\Powershell\test\test.xlsx\"

car les fichiers change de nom à chaque fois.

Voici mon code

[code:1]$path = \"C:\Powershell\test\test.xlsx\"

$objExcel = new-object -comobject excel.application
$objExcel.Visible = $False

$objWorkbook = $objExcel.WorkBooks.Open($path)
$objWorksheet = $objWorkbook.Worksheets.Item(1)

$objexcel.ActivePrinter = \"\\SVPIMPNEC1\INEUNI00\"

$objWorksheet.PrintOut(1,1,2)

$objexcel.Quit()
$objExcelattachment.Dispose()
Move-Item -Path $path -Destination \"C:\Powershell\test\archive\"[/code:1]


Bon j'ai avancé mon seul problème qu'il me reste est celui la :

J'aimerais également que le powershell ouvre le premier fichier Excel disponible et non pas un fichier nommé

$path = \"C:\Powershell\test\test.xlsx\"

car les fichiers change de nom à chaque fois.

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

Plus d'informations
il y a 4 ans 11 mois #28783 par Sinjk
Salut,

Si je comprend bien ton problème, l'exemple suivant:

[code:1]
$path = gci C:\Powershell\test -Filter *.xlsx | select -First 1


$objExcel = new-object -comobject excel.application
$objExcel.Visible = $false

$objWorkbook = $objExcel.WorkBooks.Open($path.FullName)
$objexcel.ActivePrinter = \"\\SVPIMPNEC1\INEUNI00\"

$objWorksheet.PrintOut(1,1,2)

$objexcel.Quit()

$objExcelattachment.Dispose()

Move-Item -Path $path -Destination \"C:\Powershell\test\archive\"
[/code:1]

Va te permettre de selectionner le premier xlsx qui se trouve dans ton dossier et le traiter.

Qu'entends tu par

J'aimerais également que le powershell ouvre le premier fichier Excel disponible

?

Bon courage

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

Plus d'informations
il y a 4 ans 11 mois #28784 par Ome
Ome écrit:

Ome écrit:

Bonjour,

Alors mon code fonctionne a savoir qu'il imprime automatiquement un fichier excel mais il me manque des fonctionnalités :

Je souhaiterais déplacer un fichier Excel dans un autre répertoire mais j’obtiens une erreur :

Move-Item : Le processus ne peut pas accéder au fichier, car il est utilisé par un autre processus.


En effet j'ouvre le fichier avant pour l'imprimer.

J'aimerais également que le powershell ouvre le premier fichier Excel disponible et non pas un fichier nommé

$path = \"C:\Powershell\test\test.xlsx\"

car les fichiers change de nom à chaque fois.

Voici mon code

[code:1]$path = \"C:\Powershell\test\test.xlsx\"

$objExcel = new-object -comobject excel.application
$objExcel.Visible = $False

$objWorkbook = $objExcel.WorkBooks.Open($path)
$objWorksheet = $objWorkbook.Worksheets.Item(1)

$objexcel.ActivePrinter = \"\\SVPIMPNEC1\INEUNI00\"

$objWorksheet.PrintOut(1,1,2)

$objexcel.Quit()
$objExcelattachment.Dispose()
Move-Item -Path $path -Destination \"C:\Powershell\test\archive\"[/code:1]


Bon j'ai avancé mon seul problème qu'il me reste est celui la :

J'aimerais également que le powershell ouvre le premier fichier Excel disponible et non pas un fichier nommé

$path = \"C:\Powershell\test\test.xlsx\"

car les fichiers change de nom à chaque fois.

Bon j'ai trouvé il fallait juste utiliser la commande dir. Par contre c'est possible de faire ça sans excel d'installer ?

Et il me reste une erreur :

Exception lors de la définition de «ActivePrinter»: «Exception de HRESULT :
0x800A03EC»
Au caractère C:\Powershell\Nouveau document texte.ps1:10 : 1
+ $objexcel.ActivePrinter = \"\\SVPIMPNEC1\INEUNI00\"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], SetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenSetting

Voici mon nouveau code :
[code:1]
$dir = dir C:\Powershell\test\*.xlsx

$objExcel = new-object -comobject excel.application
$objExcel.Visible = $False

$objWorkbook = $objExcel.WorkBooks.Open($dir)
$objWorksheet = $objWorkbook.Worksheets.Item(1)

$objexcel.ActivePrinter = \"\\SVPIMPNEC1\INEUNI00\"

$objWorksheet.PrintOut(1,1,2)

$objexcel.Quit()
Stop-Process -name excel
Move-Item -Path $dir -Destination C:\Powershell\test\archive\ [/code:1]

Message édité par: Ome, à: 18/04/19 10:33

Message édité par: Ome, à: 18/04/19 10:37<br><br>Message édité par: Ome, à: 18/04/19 13:30

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

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