Bouton Réinitialiser

matthieu2701

XLDnaute Occasionnel
Bonjour,

J'ai fais un fichier excel pour mon boulot. J'aimerais insérer un bouton "Réinitialiser" afin de rétablir tous les champs d'origine sans fermer puis réouvrir.

Je vous joint le fichier.

Merci de votre aide
 

Pièces jointes

  • Fiche de redress.xls
    43.5 KB · Affichages: 347
  • Fiche de redress.xls
    43.5 KB · Affichages: 358
  • Fiche de redress.xls
    43.5 KB · Affichages: 347

Modeste geedee

XLDnaute Barbatruc
Re : Bouton Réinitialiser

Bonsour® matthieu2701

sourire...

il te faut définir la plage des cellules à reinitialiser

definir un nom : par ex: Zsaisies
fait référence à :
pour definir la zone cliquer successivement sur les cellules concernées en ajoutant à chaque fois un séparateur ";"

puis dans la macro RAZ
modifier
Code:
    Range("Zsaisies").Select
    Selection.ClearContents
nb:
il serait bon également de déverrouiller chaque cellule de la plage Zsaisies
puis d'appliquer une protection à la feuille
s'agissant d'un simple garde-fou il est inutile d'y adjoindre un mot de passe
un utilisateur mal intentionné et déterminé n'en n'aurait cure...
 

matthieu2701

XLDnaute Occasionnel
Re : Bouton Réinitialiser

Bonsour® matthieu2701

sourire...

il te faut définir la plage des cellules à reinitialiser

definir un nom : par ex: Zsaisies
fait référence à :
pour definir la zone cliquer successivement sur les cellules concernées en ajoutant à chaque fois un séparateur ";"

puis dans la macro RAZ
modifier
Code:
    Range("Zsaisies").Select
    Selection.ClearContents
nb:
il serait bon également de déverrouiller chaque cellule de la plage Zsaisies
puis d'appliquer une protection à la feuille
s'agissant d'un simple garde-fou il est inutile d'y adjoindre un mot de passe
un utilisateur mal intentionné et déterminé n'en n'aurait cure...

Je suis désolé mais j'ai pas compris.
 

Excel-lent

XLDnaute Barbatruc
Re : Bouton Réinitialiser

Bonsoir Matthieu2701,


matthieu2701 à dit:
rétablir tous les champs d'origine sans fermer puis réouvrir

Ce qui sous entend que tu ouvre ton fichier vierge, tu rempli tes champs, tu n'enregistre rien, puis tu quitte le fichier sans enregistrer les modification?

Te permettant ainsi, lorsque tu ré-ouvre le fichier, d'avoir un fichier vierge?

Sinon concernant ton problème :
-> le bouton, c'est secondaire, le plus important c'est la macro. Je vois que tu as déjà commencé et que tu sais utiliser l'enregistreur de macro. Très bonne initiative.

Si cela peux t'aider, une fois l'enregistreur de macro lancé, il faut effectuer la totalité des opérations (sélectionner les cellules... puis effacer le contenu).

Une fois cela fait, il faut regarder la macro, essayer de comprendre, et ainsi pouvoir enlever les choses inutiles.

Voici la macro que tu as enregistré (prise dans ton fichier sans aucune modification) :
VB:
Sub RaZ()
'
' RaZ Macro
' Macro enregistrée le 14/10/2007 par GB
'
' Réinitialisation des cellules de collecte
'
    Range("B7,").Select
    Selection.ClearContents
    Range("A1").Select
End Sub

Tu as :
-> ligne 1 : sélectionner la cellule B7
-> ligne 2 : effacé le contenu de cette dernière
-> ligne 3 : sélectionner la cellule A1

