Effacer une cellule avec VBA

  • Initiateur de la discussion Fred
  • Date de début
F

Fred

Guest
Bonsoir

Quelqu'un saurait-il comment effacer le contenu d'une cellule avec VBA ??

Voici mon code :

Sub REMISE_A_ZERO()
'macro REMISE A ZERO
'Sélection de la feuille
'sheet ("STATS").select
If Range("A1") = 1 Then 'si A1 est égale à 1 alors
Range("G7") = X 'inscrire X en G7 sinon
Range("G7") = "" 'Effacer le contenu de la cellule G7
End If
End Sub


Merci à toutes et à tous.
 
J

Jean-Marie

Guest
Bonsoir Fred

Sub REMISE_A_ZERO()
'macro REMISE A ZERO
'Sélection de la feuille
'sheet ("STATS").select
If Range("A1") = 1 Then 'si A1 est égale à 1 alors
Range("G7") = X 'inscrire X en G7 sinon
else
Range("G7") = "" 'Effacer le contenu de la cellule G7
End If
End Sub

Voilà

@+Jean-Marie
 
F

Fred

Guest
Bonsoir Jean Marie,

Je me suis peut être mal exprimé, quand je dis que je veux effacer la cellule en G7 c'est après qu'il ai mis le X et non pas si A1 n'est pas égal à 1.

En résumé je voudrais que excel mette un X quand je clique sur le bouton et efface aussitôt la cellule. (Mais qu'il ne mette pas un zéro ou autre chose, il faut que la cellule soit vide (Pas chiant déjà !!!! MDR))


Ah au fait, la formule VBA que tu m'as faite hiers soir, pour cumuler une cellule et la remettre à zéro une autre celulle à chaque fois click sur un bouton, fonctionne à merveille, je l'ai adaptée pour mon tableau. Un vrai bonheur.
Merci encore.
 
J

Jean-Marie

Guest
Re...

Sub REMISE_A_ZERO()
'macro REMISE A ZERO
'Sélection de la feuille
'sheet ("STATS").select
If Range("A1") = 1 Then 'si A1 est égale à 1 alors
Range("G7").Value = "X" 'inscrire X en G7 sinon
Range("G7").Value = "" 'Effacer le contenu de la cellule G7
End If
End Sub

Ne pas oublie le .Value

@+Jean-Marie
 
@

@+Thierry

Guest
Bonsoir Fred, re Jean Marie, le Forum

Je me fais une pose "récréation" dans le forum pendant un développement VBA...

Humm je ne vois pas la différence entre la première macro de Fred et celle que tu viens de mettre en ligne Jean Marie ?

La Propriété Value est la Propriété par défaut pour un objet Range, elle est sous entendue si non spécifiée.

Mais de toute manière je ne comprends pas ce que veux faire Fred ?

J'ai tout à fait compris comme Jean Marie qui manquait le Else mais maintenant je ne comprends rien du tout ?

Dis-toi bien qu'aucune formule ne va capter le "X" pendant l'exécution de la macro, Fred, car entre le moment où le "X" va être écrit et effacé, en une "nano seconde", il ne va rien se passer ailleurs.... Donc je ne comprends pas le concepte même de ce que tu cherches à faire ?

@Suivre
@+Thierry
 
J

Jean-Marie

Guest
Re

Fred, il faut impérativement si le sujet traite d'un ancien message de conservé le même fil. Parce que la Thierry il comprend plus, et il va revenir à la charge.

Thierry épargne toi cette peine, je vais de lui dire.

@+Jean-Marie
 
@

@+Thierry

Guest
Héhéhé Jean Marie

Non non je ne dit rien...

J'ai vu ce fil Lien supprimé du bureau hier et je me suis d'ailleurs dit... "et bien Jean Marie, de mieux en mieux en VBA" ;-) car ta réponse était parfaite avec didactitilel et tout et tout !

La question du jour est bien différente et n'a rien à voir avec ce qui a été posé hier et bien résolu...

J'ai juste l'impression que notre ami Fred pédalle dans la choucroutte çà oui !! lol

Bon Courage à Toi Jean Marie (et à Fred aussi bien sûr :)

@+Thierry
 
F

Fred

Guest
Merci à vous deux Thierry et Jean Marie,

Vous êtes une vraie fontaine à savoir pour moi sur excel et VBA et je me goinfre de vos renseignements.

Sinon pour faire suite à ma requête, j'ai modifié le code de la sorte :

Sub REMISE_A_ZERO()
'macro REMISE A ZERO
'Sélection de la feuille
'sheet ("STATS").select
If Range("A1") = 1 Then 'si A1 est égale à 1 alors
Range("G7") = "x" 'inscrire X en G7
Range("G7") = "" 'Effacer le contenu de la cellule G7

End If
End Sub

J'y ai supprimé les .value et j'ai ajouté, et c'est surtout cela qui me manquait tout à l'heure, les guillements pour le X.

Pour répondre à ta question Thierry, ma macro fait donc :
vérifie la présence de 1 dans A1, mets un X dans G7 et efface la cellule aussitôt après. De la sorte ma cellule ce formate comme je le voulait !!! Dire que c'était juste les petites guillements qui me gênait. Donc la nanoseconde suffit au reste des formules de mon tableau pour qu'il se mette à son tour à zéro.

Si cela vous intéresse je peut vous faire parvenir mon fichier pour que vous vous rendiez compte de ce que j'ai fais (ici il ne passe pas il fait plus de 50 Ko)

Merci encore, j'apprend énormément avec vous.

Par contre, je sais que ce que je vais dire n'a rien à voir avec la question de départ, mais je suis entrain de mettre toutes les cellules des tableau en forme conditionnelle (pour que chaque accident s'affiche en rouge lors de la validation) et je me demande s'il n'y a pas un truc pour mettre tout le tableau en une fois en forme conditionnelle que de le faire cellule par cellule. ??!
 
J

Jean-Marie

Guest
Bonjour, Fred

Si c'est possible

Je te donne un exemple :

un tableau de A1:Z100, c'est la valeur de la cellule de chaque ligne de la colonne A qui détermine la mise en forme conditionnelle, quand cette valeur est égale à 1 je met toute la ligne du tableau en rouge.

1) Sélectionne ton tableau A1:Z100
2) Clique sur le menu Format/Mise en forme conditionnelle ...
3) Choisi "la formule est" à la place de "la valeur de la cellule est", en cliquant dessus
4) dans le champ de saisie tape ceci =$A1=1
5) je change le format, pour du rouge
6) valide, valide

Bonne journée

@+Jean-Marie
 
F

Fred

Guest
merci Jean Marie, mais dans mon cas malheureusement les fonctions des cellules de mon tableau sont touttes différentes dont je ne peux pas faire de A...:A....

Pas grave je vais le faire cellule cellule, j'en ai 980 !!!

Bah c'est une histoire de 2 à 3 heures.

Merci encore.
 
@

@+Thierry

Guest
Re Salut à Vous Deux

Euh juste avant d'aller écrire à la main dans 980 Cellules Fred !!!

Regardes cette Démo :

=> Lien supprimé (19k)

Tu verras que VBA peut te les écrire aussi...

Bon Courage
@+Thierry
 
J

Jean-Marie

Guest
Re...

Fred pour t'épargné beaucoup de boulot, il était plus simple de sélectionner les plages des cellules D11:D36; D40:J65 ...... et de mettre cette formule =D11 et modifier le format, de valide 2 fois.

Sais pas grave

Bonne soirée quand même

@+Jean-Marie
 

Discussions similaires

Statistiques des forums

Discussions
312 472
Messages
2 088 715
Membres
103 932
dernier inscrit
clotilde26