Question
Gestion date Excel avec Powershell
- Atou
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 7 ans 6 jours #28474
par Atou
Gestion date Excel avec Powershell a été créé par Atou
Bonjour,
J'ai une question simple et j'espère que la réponse sera aussi simple
En fait je voudrais simplement faire une boucle if en Powershell qui lorsque le temps en supérieur à 100h, me colorie un certaine case en vert et si le temps est inférieur à 10h, il me la colorie en rouge.
Je ne pense pas avoir de problème pour faire cette boucle, mon seul problème est au niveau de la syntaxe du temps, en effet sur Excel le temps est noté comme ceci : 00:00:00 et je ne pense pas que Powershell soit capable de géré une syntaxe pareil.
PS : Je suis obligé de le faire en Powershell.
Merci d'avance
J'ai une question simple et j'espère que la réponse sera aussi simple
En fait je voudrais simplement faire une boucle if en Powershell qui lorsque le temps en supérieur à 100h, me colorie un certaine case en vert et si le temps est inférieur à 10h, il me la colorie en rouge.
Je ne pense pas avoir de problème pour faire cette boucle, mon seul problème est au niveau de la syntaxe du temps, en effet sur Excel le temps est noté comme ceci : 00:00:00 et je ne pense pas que Powershell soit capable de géré une syntaxe pareil.
PS : Je suis obligé de le faire en Powershell.
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Hicham Madini
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 98
- Remerciements reçus 0
il y a 7 ans 6 jours #28475
par Hicham Madini
Réponse de Hicham Madini sur le sujet Re:Gestion date Excel avec Powershell
Slt,
oui c'est possible en utilisant la syntaxe suivante:
[code:1]-NumberFormat 'hh:mm:«»ss'[/code:1]
oui c'est possible en utilisant la syntaxe suivante:
[code:1]-NumberFormat 'hh:mm:«»ss'[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Atou
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 7 ans 6 jours #28477
par Atou
Réponse de Atou sur le sujet Re:Gestion date Excel avec Powershell
Tu pourrais juste me montrer un exemple, j'ai créer une boucle mais je ne sais pas ou trop placer ce paramètre.
Merci d'avance
<br><br>Message édité par: Atou45, à: 15/03/19 12:31
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Hicham Madini
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 98
- Remerciements reçus 0
il y a 7 ans 6 jours #28478
par Hicham Madini
Réponse de Hicham Madini sur le sujet Re:Gestion date Excel avec Powershell
non c'est l'inverse qu'il faut faire, tu montres ton code et on essaie ensemble de l'adapter
Connexion ou Créer un compte pour participer à la conversation.
- Atou
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 65
- Remerciements reçus 0
il y a 7 ans 6 jours #28479
par Atou
Réponse de Atou sur le sujet Re:Gestion date Excel avec Powershell
Ah ben si tu veux pas de soucis :
[code:1]
Function Update-Destination($LogicielToMark, $LogicielToCopy) {
$Source.Activate()
$Row = 1
$Logiciel = $Source.ActiveSheet.Range(\"A\" + $Row).Text
while ($Logiciel.Length) {
if ($LogicielToMark -contains $Logiciel) {
$Source.Activate()
$Source.ActiveSheet.Range(\"A\" + $Row).copy()
$Destination.Activate()
$lastRow = $wsD.UsedRange.rows.count + 1
$wsD.Range(\"A\" + $lastRow).select()
$Destination.ActiveSheet.Paste()
$wsD.Range(\"D\" + ($lastRow -1) + \":E\" + ($lastRow -1)).copy() # copier les formules pour calculer le Cumul
$wsD.Range(\"D\" + $lastRow).select()
$Destination.ActiveSheet.Paste() # coller les formules pour calculer le Cumul
$Source.ActiveSheet.Range(\"B\" + $Row).copy()
$wsD.Cells($lastRow, $lastCol + 2).select()
$Destination.ActiveSheet.Paste()
$Source.ActiveSheet.Range(\"C\" + $Row).copy()
$wsD.Cells($lastRow, $lastCol +1).select()
$Destination.ActiveSheet.Paste()
$Source.ActiveSheet.Range(\"A\" + $Row).Cells.Font.ColorIndex = 3
}
Else {
if ($LogicielToCopy -contains $Logiciel) {
$Source.Activate()
$CurrentRow = $wsD.Columns.item(1).find($Logiciel).row
$Source.ActiveSheet.Range(\"B\" + $Row).copy()
$Destination.Activate()
$wsD.Cells($CurrentRow , $lastCol + 2).select()
$Destination.ActiveSheet.Paste()
$Source.ActiveSheet.Range(\"C\" + $Row).copy()
$wsD.Cells($CurrentRow , $lastCol +1).select()
$Destination.ActiveSheet.Paste()
}
}
if ($Destination.ActiveSheet.Range(\"E\" + $Row) -ge 100) {
$Destination.ActiveSheet.Range(\"E\" + $Row).Cells.Font.ColorIndex = 3
}
$Row++
$Logiciel = $Source.ActiveSheet.Range(\"A\" + $Row).Text
}
}
[/code:1]
J'ai crée une troisième boucle if qui je pense aurait permit de le faire, manque juste ton paramètre
J'ai mit \"-ge 100\" pour supérieur ou égal mais bon forcement quand j'exécute mon script j'ai une erreur comme quoi qu'il ne peut pas comparer vu la syntaxe.<br><br>Message édité par: Atou45, à: 15/03/19 12:36
[code:1]
Function Update-Destination($LogicielToMark, $LogicielToCopy) {
$Source.Activate()
$Row = 1
$Logiciel = $Source.ActiveSheet.Range(\"A\" + $Row).Text
while ($Logiciel.Length) {
if ($LogicielToMark -contains $Logiciel) {
$Source.Activate()
$Source.ActiveSheet.Range(\"A\" + $Row).copy()
$Destination.Activate()
$lastRow = $wsD.UsedRange.rows.count + 1
$wsD.Range(\"A\" + $lastRow).select()
$Destination.ActiveSheet.Paste()
$wsD.Range(\"D\" + ($lastRow -1) + \":E\" + ($lastRow -1)).copy() # copier les formules pour calculer le Cumul
$wsD.Range(\"D\" + $lastRow).select()
$Destination.ActiveSheet.Paste() # coller les formules pour calculer le Cumul
$Source.ActiveSheet.Range(\"B\" + $Row).copy()
$wsD.Cells($lastRow, $lastCol + 2).select()
$Destination.ActiveSheet.Paste()
$Source.ActiveSheet.Range(\"C\" + $Row).copy()
$wsD.Cells($lastRow, $lastCol +1).select()
$Destination.ActiveSheet.Paste()
$Source.ActiveSheet.Range(\"A\" + $Row).Cells.Font.ColorIndex = 3
}
Else {
if ($LogicielToCopy -contains $Logiciel) {
$Source.Activate()
$CurrentRow = $wsD.Columns.item(1).find($Logiciel).row
$Source.ActiveSheet.Range(\"B\" + $Row).copy()
$Destination.Activate()
$wsD.Cells($CurrentRow , $lastCol + 2).select()
$Destination.ActiveSheet.Paste()
$Source.ActiveSheet.Range(\"C\" + $Row).copy()
$wsD.Cells($CurrentRow , $lastCol +1).select()
$Destination.ActiveSheet.Paste()
}
}
if ($Destination.ActiveSheet.Range(\"E\" + $Row) -ge 100) {
$Destination.ActiveSheet.Range(\"E\" + $Row).Cells.Font.ColorIndex = 3
}
$Row++
$Logiciel = $Source.ActiveSheet.Range(\"A\" + $Row).Text
}
}
[/code:1]
J'ai crée une troisième boucle if qui je pense aurait permit de le faire, manque juste ton paramètre
J'ai mit \"-ge 100\" pour supérieur ou égal mais bon forcement quand j'exécute mon script j'ai une erreur comme quoi qu'il ne peut pas comparer vu la syntaxe.<br><br>Message édité par: Atou45, à: 15/03/19 12:36
Connexion ou Créer un compte pour participer à la conversation.
- Hicham Madini
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 98
- Remerciements reçus 0
il y a 7 ans 6 jours #28480
par Hicham Madini
Réponse de Hicham Madini sur le sujet Re:Gestion date Excel avec Powershell
oui mais ca c'est mon dernier script, et tu n'as même pas dit merci 
hmmm tu compare quoi avec -ge 100? surement la valeur de la cellule, donc formcememnt il faut ajouter un .value
sinon je vais voir le soir, même si tu n'as pas dit merci
hmmm tu compare quoi avec -ge 100? surement la valeur de la cellule, donc formcememnt il faut ajouter un .value
sinon je vais voir le soir, même si tu n'as pas dit merci
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.089 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Gestion date Excel avec Powershell