Imaginons que tu as fais ta macro entièrement, voici comment la nettoyer :
-> sauf si tu veux absolument qu'une fois la macro fini la cellule A1 soit sélectionné, cette ligne ne sert à rien.
-> comme tu as pu le constater, excel sélectionne la cellule B7 avant de l'effacer. Il faut savoir que pour exécuter cette tâche (effacer le contenu), tu n'es pas obligé de sélectionner la(es) cellule(s) en question. Ton code est ainsi plus court, mais surtout le temps d'exécution de la macro est beaucoup plus rapide. Pour cela il te suffit d'effacer : Select et Selection et de procéder ainsi :

Avant :
VB:
Sub RaZ()
' Macro de GB
' Réinitialisation des cellules de collecte
    Range("B7,").Select
    Selection.ClearContents
End Sub

Après nettoyage :
VB:
Sub RaZ()
' Macro de GB
' Réinitialisation des cellules de collecte
    Range("B7,").ClearContents
End Sub

Il te reste maintenant plus qu'à faire de même pour toutes les cellules de ton choix que tu n'as pas encore traité ;)

Une fois tout cela fini, tu peux dessiner un objet : par exemple un rectangle avec coin arrondi, avec un texte écrit dessus du style : "Cliquer ici pour réinitialiser la feuille". Tu peux modifier la couleur du rectangle, les ombres, la couleur-taille de la police, ...

Une fois cela fait :
-> tu sélectionne l'objet (un clic gauche)
-> tu place ton curseur au-dessus de l'objet puis tu effectue (sans déplacer la souri) un clic droit
-> sur le menu contextuel qui apparaît à côté de ton curseur cliquer sur "Affecter une macro"
-> dans la fenêtre qui s'ouvre, il te reste plus qu'à sélectionner dans la liste ta macro
-> puis valider en cliquant sur le bouton "Ok"

Et voilà, le tour est joué, maintenant à chaque fois que tu cliquera sur ton objet, la macro se lancera automatiquement.

Bonne soirée

Edition : bonsoir Modeste Geedee
 

Excel-lent

XLDnaute Barbatruc
Re : Bouton Réinitialiser

Re-bonsoir le fil,

Pour information, pour le cas où tu ne le saurais déjà, une fois que tu as fini d'utiliser l'enregistreur de macro, pour pouvoir regarder la macro ainsi créé, il te suffit de cliquer sur "Alt" + "F11".

A gauche figure une arborescence listant tout tes onglets, plus "ThisWorkbook", plus des modules.

Lorsque tu utilise l'enregistreur de macro, tes macros s'enregistre dans Module1, Module2, ...

Bonne soirée
A+
 
Dernière édition:

matthieu2701

XLDnaute Occasionnel
Re : Bouton Réinitialiser

Bonsoir Matthieu2701,




Ce qui sous entend que tu ouvre ton fichier vierge, tu rempli tes champs, tu n'enregistre rien, puis tu quitte le fichier sans enregistrer les modification?

Te permettant ainsi, lorsque tu ré-ouvre le fichier, d'avoir un fichier vierge?

Sinon concernant ton problème :
-> le bouton, c'est secondaire, le plus important c'est la macro. Je vois que tu as déjà commencé et que tu sais utiliser l'enregistreur de macro. Très bonne initiative.

Si cela peux t'aider, une fois l'enregistreur de macro lancé, il faut effectuer la totalité des opérations (sélectionner les cellules... puis effacer le contenu).

Une fois cela fait, il faut regarder la macro, essayer de comprendre, et ainsi pouvoir enlever les choses inutiles.

Voici la macro que tu as enregistré (prise dans ton fichier sans aucune modification) :
VB:
Sub RaZ()
'
' RaZ Macro
' Macro enregistrée le 14/10/2007 par GB
'
' Réinitialisation des cellules de collecte
'
    Range("B7,").Select
    Selection.ClearContents
    Range("A1").Select
End Sub

Tu as :
-> ligne 1 : sélectionner la cellule B7
-> ligne 2 : effacé le contenu de cette dernière
-> ligne 3 : sélectionner la cellule A1

