Bonjour,

Je n'ai pas trouvé comment faire pour dire que les colonnes sont au format numérique et pas au format texte
quand je passe la commande suivante :
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
$worksheet.Cells.NumberFormat = "0,00"
ça passe bien les cellules au format number mais elles ne sont pas mises à jour et quand j'essaie de refaire un : $Query.refresh() ça me remet les anciennes valeurs et me remet les cellules en texte
Pour mettre à jour je double clic dans une cellule Excel (où se trouve une valeur) et je fais "entrée" et la valeurs se met à jour !

Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 $CSVs = Get-ChildItem *.csv
 
 
$excel = New-Object -ComObject excel.application 
    $excel.visible = $true
    $excel.SheetsInNewWorkbook = $CSVs.Count  
    $workbook = $excel.Workbooks.Add()
 
 
    for ($i=0; $i -lt $CSVs.Count; $i++){
 
 
        $csv = Get-Item $CSVs[$i]
        $worksheet = $workbook.worksheets.Item($i + 1)
#        $worksheet.Name = $csv.basename
 
 
        $TxtConnector = ("TEXT;" + $csv.fullname)
        $Connector = $worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1"))
        $query = $worksheet.QueryTables.item($Connector.name)
        $query.HasAutoFormat = $true
        $query.TextFilePlatform = 65001
        $query.TextFileTextQualifier = 1
        $query.TextFileOtherDelimiter = $Excel.Application.International(3) 
        $query.TextFileParseType  = 1
        $arrFormats = ,2 * $worksheet.Cells.Columns.Count
        $query.TextFileColumnDataTypes = $arrFormats
        $query.AdjustColumnWidth = 1
        $query.Refresh()
        $worksheet.Cells.NumberFormat = "0,00"
        $query.Delete()
 
 
    }

La propertie $Query.HasAutoFormat ne fait pas grand chose
Avez-vous une idée ?