Question [Résolu] Comparaison colonnes Excel

Plus d'informations
il y a 7 ans 3 mois #28304 par Hicham Madini
Réponse de Hicham Madini sur le sujet Re:Comparaison colonnes Excel
Ah non mais je l'ai réglé :D

[code:1]# fonction pour recuperer les données de la premiere colonne du fichier excel
Function Get-WorkbookData($Workbook, $Row) {
$Workbook.Activate()
$Logiciel = $Workbook.ActiveSheet.Range(\"A\" + $Row).Text # A pour la premiere colonne
while ($Logiciel.Length) {
$obj = @{
\"Logiciel\" = $Logiciel;
}
New-Object –Typename PSObject –Prop $obj
$Row++
$Logiciel = $Workbook.ActiveSheet.Range(\"A\" + $Row).Text -replace '(^\s+|\s+$)','' -replace '\s+',' '

}
}

# fonction pour colorer les données récupérer dans $LogicielsToMark
Function Mark-Logiciel($Workbook, $LogicielsToMark) {
$Workbook.Activate()

$Row = 1
$Logiciel = $Workbook.ActiveSheet.Range(\"A\" + $Row).Text
while ($Logiciel.Length) {
if ($LogicielToMark -contains $Logiciel) {
$Workbook.ActiveSheet.Range(\"A\" + $Row).Cells.Font.ColorIndex = 3
}
$Row++
$Logiciel = $Workbook.ActiveSheet.Range(\"A\" + $Row).Text
}
}

Add-Type -AssemblyName \"Microsoft.Office.Interop.Excel\" | out-null

# Ouvrir Excel
$ExcelApplication = New-Object -ComObject \"Excel.Application\"
$ExcelApplication.Visible = $true

# ouvrir les deux fichiers à comparer
$ExcelWorkbookOld = $ExcelApplication.Workbooks.Open(\"DESTINATION2.xlsx\"«»)
$ExcelWorkbookNew = $ExcelApplication.Workbooks.Open(\"SOURCE3.xlsx\"«»)

# recupérer les données des colonnes à comparer
$OldData = Get-WorkbookData -Workbook $ExcelWorkbookOld 2
$NewData = Get-WorkbookData -Workbook $ExcelWorkbookNew 1

# comparer les données récuperer
$Comparison = Compare-Object -ReferenceObject $NewData -DifferenceObject $OldData -Property \"Logiciel\" -IncludeEqual:$false

#array pour récupérer les différences trouver
$LogicielToMark = @()
$Comparison | %{
if ($_.SideIndicator -eq \"<=\"«») {
$LogicielToMark += $_.Logiciel
}
}

# colorer en rouge les différences récupérer dans $LogicielToMark
Mark-Logiciel -Workbook $ExcelWorkbookNew -LogicielToMark $LogicielToMark

#$ExcelApplication.Quit()[/code:1]<br><br>Message édité par: hichammadd, à: 22/02/19 11:02

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

Plus d'informations
il y a 7 ans 3 mois #28305 par Atou
Réponse de Atou sur le sujet Re:Comparaison colonnes Excel
Ah ouais la merci t'es vraiment le boss :laugh:

J'aurais surement d'autres soucis, je te répondrais une nouvelle fois si je bloque mais je pense que le plus gros du travail est finit.

Vraiment merci beaucoup ;)

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

Plus d'informations
il y a 7 ans 3 mois #28308 par Atou
Réponse de Atou sur le sujet Re:Comparaison colonnes Excel
Bon on arrête plus avec les blocages ... :angry:
On me demande maintenant d'ajouter le contenu du fichier SOURCE (mois de janvier 2019) avec exactement la même présentation que pour les autres mois qui sont dans le fichier DESTINATION ... Je pensais remplacer la fonction qui colore le texte par une fonction qui permet de faire un copier-coller. Sachant qu'il faut que j'ajoute également les logiciels manquant.

Autant te dire que c'est un peu mission impossible pour moi.
Je compte un peu sur ton talent en powershell pour me venir en aide.

Merci d'avance ;)

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

Plus d'informations
il y a 7 ans 3 mois #28309 par Atou
Réponse de Atou sur le sujet Re:Comparaison colonnes Excel
J'ai déjà un script qui permet de faire du copier-coller mais il est un peu bancale ...

[code:1]
$range1=\&quot;B2:B82\&quot;
$range2=\&quot;V3:V83\&quot;
$file1 = 'E:\2K19\Scriptexcel\SOURCE.xlsx'
$file2 = 'E:\2K19\Scriptexcel\DESTINATION.xlsx'
$xl = new-object -c excel.application
$xl.displayAlerts = $false
$wb1 = $xl.workbooks.open($file1, $null, $true)
$wb2 = $xl.workbooks.open($file2)
$ws1 = $wb1.WorkSheets.item(1)
$ws1.activate()
$range = $ws1.Range($range1).Copy()

$ws2 = $wb2.Worksheets.item(1)
$ws2.activate()
$x=$ws2.Range($range2).Select()

$ws2.Paste()
$wb2.Save()
[/code:1]

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

Plus d'informations
il y a 7 ans 3 mois #28310 par Hicham Madini
Réponse de Hicham Madini sur le sujet Re:Comparaison colonnes Excel
Ah oui c'est un trés bon exercice pour moi, je vais essayé mais ce soir ok?

il faut savoir que j'ai commencé à apprendre Powershell, il y a ca. 5 semaines, mais j'ai un but!!

Mon but c'est de devenir un initié chez powershell-scripting :D

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

Plus d'informations
il y a 7 ans 3 mois #28313 par Hicham Madini
Réponse de Hicham Madini sur le sujet Re:Comparaison colonnes Excel
T‘as un fichier peut etre afin de verifier?

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

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