Rapport de message :*
 

Re: Userform

Titre du sujet : Re: Userform
par myDearFriend! le 29/11/2008 14:22:55

Re,

Tu trouveras ci-joint ton classeur modifié selon tes souhaits.

Je me suis permis de le convertir dans un format (.xls) compatible avec les versions antérieurs d'Excel et pas seulement pour 2007 afin de permettre au plus grand nombre de visiteurs de pouvoir suivre ce sujet et permettre aussi à d'autres intervenants de réagir s'ils le souhaitent. Je te conseille de faire de même si tu joins un autre classeur ultérieurement (dans Excel 2007, tu fais "Enregistrer sous..." et tu choisis "Classeur Excel 97-2003").

J'ai essayé de faire au plus simple pour toi qui, visiblement, débute en VBA. Le code du Userform est le suivant :
Option Explicit

Private Sub CommandButton1_Click()
Dim DernLign As Long
    With Sheets(2)
        'On mémorise dans DernLign le numéro de la première ligne libre de la feuille 2
        DernLign = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        'On met à jour la feuille 2 avec les données du Userform
        .Cells(DernLign, 1).Value = TextBox1.Value
        .Cells(DernLign, 2).Value = TextBox2.Value
        .Cells(DernLign, 3).Value = TextBox3.Value
    End With
    'On ferme le Userform
    Unload Me
End Sub

Private Sub CommandButton2_Click()
'Effacer les TextBox
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
End Sub

Deux remarques par rapport à ton fichier d'origine :
[list][*]Pour lancer le Userform, il convient de faire :
UserForm1.Show
Le mot clé "Call" est inutile et mal approprié ici.

[*]Tu avais défini la propriété "Enabled" du Userform à False. Ce qui empêche toute manipulation pour l'utilisateur (impossible de saisir dans les TextBox et impossible de cliquer sur les boutons notamment). J'ai donc rétabli cette propriété sur sa valeur par défaut (True).[/list]
Je te laisse étudier le code utilisé. Si tu as besoin de plus amples explications, n'hésite pas...

Cordialement,