IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

FORMULAIRE - Problème de récupération de valeur d'une Textbox [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Par défaut FORMULAIRE - Problème de récupération de valeur d'une Textbox
    Bonjour à tous,

    Je rencontre des problèmes avec mon formulaire sous Powershell.
    Dans mon script, j'ai un bouton radio "oui", "non" et selon la réponse, je fais apparaitre une textbox. Le problème est que lorsque je saisie mes infos et que je valide mon formulaire, ma valeur dans la textbox n'est pas récupérée.
    Voici une partie de mon code
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    #fenêtre
        $WinCollab= New-Object System.Windows.Forms.Form
        $WinCollab.Text = 'UTILISATEUR'
        $WinCollab.AutoSize = $true #wrap to content
        $WinCollab.Height = 1 #Autosize agrandira la fenêtre
        $WinCollab.FormBorderStyle = 3 #fenêtre à taille fixe
        $WinCollab.StartPosition = 'CenterScreen'
     
    	# Objet : Intitulé.
    	$LibCtt = New-Object System.Windows.Forms.GroupBox
        # Texte affiché
        $LibCtt.Text = "CDI? :"
        #Attache le contrôle et les boutons à la fenêtre
        $WinCollab.controls.add($LibCtt)
     
        # Objet : Bouton radio 'Oui'
        $InfoCtto = New-Object System.Windows.Forms.RadioButton
    	# Valeur de la boite de dialogue
        $InfoCtto.Text = "Oui"
     
           # Objet : Bouton radio 'Non'
        $ValCONTRATn = New-Object System.Windows.Forms.RadioButton
            # Bouton cochée sur 'Non' par défaut   
        $InfoCttn.Checked = $False
            # Valeur de la boite de dialogue
        $InfoCttn.Text = "Non"
            #Action si la case est Non cochée
        $InfoCttn_CheckedChanged = 
            {
                    # Objet : Intitulé.
                $LibSORTIE = New-Object System.Windows.Forms.Label
                    # Objet nommé
                $LibSORTIE.Name = "LabSortie" 
                    # Texte affiché
                $LibSORTIE.Text = "DATE SORTIE :"
                    # Objet : Fenêtre de saisie
                $DATESORT = New-Object System.Windows.Forms.TextBox
                    # Objet nommé
                $DATESORT.Name = "ValSortie" 
                        # Valeur de la boite de dialogue
                $DATESORT.Text = "01/02/2021"
                    #Attache le contrôle et les boutons à la fenêtre
                #$WinCollab.Controls.Add($DATESORT)
                $LibCtt.Controls.AddRange(@($InfoCttn,$InfoCtto,$LibSORTIE,$DATESORT))
                $WinCollab.Controls.AddRange(@($LibCtt))
            }
            #Action si la case Oui est cochée
        $InfoCtto_CheckedChanged = 
        {
            #Valeur Y lié à la position verticale
            $ValYLoc = $ValYLoc - 1
            #$WinCollab.Controls.Add($DATESORT)
            #Suppression de la fenêtre Date de sortie si non nécessaire
            $LibCtt.Controls.RemoveByKey("LabSortie")
            $LibCtt.Controls.RemoveByKey("ValSortie")
        }
                #Execution du script qui masque ou non la date de sortie
        $InfoCtto.add_click($InfoCtto_CheckedChanged)
        $InfoCttn.add_click($InfoCttn_CheckedChanged)
     
        # On crée un groupe de bouton
        $LibCtt.Controls.AddRange(@($InfoCttn,$InfoCtto))
        #Attache le contrôle et les boutons à la fenêtre
        $WinCollab.Controls.AddRange(@($LibCtt))
     
     
    	#Creation Bouton 'Valider'
        $BtnValider = New-Object System.Windows.Forms.Button
     
        $BtnValider.Text = 'VALIDER'
        $WinCollab.controls.add($BtnValider)
        $BtnValider.Add_Click(
            {
                New-Variable -Name selection -Value $($BtnValider.Text) -Scope Script -Force
                $WinCollab.Close()
            })

    La valeur de la variable $DATESORT.Text ne me renvoie rien même si je mets un write-host ici :
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     $BtnValider.Add_Click(
            {
                New-Variable -Name selection -Value $($BtnValider.Text) -Scope Script -Force
                write-host $DATESORT.Text
                $WinCollab.Close()
            })
    Merci pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ton code ne fonctionne pas.

    Merci de nous en fournir un fonctionnel pour que l'on puisse t'aider

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Ton code ne fonctionne pas.

    Merci de nous en fournir un fonctionnel pour que l'on puisse t'aider
    Il est tout plus agréable de commencer par un "Bonjour"!

    Bonjour!

    Voici mon code :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
        #fenêtre
        $WinCollab = New-Object System.Windows.Forms.Form
        $WinCollab.Text = 'UTILISATEUR'
        $WinCollab.AutoSize = $true #wrap to content
        $WinCollab.Height = 1 #Autosize agrandira la fenêtre
        $WinCollab.FormBorderStyle = 3 #fenêtre à taille fixe
        $WinCollab.StartPosition = 'CenterScreen'
     
        #Variables taille Libellé
        $ValSizeX = 150
        $ValSizeY = 20
        #Variables localisation x Libellé
        $LocationLabX = 20
        $SizeXLib = 110
        $SizeYLib = 20
     
         ###################        PARTIE TYPE DE CONTRAT       ###################
        # Objet : Intitulé.
        $LibCtt = New-Object System.Windows.Forms.GroupBox
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $LibCtt.Location = New-Object Drawing.Point($LocationLabX,25)
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $LibCtt.Size = New-Object System.Drawing.Size($SizeXLib,$SizeYLib)
        #$LibCtt.AutoSize = $True
           # Texte affiché
        $LibCtt.Text = "CDI? :"
            # Police du texte
        $LibCtt.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,[System.Drawing.FontStyle]::Underline)
        #Attache le contrôle et les boutons à la fenêtre
        $WinCollab.controls.add($LibCtt)
     
        # Objet : Bouton radio 'Oui'
        $ValCtto = New-Object System.Windows.Forms.RadioButton
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $ValCtto.Location = New-Object System.Drawing.Point((($LibCtt.Location.X)-10),(($LibCtt.Location.Y)-230))
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $ValCtto.Size = New-Object System.Drawing.Size(45,$ValSizeY)
            # Bouton cochée sur 'Non' par défaut   
        $ValCtto.Checked = $True
                # Valeur de la boite de dialogue
        $ValCtto.Text = "Oui"
     
           # Objet : Bouton radio 'Non'
        $ValCttn = New-Object System.Windows.Forms.RadioButton
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $ValCttn.Location = New-Object System.Drawing.Point((($LibCtt.Location.X)+40),(($LibCtt.Location.Y)-230))
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $ValCttn.Size = New-Object System.Drawing.Size(45,$ValSizeY)
            # Bouton cochée sur 'Non' par défaut   
        $ValCttn.Checked = $False
            # Valeur de la boite de dialogue
        $ValCttn.Text = "Non"
            #Action si la case est Non cochée
        $ValCttn_CheckedChanged = 
            {
                    # Taille de la fenêtre (x,y) x = largeur, y = hauteur
                $LibCtt.Size = New-Object System.Drawing.Size(($SizeXLib+80),($SizeYLib+55))
                #Valeur Y lié à la position verticale
                #$ValYLoc = $ValYLoc + 2.4
                    # Objet : Intitulé.
                $LibSORTIE = New-Object System.Windows.Forms.Label
                    # Position de la fenêtre (x,y) x = horizontal, y = vertical
                $LibSORTIE.Location = New-Object Drawing.Point(10,50)
                #$LibSORTIE.Location = New-Object Drawing.Point($LocationLabX,(($LibCtt.Location.Y)*$ValYLoc))
                    # Objet nommé
                $LibSORTIE.Name = "LabSortie" 
                    # Taille de la fenêtre (x,y) x = largeur, y = hauteur
                $LibSORTIE.Size = New-Object System.Drawing.Size(($SizeXLib-10),$SizeYLib)
                    # Texte affiché
                $LibSORTIE.Text = "DATE SORTIE :"
                    # Police du texte
                $LibSORTIE.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,
                                [System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold -bor [System.Drawing.FontStyle]::Underline))
                #Attache le contrôle et les boutons à la fenêtre
                #$WinCollab.controls.add($LibSORTIE)
     
                    # Objet : Fenêtre de saisie
                $ValSORTIE = New-Object System.Windows.Forms.TextBox
                    # Position de la fenêtre (x,y) x = horizontal, y = vertical
                $ValSORTIE.Location = New-Object System.Drawing.Point(110,45)
                    # Taille de la fenêtre (x,y) x = largeur, y = hauteur
                $ValSORTIE.Size = New-Object System.Drawing.Size(($ValSizeX-80),$ValSizeY)
                    # Objet nommé
                $ValSORTIE.Name = "ValSortie" 
                        # Valeur de la boite de dialogue
                $ValSORTIE.Text = $VarDate
                    #Attache le contrôle et les boutons à la fenêtre
                #$WinCollab.Controls.Add($ValSORTIE)
                $LibCtt.Controls.AddRange(@($ValCttn,$ValCtto,$LibSORTIE,$ValSORTIE))
                $WinCollab.Controls.AddRange(@($LibCtt))
     
                 # Position de la fenêtre (x,y) x = horizontal, y = vertical
                $LabelREF.Location = New-Object Drawing.Point($LocationLabX,(($LibCtt.Location.Y)*($ValYLoc+1.3)))
                # Position de la fenêtre (x,y) x = horizontal, y = vertical
                $BtnValider.Location = New-Object Drawing.Point(120,(($LibCtt.Location.Y)*($ValYLoc+5)))
            }
            #Action si la case Oui est cochée
        $ValCtto_CheckedChanged = 
        {
            #Valeur Y lié à la position verticale
            $ValYLoc = $ValYLoc - 1
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
            $LibCtt.Size = New-Object System.Drawing.Size(($SizeXLib),($SizeYLib+23))
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
            $LabelREF.Location = New-Object Drawing.Point($LocationLabX,(($LibCtt.Location.Y)*($ValYLoc+1)))
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
            $BtnValider.Location = New-Object Drawing.Point(120,(($LibCtt.Location.Y)*($ValYLoc+4)))
            #$WinCollab.Controls.Add($ValSORTIE)
            #Suppression de la fenêtre Date de sortie si non nécessaire
            $LibCtt.Controls.RemoveByKey("LabSortie")
            $LibCtt.Controls.RemoveByKey("ValSortie")
        }
                #Execution du script qui masque ou non la date de sortie
        $ValCtto.add_click($ValCtto_CheckedChanged)
        $ValCttn.add_click($ValCttn_CheckedChanged)
     
        # On crée un groupe de bouton
        $LibCtt.Controls.AddRange(@($ValCttn,$ValCtto))
        #Attache le contrôle et les boutons à la fenêtre
        $WinCollab.Controls.AddRange(@($LibCtt))
        ###################      FIN PARTIE TYPE DE CONTRAT     ###################
        $ValYLoc = $ValYLoc + 2
     
        #Creation Bouton 'Valider'
        $BtnValider = New-Object System.Windows.Forms.Button
        # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $BtnValider.Location = New-Object Drawing.Point(120,(($LibCtt.Location.Y)*($ValYLoc+4)))
        # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $BtnValider.Size = New-Object System.Drawing.Size(75,23)
        $BtnValider.Text = 'VALIDER'
        $WinCollab.controls.add($BtnValider)
        $BtnValider.Add_Click(
            {
                New-Variable -Name selection -Value $($BtnValider.Text) -Scope Script -Force
                $WinCollab.Close()
            })
     
     
     
        #Affiche le tout.
        $WinCollab.ShowDialog()
     
        $Msgbox::MsgBox($ValSORTIE.Text, "OKOnly,Information,SystemModal", "RESUME")

    Merci pour l'aide apportée.

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ton code sort une erreur sur ces 2 lignes, puisque l'objet $LabelREF n'existe pas

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    $LabelREF.Location = ...

  5. #5
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2017
    Messages : 9
    Par défaut
    Bonjour,
    J'ai repris mon code, il est maintenant opérationnel :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    #----------------------------------------------------
    #            CHARGEMENT DES BIBLIOTHEQUES
    #----------------------------------------------------
    #Appel de la bibliothèqye VBScript pour InputBOX
    add-type -assemblyName "Microsoft.VisualBasic"
    #Appel de la bibliothèqye System.Windows.Forms pour MESSAGEBOX
    Add-Type -AssemblyName System.Windows.Forms
    #$Msgbox contient les informations de la messsagebox  
    #$Msgbox = [System.Windows.Forms.MessageBox]
    $Msgbox = [Microsoft.VisualBasic.Interaction]
    #----------------------------------------------------
    #                         FIN
    #----------------------------------------------------
     
    #fenêtre
        $WinCollab = New-Object System.Windows.Forms.Form
        $WinCollab.Text = 'UTILISATEUR'
        $WinCollab.AutoSize = $true #wrap to content
        $WinCollab.Height = 1 #Autosize agrandira la fenêtre
        $WinCollab.FormBorderStyle = 3 #fenêtre à taille fixe
        $WinCollab.StartPosition = 'CenterScreen'
     
        #Variables taille Libellé
        $ValSizeX = 150
        $ValSizeY = 20
        #Variables localisation x Libellé
        $LocationLabX = 20
        $SizeXLib = 110
        $SizeYLib = 20
     
         ###################        PARTIE TYPE DE CONTRAT       ###################
        # Objet : Intitulé.
        $LibCtt = New-Object System.Windows.Forms.GroupBox
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $LibCtt.Location = New-Object Drawing.Point($LocationLabX,25)
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $LibCtt.Size = New-Object System.Drawing.Size(($SizeXLib+30),($SizeYLib+30))
        #$LibCtt.AutoSize = $True
        Write-Host $LibCtt.Size.Height
        Write-host $LibCtt.Size.Width
           # Texte affiché
        $LibCtt.Text = "CDI? :"
            # Police du texte
        $LibCtt.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,[System.Drawing.FontStyle]::Underline)
        #Attache le contrôle et les boutons à la fenêtre
        $WinCollab.controls.add($LibCtt)
     
        # Objet : Bouton radio 'Oui'
        $ValCtto = New-Object System.Windows.Forms.RadioButton
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $ValCtto.Location = New-Object System.Drawing.Point((($LibCtt.Location.X)),(($LibCtt.Location.Y)))
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $ValCtto.Size = New-Object System.Drawing.Size(45,$ValSizeY)
            # Bouton cochée sur 'Non' par défaut   
        $ValCtto.Checked = $True
                # Valeur de la boite de dialogue
        $ValCtto.Text = "Oui"
     
           # Objet : Bouton radio 'Non'
        $ValCttn = New-Object System.Windows.Forms.RadioButton
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $ValCttn.Location = New-Object System.Drawing.Point((($LibCtt.Location.X)+40),(($LibCtt.Location.Y)))
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $ValCttn.Size = New-Object System.Drawing.Size(45,$ValSizeY)
            # Bouton cochée sur 'Non' par défaut   
        $ValCttn.Checked = $False
            # Valeur de la boite de dialogue
        $ValCttn.Text = "Non"
            #Action si la case est Non cochée
        $ValCttn_CheckedChanged = 
            {
                    # Taille de la fenêtre (x,y) x = largeur, y = hauteur
                $LibCtt.Size = New-Object System.Drawing.Size(($SizeXLib+80),($SizeYLib+55))
                #Valeur Y lié à la position verticale
                #$ValYLoc = $ValYLoc + 2.4
                    # Objet : Intitulé.
                $LibSORTIE = New-Object System.Windows.Forms.Label
                    # Position de la fenêtre (x,y) x = horizontal, y = vertical
                $LibSORTIE.Location = New-Object Drawing.Point(10,50)
                #$LibSORTIE.Location = New-Object Drawing.Point($LocationLabX,(($LibCtt.Location.Y)*$ValYLoc))
                    # Objet nommé
                $LibSORTIE.Name = "LabSortie" 
                    # Taille de la fenêtre (x,y) x = largeur, y = hauteur
                $LibSORTIE.Size = New-Object System.Drawing.Size(($SizeXLib-10),$SizeYLib)
                    # Texte affiché
                $LibSORTIE.Text = "DATE SORTIE :"
                    # Police du texte
                $LibSORTIE.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,
                                [System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold -bor [System.Drawing.FontStyle]::Underline))
                #Attache le contrôle et les boutons à la fenêtre
                #$WinCollab.controls.add($LibSORTIE)
     
                    # Objet : Fenêtre de saisie
                $ValSORTIE = New-Object System.Windows.Forms.TextBox
                    # Position de la fenêtre (x,y) x = horizontal, y = vertical
                $ValSORTIE.Location = New-Object System.Drawing.Point(110,45)
                    # Taille de la fenêtre (x,y) x = largeur, y = hauteur
                $ValSORTIE.Size = New-Object System.Drawing.Size(($ValSizeX-80),$ValSizeY)
                    # Objet nommé
                $ValSORTIE.Name = "ValSortie" 
                        # Valeur de la boite de dialogue
                $ValSORTIE.Text = $VarDate
                    #Attache le contrôle et les boutons à la fenêtre
                #$WinCollab.Controls.Add($ValSORTIE)
                $LibCtt.Controls.AddRange(@($ValCttn,$ValCtto,$LibSORTIE,$ValSORTIE))
                $WinCollab.Controls.AddRange(@($LibCtt))
                 # Position de la fenêtre (x,y) x = horizontal, y = vertical
                $BtnValider.Location = New-Object Drawing.Point(120,120)
            }
            #Action si la case Oui est cochée
        $ValCtto_CheckedChanged = 
        {
            #Valeur Y lié à la position verticale
            $ValYLoc = $ValYLoc - 1
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
            $LibCtt.Size = New-Object System.Drawing.Size(($SizeXLib+30),($SizeYLib+30))
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
            $BtnValider.Location = New-Object Drawing.Point(120,120)
            #$WinCollab.Controls.Add($ValSORTIE)
            #Suppression de la fenêtre Date de sortie si non nécessaire
            $LibCtt.Controls.RemoveByKey("LabSortie")
            $LibCtt.Controls.RemoveByKey("ValSortie")
        }
                #Execution du script qui masque ou non la date de sortie
        $ValCtto.add_click($ValCtto_CheckedChanged)
        $ValCttn.add_click($ValCttn_CheckedChanged)
     
        # On crée un groupe de bouton
        $LibCtt.Controls.AddRange(@($ValCttn,$ValCtto))
        #Attache le contrôle et les boutons à la fenêtre
        $WinCollab.Controls.AddRange(@($LibCtt))
        ###################      FIN PARTIE TYPE DE CONTRAT     ###################
        $ValYLoc = $ValYLoc + 2
     
        #Creation Bouton 'Valider'
        $BtnValider = New-Object System.Windows.Forms.Button
        # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $BtnValider.Location = New-Object Drawing.Point(120,120)
        # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $BtnValider.Size = New-Object System.Drawing.Size(75,23)
        $BtnValider.Text = 'VALIDER'
        $WinCollab.controls.add($BtnValider)
        $BtnValider.DialogResult = [System.Windows.Forms.DialogResult]::OK
        $BtnValider.Add_Click(
            {
                New-Variable -Name selection -Value $($BtnValider.Text) -Scope Script -Force
                $WinCollab.Close()
            })
     
     
     
        #Affiche le tout.
        $WinCollab.ShowDialog()
     
        If ($ValCtto.Checked -Like $True ) 
            {
                $Msgbox::MsgBox("En CDI!", "OKOnly,Information,SystemModal", "RESUME")
            } Else 
                {
                    $Msgbox::MsgBox($ValSORTIE.Text, "OKOnly,Information,SystemModal", "RESUME")
                }
    Pour la date de sortie, elle se présente sous la forme jj/mm/aaaa.

    Si la case reste coché sur CDI, pas de problème. En revanche, si l'on coche "non" + une date, la valeur $ValSORTIE.Text reste vide.

    Merci pour le retour.

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Tu as un problème de portée ou étendue de ta variable ValSORTIE
    Si tu la déclare dans un bloc est est restreinte au bloc et enfant.
    Voir ici : https://docs.microsoft.com/fr-fr/pow...powershell-7.1

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    #----------------------------------------------------
    #            CHARGEMENT DES BIBLIOTHEQUES
    #----------------------------------------------------
    #Appel de la bibliothèqye VBScript pour InputBOX
    add-type -assemblyName "Microsoft.VisualBasic"
    #Appel de la bibliothèqye System.Windows.Forms pour MESSAGEBOX
    Add-Type -AssemblyName System.Windows.Forms
    #$Msgbox contient les informations de la messsagebox  
    #$Msgbox = [System.Windows.Forms.MessageBox]
    $Msgbox = [Microsoft.VisualBasic.Interaction]
    #----------------------------------------------------
    #                         FIN
    #----------------------------------------------------
     
    #fenêtre
    $WinCollab = New-Object System.Windows.Forms.Form
    $WinCollab.Text = 'UTILISATEUR'
    $WinCollab.AutoSize = $true #wrap to content
    $WinCollab.Height = 1 #Autosize agrandira la fenêtre
    $WinCollab.FormBorderStyle = 3 #fenêtre à taille fixe
    $WinCollab.StartPosition = 'CenterScreen'
     
    #Variables taille Libellé
    $ValSizeX = 150
    $ValSizeY = 20
    #Variables localisation x Libellé
    $LocationLabX = 20
    $SizeXLib = 110
    $SizeYLib = 20
     
        ###################        PARTIE TYPE DE CONTRAT       ###################
    # Objet : Intitulé.
    $LibCtt = New-Object System.Windows.Forms.GroupBox
        # Position de la fenêtre (x,y) x = horizontal, y = vertical
    $LibCtt.Location = New-Object Drawing.Point($LocationLabX,25)
        # Taille de la fenêtre (x,y) x = largeur, y = hauteur
    $LibCtt.Size = New-Object System.Drawing.Size(($SizeXLib+30),($SizeYLib+30))
    #$LibCtt.AutoSize = $True
    Write-Host $LibCtt.Size.Height
    Write-host $LibCtt.Size.Width
        # Texte affiché
    $LibCtt.Text = "CDI? :"
        # Police du texte
    $LibCtt.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,[System.Drawing.FontStyle]::Underline)
    #Attache le contrôle et les boutons à la fenêtre
    $WinCollab.controls.add($LibCtt)
     
    # Objet : Bouton radio 'Oui'
    $ValCtto = New-Object System.Windows.Forms.RadioButton
    # Position de la fenêtre (x,y) x = horizontal, y = vertical
    $ValCtto.Location = New-Object System.Drawing.Point((($LibCtt.Location.X)),(($LibCtt.Location.Y)))
    # Taille de la fenêtre (x,y) x = largeur, y = hauteur
    $ValCtto.Size = New-Object System.Drawing.Size(45,$ValSizeY)
    # Bouton cochée sur 'Non' par défaut   
    $ValCtto.Checked = $True
        # Valeur de la boite de dialogue
    $ValCtto.Text = "Oui"
     
    # Objet : Bouton radio 'Non'
    $ValCttn = New-Object System.Windows.Forms.RadioButton
    # Position de la fenêtre (x,y) x = horizontal, y = vertical
    $ValCttn.Location = New-Object System.Drawing.Point((($LibCtt.Location.X)+40),(($LibCtt.Location.Y)))
    # Taille de la fenêtre (x,y) x = largeur, y = hauteur
    $ValCttn.Size = New-Object System.Drawing.Size(45,$ValSizeY)
    # Bouton cochée sur 'Non' par défaut   
    $ValCttn.Checked = $False
    # Valeur de la boite de dialogue
    $ValCttn.Text = "Non"
    #Action si la case est Non cochée
    $ValCttn_CheckedChanged = 
    {
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $LibCtt.Size = New-Object System.Drawing.Size(($SizeXLib+80),($SizeYLib+55))
        #Valeur Y lié à la position verticale
        #$ValYLoc = $ValYLoc + 2.4
        # Objet : Intitulé.
        $LibSORTIE = New-Object System.Windows.Forms.Label
        # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $LibSORTIE.Location = New-Object Drawing.Point(10,50)
        #$LibSORTIE.Location = New-Object Drawing.Point($LocationLabX,(($LibCtt.Location.Y)*$ValYLoc))
        # Objet nommé
        $LibSORTIE.Name = "LabSortie" 
        # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $LibSORTIE.Size = New-Object System.Drawing.Size(($SizeXLib-10),$SizeYLib)
        # Texte affiché
        $LibSORTIE.Text = "DATE SORTIE :"
        # Police du texte
        $LibSORTIE.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9,
                        [System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold -bor [System.Drawing.FontStyle]::Underline))
        #Attache le contrôle et les boutons à la fenêtre
        #$WinCollab.controls.add($LibSORTIE)
     
            # Objet : Fenêtre de saisie
        $global:ValSORTIE = New-Object System.Windows.Forms.TextBox
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $ValSORTIE.Location = New-Object System.Drawing.Point(110,45)
            # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $ValSORTIE.Size = New-Object System.Drawing.Size(($ValSizeX-80),$ValSizeY)
            # Objet nommé
        $ValSORTIE.Name = "ValSortie" 
                # Valeur de la boite de dialogue
        $ValSORTIE.Text = $VarDate
            #Attache le contrôle et les boutons à la fenêtre
        #$WinCollab.Controls.Add($ValSORTIE)
        $LibCtt.Controls.AddRange(@($ValCttn,$ValCtto,$LibSORTIE,$ValSORTIE))
        $WinCollab.Controls.AddRange(@($LibCtt))
            # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $BtnValider.Location = New-Object Drawing.Point(120,120)
    }
     
    #Action si la case Oui est cochée
    $ValCtto_CheckedChanged = 
    {
        #Valeur Y lié à la position verticale
        $ValYLoc = $ValYLoc - 1
        # Taille de la fenêtre (x,y) x = largeur, y = hauteur
        $LibCtt.Size = New-Object System.Drawing.Size(($SizeXLib+30),($SizeYLib+30))
        # Position de la fenêtre (x,y) x = horizontal, y = vertical
        $BtnValider.Location = New-Object Drawing.Point(120,120)
        #$WinCollab.Controls.Add($ValSORTIE)
        #Suppression de la fenêtre Date de sortie si non nécessaire
        $LibCtt.Controls.RemoveByKey("LabSortie")
        $LibCtt.Controls.RemoveByKey("ValSortie")
    }
            #Execution du script qui masque ou non la date de sortie
    $ValCtto.add_click($ValCtto_CheckedChanged)
    $ValCttn.add_click($ValCttn_CheckedChanged)
     
    # On crée un groupe de bouton
    $LibCtt.Controls.AddRange(@($ValCttn,$ValCtto))
    #Attache le contrôle et les boutons à la fenêtre
    $WinCollab.Controls.AddRange(@($LibCtt))
    ###################      FIN PARTIE TYPE DE CONTRAT     ###################
    $ValYLoc = $ValYLoc + 2
     
    #Creation Bouton 'Valider'
    $BtnValider = New-Object System.Windows.Forms.Button
    # Position de la fenêtre (x,y) x = horizontal, y = vertical
    $BtnValider.Location = New-Object Drawing.Point(120,120)
    # Taille de la fenêtre (x,y) x = largeur, y = hauteur
    $BtnValider.Size = New-Object System.Drawing.Size(75,23)
    $BtnValider.Text = 'VALIDER'
    $WinCollab.controls.add($BtnValider)
    $BtnValider.DialogResult = [System.Windows.Forms.DialogResult]::OK
    $BtnValider.Add_Click(
        {
            New-Variable -Name selection -Value $($BtnValider.Text) -Scope Script -Force
            $WinCollab.Close()
        })
     
     
     
    #Affiche le tout.
    $WinCollab.ShowDialog()
     
    If ($ValCtto.Checked -Like $True) 
    {
        $Msgbox::MsgBox("En CDI!", "OKOnly,Information,SystemModal", "RESUME")
    }
    Else 
    {
        $Msgbox::MsgBox($global:ValSORTIE.Text, "OKOnly,Information,SystemModal", "RESUME")
    }

    Il y aurai d'autre chose à dire mais bon, sans avoir regardé le script il y a mon regard qui à été choqué par cela $ValCtto.Checked -Like $True
    Utilise -eq pour tester une valeur booléenne. Voir RadioButton.Checked

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème de récupération de valeur dans une DataGridView
    Par Bacube dans le forum VB.NET
    Réponses: 11
    Dernier message: 12/08/2011, 12h35
  2. Problème de récupérations de valeurs d'une base de données vers des jtextfields
    Par Dambrath dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 17/03/2009, 16h39
  3. Réponses: 2
    Dernier message: 12/06/2008, 10h59
  4. Réponses: 2
    Dernier message: 21/09/2007, 11h37
  5. [SQL] Problème de récupération des valeurs d'une liste multiple en php
    Par BOLARD dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/05/2006, 00h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo