Effacer cellules sans effacer les formules [Résolu]

Signaler
Messages postés
312
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
16 avril 2021
-
Messages postés
15289
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 avril 2021
-
Bonjour, j'ai le code suivant :
Sheets("Facture").Range("E7:E9").ClearContents 'vider l'entete client-Nom

Sheets("Facture").Range("E10").ClearContents 'vider l'entete client-Prénom
Sheets("Facture").Range("G10").ClearContents 'vider l'entete client-reste de l'entete
Sheets("Facture").Range("B12").ClearContents ' vider le nr tva
Sheets("Facture").Range("A15:A34").ClearContents 'vider les quantités
Sheets("Facture").Range("F15:F34").ClearContents 'vider les prix unitaires
Sheets("Facture").Range("E15:E35").ClearContents 'vider les codes tva


Sheets("Facture").Range("B15:B34").ClearContents 'vider les prix unitaires

en utilisant ce code, mes cellules sont effectivement vidées, mais les formules qu'elle contenaient ont également disparu.
Je voudrais écrire un code en VBA qui viderait le contenu de ma cellule tout en lui laissant sa formule dans le but d'utilisation après.
Il s'agit ici d'un projet de facture pour laquelle je veux vider tous les éléments après l'avoir sauvegardée et avant de passer à la suivante.
Merci de votre aide

3 réponses

Messages postés
15289
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 avril 2021
837
bonjour,
je ne comprends pas trop l'idée d'effacer le contenu tout en gardant la formule. cela ne me semble pas possible.
si tu expliques plus précisément la globalité, nous pourrons peut-être te proposer une solution.
en quoi est-ce un soucis de garder les formules?
Messages postés
15289
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 avril 2021
837 > SimKmil
est-ce important de ne pas voir N/A?
pour éviter le N/A, il y a deux solutions possibles:
1) adapter la formule pour afficher autre chose que N/A si le recherchV ne trouve rien
2) ajouter un "faux client", et, au lieu de vider la cellule E7, y mettre le nom du faux client

pourquoi le corps de la facture n'est-il pas vidé?
Messages postés
15289
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 avril 2021
837 > SimKmil
quand tu écris "réintégrer les formules par VBA", tu peux faire cela de deux façons:
1) remettre la formule dans la cellule en utilisant le VBA
2) mettre des données dans la cellule en utilisant le VBA

je pense que le plus simple est de laisser les formules en place.
pourquoi est-ce important que la facture soit totalement vide avant de passer à la commande suivante?
Messages postés
312
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
16 avril 2021
26 >
Messages postés
15289
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 avril 2021

Je pense avoir résolu mon problème :
pour ce qui est du corps de la facture (Qté, Désignation, Taux TVA et Prix Unit , je n'ai pas de formule donc je peux effacer tout. Seule la colonne total possède une formule, elle sera vidée dès qu'il n'y aura plus rien en qté.
pour les noms etc, j'ai suivi ton idée, en supprimant le nom j'obtiens #/NA pour les autres cellules. Ce n'est rien sinon que je ne trouvais pas cela très élégant, alors j'ai cherché comment ôter cela et j'ai trouvé la formule sur Excel-Pratique:

=SI(ESTNA(RECHERCHEV(E7;'Données Client'!B3:F6;2;FAUX));"";RECHERCHEV(E7;'Données Client'!B3:F6;2;FAUX))

et ça marche !
Je te remercie de ton aide. j'ai maintenant un projet propre et net !
et comme je te l'avais dit, le seul but est d'un peu égayer ces jours de confinement où nous ne voyons personne.
Passe un excellent weekend et certainement à une prochaine fois.
Messages postés
15289
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 avril 2021
837 >
Messages postés
312
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
16 avril 2021

tu peux encore faire un peu plus simple:
=SIERREUR(RECHERCHEV(E7;'Données Client'!B3:F6;2;FAUX);"")

à plus!
Messages postés
15289
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 avril 2021
837 >
Messages postés
312
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
16 avril 2021

peux-tu alors marquer la discussion comme résolue?
Messages postés
7351
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2021
628
Messages postés
312
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
16 avril 2021
26
Merci de ton aide, je viens d'essayer, en effet cela fonctionne MAIS après je ne sais rien effacer !
toutes mes cellules sont bloquées par la protection.
Je t'envoie mon fichier, si tu veux y jeter un oeil.
Merci beaucoup
https://www.cjoint.com/c/KDkiLyvhfgI
Messages postés
7351
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2021
628
Comme ceci:

Sub supprimer()
Sheets("Facture").Unprotect
Sheets("Facture").Range("A15:G15").SpecialCells(xlCellTypeConstants, 3).ClearContents
Sheets("Facture").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


Voilà

@+ Le Pivert
Messages postés
15289
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 avril 2021
837 >
Messages postés
7351
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2021

la demande, ici, est d'effacer le contenu des cellules contenant des formules, sans toucher à la formule.
pas d'effacer le contenu de cellules ne contenant pas de formule.
Messages postés
312
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
16 avril 2021
26 >
Messages postés
7351
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2021

Merci, cs_LePivert,
voici la réponse que j'adresse à yg_be, et je te remercie en même temps pour t'être penché sur mon problème.
Bon Weekend à toi également.

Je pense avoir résolu mon problème :
pour ce qui est du corps de la facture (Qté, Désignation, Taux TVA et Prix Unit , je n'ai pas de formule donc je peux effacer tout. Seule la colonne total possède une formule, elle sera vidée dès qu'il n'y aura plus rien en qté.
pour les noms etc, j'ai suivi ton idée, en supprimant le nom j'obtiens #/NA pour les autres cellules. Ce n'est rien sinon que je ne trouvais pas cela très élégant, alors j'ai cherché comment ôter cela et j'ai trouvé la formule sur Excel-Pratique:

=SI(ESTNA(RECHERCHEV(E7;'Données Client'!B3:F6;2;FAUX));"";RECHERCHEV(E7;'Données Client'!B3:F6;2;FAUX))

et ça marche !
Je te remercie de ton aide. j'ai maintenant un projet propre et net !
et comme je te l'avais dit, le seul but est d'un peu égayer ces jours de confinement où nous ne voyons personne.
Passe un excellent weekend et certainement à une prochaine fois.