Bonjour !
Comment créer un bouton reset qui me permettrai d'effacer toutes mes données sauf certaine colonne
par exemble la colonne A , E , G !!
Merci
Version imprimable
Bonjour !
Comment créer un bouton reset qui me permettrai d'effacer toutes mes données sauf certaine colonne
par exemble la colonne A , E , G !!
Merci
Bonjour,
Définissez une zone à effacer en utilisant la zone de nom:
* Sélectionnez toute la page exceptée les 3 colonnes que vous avez indiquées.
* Dans la zone de noms, tapez un texte ( par exemple "ZoneEffacement" ), et validez par la touche [Entrée]
Ensuite il vous suffira:
* de sélectionner la zone en utilisant la zone de nom qui permet la sélection de celle-ci, puis d'appuyer sur la touche [Suppr] de votre clavier
* Ou par VBA: Range("ZoneEffacement").Clear
Bonjour,
En deux étapes, sous excel 2003 :
1- Création du bouton de commande :
- Affichage/Barre d'outils/Boîte à outils contrôles
- cliquez sur l'icône "Bouton de commande" (rectangle gris)
- dessinez le bouton, dans la feuille qui nécessite le "reset"
- clic droit sur le bouton / Objet / Editions : remplacer CommandButton1 par Reset
- clic n'importe ou dans la feuille puis double clic sur le bouton, une fenêtre Microsoft Visual Basic s'ouvre avec deux lignes de code :
2- Le code VBA à affecter à ce bouton :Code:
1
2
3 Private Sub CommandButton1_Click() End Sub
Entre ces deux lignes, vous devez placer ces quelques lignes de code pour obtenir :
- fermez la fenêtre Microsoft Visual Basic pour revenir sur la feuilleCode:
1
2
3
4
5
6
7
8 Private Sub CommandButton1_Click() Dim Plage As Range Set Plage = Application.InputBox("Sélectionnez la plage à effacer!", "Sélection", Type:=8) With Plage .ClearContents End With End Sub
- Dans la barre d'outils "boîte à outils contrôles", cliquez sur : "désactiver le mode création" (icône avec une équerre bleue, un crayon et une règle)
Testez en cliquant sur le bouton. !!!! Testez cette macro sur une copie de votre fichier initial, sous peine de perte définitive des données !!!!
Une boîte de dialogue s'ouvre en vous demandant de sélectionner la plage à supprimer. Ceci pourra être adapté si cette plage ne fluctue jamais.
Si cette plage est amenée à changer, d'autres méthodes pourront également être envisagées avec de plus amples précisions.
Vous dites...
Merci ca efface bien les valeurs comme je voulais ...
...Mais j'ai beaucoup de mais ;)
1er => comment faire pour effacer les commentaires
2eme => efface les commentaires mais n'efface pas les formules
3eme => lorsque j'appui sur reset les valeurs de la colonne C par exmple ce mets en colonne A
Merci pour l'aide
re
Du coup pour le probléme des formules ! J'ai testé de verrouiller les cellules avec formule !! mais quand je selectionne avec le bouton reset la macro mets une erreur pour dire que c verouillé !!
Comment eviter que la macro me mette une erreur tout en utilisant la methode verrouillé
Merci
Partant du principe qu'une formule commence par le signe =, il convient de tester ça dans chaque cellule.
La macro qui suit teste toutes les cellules 1 par 1 dans ta plage sélectionnée et si elle ne contient pas de formule supprime le contenu (ClearContents) et l'éventuel commentaire (ClearComments) :
Pour que tes données en colonne C se retrouve en colonne A, il faut que ...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub CommandButton1_Click() Dim Plage As Range, Cel As Range Set Plage = Application.InputBox("Sélectionnez la plage à effacer!", "Sélection", Type:=8) For Each Cel In Plage 'pour chaque cellule dans la plage sélectionnée If Left(Cel.Formula, 1) <> "=" Then 'si la cellule ne contient pas de formule With Cel 'dans la cellule .ClearContents 'supprime le contenu .ClearComments 'supprime le commentaire End With End If Next End Sub
tu supprimes les colonnes A et B.
Merci beaucoup!
Mais par rapport a ma derniére question !!
Enfaite j'ai des donées 2010 en colonne A et en colonne C des données de 2011
Et dés que je fais un reset les valeurs de 2011 vont en colonne A et ainsi en colonne C je pourrais saisir mes valeurs 2012 , ainsi de suite chaque années
Ca me permet de faire une seule saisie (celle de 2012 en colonne C)
ET ainsi pas besoin de copié ou résaisir les valeurs 2011 dans la colonne A car elle ce feront automatiquement
Et bien pour ta dernière question il m'en faut davantage... J'ai pour cela consulté ma boule de cristal, mais la structure de ton classeur reste floue...
- Que supprimes tu grâce au code que je t'ai donné? Qu'elle est la plage de cellules que tu supprimes?
- Qu'y a t'il en colonne B ? des données que tu souhaites conserver?
- Toutes les lignes de la colonne C sont elles concernées ou seulement certaines?
Voila en PJ
Encore Merci
Pour confirmer (avant de faire une bêtise...) tu veux :
1- conserver les colonnes : A, B, C ...,G, H et K et L
2- les autres colonnes, on supprime tout à partir de la ligne 7
Sauf cas particulier de M et N que l'on copie/colle d'abord sur I et J puis on supprime (M et N, on conserve I et J avec les nouvelles valeurs).
C'est bien cela?
Si oui, il faudrait me donner la limite inférieure, soit la dernière ligne saisie. Si elle n'est pas fixe, il faudrait me donner la colonne la "plus longue".
Tu dis...
bonjour a tous les deux
il est marrant ce pijaku:mouarf:
en fait ce qu'il demande c'est quand il a supprimer les données il veux placer ce qui est en colonne b en a tout simplement mais moi aussi ma boule de cristal elle est félée je vois pas bien :mouarf:
au plaisir
1- Je veux conserver les colonnes A à H
2- Ensuite a partir de I on efface tout à partir de la ligne 7 sauf les formules
3- A la suite de mon reset les valeurs des colonnes M et N passe en I et J
dernier ligne 14
colonne la plus longue AT
C cela que tu as besoin ??
Merci
Essaye ce fichier et dis moi...
@Patrick : Oui j'avais bien compris comme toi, mais en fait, en cas de suppression, j'aime bien demander un max d'infos. On ne sait jamais... En l'occurence, sur ce coup, j'ai eu raison car il ne s'agissait pas des colonnes C et A... mais M, N en I et J...
Bonne fin de journée
Merci !!
C exactement ce qu'il me faut!! mais ca efface les formules !!
Et je n'arrive pas a mettre en adéquation ce que tu m'avais fait ce midi
2345678910111213Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub CommandButton1_Click() Dim Plage As Range, Cel As Range Set Plage = Application.InputBox("Sélectionnez la plage à effacer!", "Sélection", Type:=8) For Each Cel In Plage 'pour chaque cellule dans la plage sélectionnée If Left(Cel.Formula, 1) <> "=" Then 'si la cellule ne contient pas de formule With Cel 'dans la cellule .ClearContents 'supprime le contenu .ClearComments 'supprime le commentaire End With End If Next End Sub
Merci
Bonjour,
ça efface tes formules? Excuse moi, dans le classeur que tu m'as passé, il n'y avait aucune formule dans les cellules que j'avais programmé de supprimer...
Bon voici le code de la macro qui, je l'espère, résoudra ton souci :
Code:
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 Private Sub CommandButton1_Click() Dim Plage As Range, Cel As Range 'Etape 1 : On supprime la plage I7:J14 Set Plage = Range("I7:J14") For Each Cel In Plage 'pour chaque cellule dans la plage sélectionnée If Left(Cel.Formula, 1) <> "=" Then 'si la cellule ne contient pas de formule With Cel .ClearContents 'supprime le contenu .ClearComments 'supprime le commentaire End With End If Next 'Etape 2 : 'On copie/colle les valeurs contenues dans M et N en I et J Range("M7:N14").Copy Range("I7") 'Etape 3 : 'On supprime les contenus et commentaires des colonnes M à AT Set Plage = Range("M7:AT14") For Each Cel In Plage 'pour chaque cellule dans la plage sélectionnée If Left(Cel.Formula, 1) <> "=" Then 'si la cellule ne contient pas de formule With Cel .ClearContents 'supprime le contenu .ClearComments 'supprime le commentaire End With End If Next Set Plage = Nothing End Sub
bonjour à tous
je vous fais ce petit message pour savoir si vous pouvez m'aider un peu en VBA. en effet j ai un problème qui es similaire à celui que tu a été résolu il y a de cela 10 ans https://www.developpez.net/forums/d1...-d-formulaire/
En faite j ai fait un formulaire VBA(qui exécute un calcul); où je cachais toute les informations avec la commande Me.Hide; il fonctionne comme je veux mais le seul probléme est que lorsque je veux relancer le nouveau calcul il y a encore les informations du precedent calcul. J aimerais bien savoir si sur mon 1er Userform je peux appliquer une commande qui va decharger toute les autres userforms. voici le code de mon 1er Userform
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub b_ok_Click() If Me.TextBox1 = "toto" Then MsgBox "!!!!veuillez remplir toutes les cellules avant de lancer le Calcul!!!!" Me.Hide Else MsgBox "erreur" Me.TextBox1 = "" Me.TextBox1.SetFocus End If USF_Acc.Show End Sub