Imaginons que tu as fais ta macro entièrement, voici comment la nettoyer :
-> sauf si tu veux absolument qu'une fois la macro fini la cellule A1 soit sélectionné, cette ligne ne sert à rien.
-> comme tu as pu le constater, excel sélectionne la cellule B7 avant de l'effacer. Il faut savoir que pour exécuter cette tâche (effacer le contenu), tu n'es pas obligé de sélectionner la(es) cellule(s) en question. Ton code est ainsi plus court, mais surtout le temps d'exécution de la macro est beaucoup plus rapide. Pour cela il te suffit d'effacer : Select et Selection et de procéder ainsi :

Avant :
VB:
Sub RaZ()
' Macro de GB
' Réinitialisation des cellules de collecte
    Range("B7,").Select
    Selection.ClearContents
End Sub

Après nettoyage :
VB:
Sub RaZ()
' Macro de GB
' Réinitialisation des cellules de collecte
    Range("B7,").ClearContents
End Sub

Il te reste maintenant plus qu'à faire de même pour toutes les cellules de ton choix que tu n'as pas encore traité ;)

Une fois tout cela fini, tu peux dessiner un objet : par exemple un rectangle avec coin arrondi, avec un texte écrit dessus du style : "Cliquer ici pour réinitialiser la feuille". Tu peux modifier la couleur du rectangle, les ombres, la couleur-taille de la police, ...

Une fois cela fait :
-> tu sélectionne l'objet (un clic gauche)
-> tu place ton curseur au-dessus de l'objet puis tu effectue (sans déplacer la souri) un clic droit
-> sur le menu contextuel qui apparaît à côté de ton curseur cliquer sur "Affecter une macro"
-> dans la fenêtre qui s'ouvre, il te reste plus qu'à sélectionner dans la liste ta macro
-> puis valider en cliquant sur le bouton "Ok"

Et voilà, le tour est joué, maintenant à chaque fois que tu cliquera sur ton objet, la macro se lancera automatiquement.

Bonne soirée

Edition : bonsoir Modeste Geedee

Cela fonctionne. Merci
 

Pièces jointes

  • Fiche de redress.xls
    51.5 KB · Affichages: 272
  • Fiche de redress.xls
    51.5 KB · Affichages: 230
  • Fiche de redress.xls
    51.5 KB · Affichages: 220
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Bouton Réinitialiser

Bonsour® matthieu2701

Je suis désolé mais j'ai pas compris.
???

sourire...

comment mieux t'expliquer ?

tiré de l'aide en ligne
Création et entrée de noms

Vous pouvez créer un nom de l'une des façons suivantes :
À l'aide de la zone Nom dans la barre de formule
Cette méthode est idéale pour créer un nom au niveau du classeur pour une plage sélectionnée.
À partir d'une sélection
Vous pouvez créer des noms aisément à partir d'étiquettes de lignes et de colonnes existantes en sélectionnant des cellules de la feuille de calcul.
À l'aide de la boîte de dialogue Nouveau nom
Cette méthode est préférable lorsque vous avez besoin de plus de flexibilité lors de la création des noms, par exemple pour spécifier une étendue au niveau de la feuille de calcul locale ou pour créer un commentaire associé au nom.

Remarque Par défaut, les noms utilisent des références de cellules absolues.

Vous disposez des options suivantes pour entrer un nom :
Taper le nom
Tapez le nom, par exemple en tant qu'argument d'une formule.
Utiliser la saisie semi-automatique de formule
Utilisez la liste déroulante de la saisie semi-automatique de formule, qui répertorie automatiquement des noms valides pour vous.
Sélectionner un nom à partir de la commande Utiliser dans la formule
Sélectionnez un nom défini dans une liste disponible à partir de la commande Utiliser dans la formule dans le groupe Noms définis de l'onglet Formules.
 

Excel-lent

