Initialisation automatique dans vba d excel
Fermé
typhoon
Messages postés
12
Date d'inscription
jeudi 10 février 2005
Statut
Membre
Dernière intervention
2 juin 2005
-
26 avril 2005 à 14:03
Jean-Luc - 11 nov. 2008 à 10:54
Jean-Luc - 11 nov. 2008 à 10:54
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
@+
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
@+
A voir également:
- Initialisation automatique dans vba d excel
- Réponse automatique thunderbird - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
3 réponses
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
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
Kobaya
Messages postés
282
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
10 janvier 2008
214
26 avril 2005 à 14:46
26 avril 2005 à 14:46
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.
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.
random
Messages postés
1612
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
30 mars 2006
155
26 avril 2005 à 15:03
26 avril 2005 à 15:03
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
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