Initialisation automatique dans vba d excel

typhoon Messages postés 12 Statut Membre -  
 Jean-Luc -
bonjour,
Je voudrais faire un bouton qui permet de tout reinitialiser, c'est a dire toutes mes checkbox, textbox et mettre a vide les cellule d excel que j utilise.
Y a t il une commande qui fais ca automatiquement ou faut il que je fasse tout manuelement.
je vous remercie
@+

3 réponses

  1. Jean-Luc
     
    Bonjour,
    Dans ta feuille active ("formulaire" par exemple, feuill1 renommée), il faut créer un bouton de commande (par ex: "Réinitialiser")
    Dans Visual Basic, tu auras la macro suivante sur ta Feuill1 (formulaire) :
    Private Sub CommandButton1_Click()
    Call Réinitialiser
    End Sub
    Ensuite, tu vas créer un module (module1 par exemple) dans les module de Visual Basic :

    Sub Réinitialiser()
    Sheets("Formulaire").Select
    Range("C6").ClearContents
    Range("E6").ClearContents
    Range("H6").ClearContents
    Range("C8").ClearContents
    End Sub

    etc... pour chaque cellule à réinitialiser, et si tu veux que ton pointeur se repositionne sur une certaine cellule pour le prochain formulaire à remplir, tu ajoutes simplement à la dernière ligne, avant le "End Sub" :

    Range("C6").Select

    Voilà pour tes cellules, maintenant, si tu as des checkbox dans ton formulaire, tu peux faire une autre macro dans ton module, créant une boucle de réinitialisation pour chaque objet :

    Sub chkboxinitialise()
    For Each s In Worksheets(1).Shapes
    If s.Type = msoFormControl Then
    If s.FormControlType = xlCheckBox Then s.ControlFormat.Value = False
    End If
    Next
    End Sub

    Dans ce cas, n'oublies pas d'appeler cette seconde macro dans la première par :

    Call chkboxinitialise

    ==> Ce qui pourrait donner ceci :

    Sub Réinitialiser()
    Sheets("Formulaire").Select
    Range("C6").ClearContents
    Range("E6").ClearContents
    Range("H6").ClearContents
    Range("C8").ClearContents
    Call chkboxinitialise
    Range("C6").Select
    End Sub
    1
  2. Kobaya Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   214
     
    salut,

    et oui, il faut tout faire "manuellement"!

    il doit y avoir moyen de faire une boucle For Each qui prendrait tous les objets, combiné avec un test (Case) où suivant le type d'objet, tu le réinitialises.

    -1
  3. random Messages postés 1612 Statut Membre 155
     
    ben tu définis tes objets avec des valeurs nulles
    tu mets un bouton associé à
    une procedure qui ferme la forme et qui la rouvre
    et qui en profite pour raz tes cellules excel ou
    ouvre l'ancienne version du classeur asns suavegarder la nouvelle
    -1