Question [Résolu] Comparaison colonnes Excel

Plus d'informations
il y a 7 ans 3 mois #28288 par Atou
Je repost une demande pour mes problème d'excel afin d'être plus précis dans ma demande, je m'explique, j'ai deux fichiers, le premier qui regroupe une liste d'application avec leur nom, leur temps d'utilisation et le nombre de fois qu'ils ont été lancé pour tous mois, le second a exactement la même chose sauf que celui-ci concerne seulement le mois de janvier.

Mon but est de comparer la colonne du premier fichier ou il y a le nom des logiciel avec la colonne du second fichier ou il y a également des logicels.

Fichier 1 (mois de Janvier) : www.noelshack.com/2019-08-4-1550760126-zav1.png

Fichier 2 (Global) : www.noelshack.com/2019-08-4-1550760129-zav2.png

Ne pas s'inquiéter des version qui sont dans la colonne du nom dans le fichier 1.

Merci d'avance.

Atou45<br><br>Message édité par: Arnaud, à: 22/02/19 10:07

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

Plus d'informations
il y a 7 ans 3 mois #28292 par Hicham Madini
Réponse de Hicham Madini sur le sujet Re:Comparaison colonnes Excel
slt,

à adapter

[code:1]# fonction pour recuperer les données de la premiere colonne du fichier excel
Function Get-WorkbookData($Workbook) {
$Workbook.Activate()
$Row = 1
$Logiciel = $Workbook.ActiveSheet.Range(\&quot;A\&quot; + $Row).Text # A pour la premiere colonne
while ($Logiciel.Length) {
$obj = @{
\&quot;Logiciel\&quot; = $Logiciel;
}
New-Object –Typename PSObject –Prop $obj
$Row++
$Logiciel = $Workbook.ActiveSheet.Range(\&quot;A\&quot; + $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(\&quot;A\&quot; + $Row).Text
while ($Logiciel.Length) {
if ($LogicielToMark -contains $Logiciel) {
$Workbook.ActiveSheet.Range(\&quot;A\&quot; + $Row).Cells.Font.ColorIndex = 3
}
$Row++
$Logiciel = $Workbook.ActiveSheet.Range(\&quot;A\&quot; + $Row).Text
}
}

Add-Type -AssemblyName \&quot;Microsoft.Office.Interop.Excel\&quot; | out-null

# Ouvrir Excel
$ExcelApplication = New-Object -ComObject \&quot;Excel.Application\&quot;
$ExcelApplication.Visible = $true

# ouvrir les deux fichiers à comparer
$ExcelWorkbookOld = $ExcelApplication.Workbooks.Open(\&quot;test1.xlsx\&quot;)
$ExcelWorkbookNew = $ExcelApplication.Workbooks.Open(\&quot;test2.xlsx\&quot;)

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

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

#array pour récupérer les différences trouver
$LogicielToMark = @()
$Comparison | %{
if ($_.SideIndicator -eq \&quot;&lt;=\&quot;) {
$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 07:54

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

Plus d'informations
il y a 7 ans 3 mois #28293 par Atou
Réponse de Atou sur le sujet Re:Comparaison colonnes Excel
Salut, merci de ton aide mais j'ai juste un petit soucis, est-ce que tu pourrais commenter un peu ton code parce que je suis encore un débutant en powershell et j'aimerais comprendre ce que je fais.

Merci d'avance ;)

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

Plus d'informations
il y a 7 ans 3 mois #28294 par Atou
Réponse de Atou sur le sujet Re:Comparaison colonnes Excel
Tout compte fais ton script fonctionne presque parfaitement :laugh:
Le seul soucis c'est qu'il met en rouge toute la liste de logiciels malgré qu'ils aient exactement le même nom.

merci d'avance ;)<br><br>Message édité par: Atou45, à: 22/02/19 07:29

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

Plus d'informations
il y a 7 ans 3 mois #28295 par Hicham Madini
Réponse de Hicham Madini sur le sujet Re:Comparaison colonnes Excel
non le script compare la premiere colonne comme tu voulais.
pour les commentaires je vais faire ca.

Je suis aussi debutant et je me bagarre avec Powershell pour pouvoir resoudre un autre probléme :laugh:

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

Plus d'informations
il y a 7 ans 3 mois #28296 par Atou
Réponse de Atou sur le sujet Re:Comparaison colonnes Excel
Je confirme également que ton script compare bel et bien les deux colonnes voulue mais je ne comprends pas pourquoi il me met toute ma colonne en rouge alors que certains logiciels on exactement le même nom :unsure:

Peut être parce que la liste de logiciels du premier fichier n'est pas dans le même ordre que dans le deuxième ?

Merci d'avance :)

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

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