XLDnaute Barbatruc
Re : Bouton Réinitialiser

Salut Matthieu2701,

Une fois l'enregistreur lancé, puis arrêté, tu as modifié la macro pour obtenir cela?

Ta macro :
VB:
Sub RaZ()
' Macro de GB
' Réinitialisation des cellules de collecte
   Range("B3;F3;B5;D5;F5;H5;B7;C7;D7;G7;D9;D21;D22;E21;E22;C13").ClearContents
End Sub

La même corrigé et qui fonctionne :
VB:
Sub RaZ()
' Macro de GB
' Réinitialisation des cellules de collecte
   Range("B3:I3,B5:I5,B7:D7,D21:D22,E21:E22,C13:H16,G7,D9").ClearContents
End Sub

Le problème vient des cellules fusionnées, ça complique les choses, tu ne pouvais pas deviner.

Bonne fin de soirée
 

matthieu2701

XLDnaute Occasionnel
Re : Bouton Réinitialiser

Salut Matthieu2701,

Une fois l'enregistreur lancé, puis arrêté, tu as modifié la macro pour obtenir cela?

Ta macro :
VB:
Sub RaZ()
' Macro de GB
' Réinitialisation des cellules de collecte
   Range("B3;F3;B5;D5;F5;H5;B7;C7;D7;G7;D9;D21;D22;E21;E22;C13").ClearContents
End Sub

La même corrigé et qui fonctionne :
VB:
Sub RaZ()
' Macro de GB
' Réinitialisation des cellules de collecte
   Range("B3:I3,B5:I5,B7:D7,D21:D22,E21:E22,C13:H16,G7,D9").ClearContents
End Sub

Le problème vient des cellules fusionnées, ça complique les choses, tu ne pouvais pas deviner.

Bonne fin de soirée

J'avais trouvé. Merci

Je voudrais aussi bloquer le nombre de chiffre dans les cellules B7, C7, E7, F7, G7, I7 et d'autres. J'aimerais que si on saisie 6 chiffres cela n'enregistrer pas le chiffre et que cela mette un message d'alerte. Comment faire ?

Edit : Quand je clique sur le bouton pour réinitialiser, y a des cases qui se mettent en bleutées et mon curseurs va sur la cases B7. On peut supprimer cela ? La macro peut elle s'activer automatiquement dès l'ouverture du fichier ?
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Bouton Réinitialiser

Hello,

matthieu2701 à dit:
J'aimerais que si on saisie 6 chiffres cela n'enregistrer pas le chiffre et que cela mette un message d'alerte. Comment faire ?

Pour cela il te suffit de :
-> sélectionner la(es) cellule(s)
-> cliquer sur "données" / "validation" / onglet "options"
-> dans la zone "autoriser", sélectionner "longueur du texte"
-> dans la zone "données" sélectionner "inférieure ou égale" ou "compris entre".
-> ...

Puis valider en cliquant sur "Ok".

Concernant tes cellules en bleuté, c'est peut-être dû à une mise en forme automatique?

Quand au curseur qui va sur la cellule B7 à la fin de la macro, c'est surement parce que tu as dû modifier la macro. Par exemple en rajoutant la ligne de code suivante :
Range("B7").select

Si tu veux que lorsque la macro est fini, la cellule A1 soit sélectionné, il te suffit de mettre à la fin de ta macro :
Range("A1").select


matthieu2701 à dit:
La macro peut elle s'activer automatiquement dès l'ouverture du fichier ?

Oui, pour cela il te suffit de :
-> mettre ta macro non pas dans "module1" ou "module2" ou "module...", mais dans la feuille concerné.
-> modifier la première ligne de ta macro. Pour l'instant tu dois avoir un truc dans ce genre :

Remplacer cela par :
Private Sub Workbook_Open()

Bon courage et bonne fin de soirée
 

matthieu2701

XLDnaute Occasionnel
Re : Bouton Réinitialiser

Hello,


Oui, pour cela il te suffit de :
-> mettre ta macro non pas dans "module1" ou "module2" ou "module...", mais dans la feuille concerné.
-> modifier la première ligne de ta macro. Pour l'instant tu dois avoir un truc dans ce genre :


Remplacer cela par :


Bon courage et bonne fin de soirée

Si je remplace, il ne reconnais plus la macro
 

Excel-lent

XLDnaute Barbatruc
Re : Bouton Réinitialiser

Bonsoir,

Ah oui, cela me fait pensé, j'ai oublié un point important.

Dans la macro, devant Range("B.... il faut rajouter :

Sheets("nom de l'onglet en question").Range("B...

Sinon concernant le bouton pour lancer la macro, il ne sert plus à rien, tu peux l'effacer.

Une fois tout cela fait, tu ne devrais plus avoir de souci.

Bonne fin de soirée
 

matthieu2701

XLDnaute Occasionnel
Re : Bouton Réinitialiser

Bonsoir,

Ah oui, cela me fait pensé, j'ai oublié un point important.

Dans la macro, devant Range("B.... il faut rajouter :

Sheets("nom de l'onglet en question").Range("B...

Sinon concernant le bouton pour lancer la macro, il ne sert plus à rien, tu peux l'effacer.

Une fois tout cela fait, tu ne devrais plus avoir de souci.

Bonne fin de soirée

A quoi sert le Sheets ? Si j'ai pas de bouton, comment activer la reinitialisation ?

Sinon, j'en suis là
 

Pièces jointes

  • Fiche de redress.xls
    50.5 KB · Affichages: 107
  • Fiche de redress.xls
    50.5 KB · Affichages: 110
  • Fiche de redress.xls
    50.5 KB · Affichages: 118
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Bouton Réinitialiser

Salut Matthieu2701,

matthieu2701 à dit:
A quoi sert le Sheets ?

Dans la macro faite au début, on indiquait juste les cellules dont il fallait supprimer le contenu.

A aucun moment on ne précisait la feuille (=onglet) sur laquelle agir.

Donc par défaut il faisait cela sur la feuille active. Or comme ton bouton était sur la "Feuil1", la feuille active était forcément l'onglet "Feuil1" lorsqu'on lancait la macro (donc pas besoin de le dire, cela serait redondant).

Toutes mes excuses, la macro il ne fallait pas mettre la macro sur "Feuil1" mais sur "ThisWorkbook", donc dans ce cas il faut préciser le nom de l'onglet où travailler, car lorsque le fichier s'ouvre, il n'est pas forcément sur l'onglet "Feuil1"

Cf. fichier ci-joint.

matthieu2701 à dit:
Si j'ai pas de bouton, comment activer la reinitialisation ?

Ben comme tu as demandé précédemment! La réinitialisation se lance automatiquement, à chaque ouverture du fichier. Ce n'est pas ce que tu voulais?

Ton message #9 :
matthieu2701 à dit:
La macro peut elle s'activer automatiquement dès l'ouverture du fichier ?

Bonne fin de soirée
 

Pièces jointes

  • Fiche de redress corrigé.xls
    40.5 KB · Affichages: 125
Dernière édition:

matthieu2701

XLDnaute Occasionnel
Re : Bouton Réinitialiser

Je veux laisser le bouton.

Quand je demande que la macro s'active à l'ouverture c'est par ce qu excel me demande à chaque fois "voulez vous activer les macro ?"
Je voudrais qu'il me le demande plus et qu'elle soit active d'office.

Edit : Dans ton fichier "fiche de redress corrigée" je ne vois pas de macro ? Quand je clique sur le bouton pour réinitialiser il me dis qu'il n'y a pas de macro
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
100
Réponses
4
Affichages
183

Statistiques des forums

Discussions
312 104
Messages
2 085 344
Membres
102 865
dernier inscrit
FreyaSalander