Effacer cellules sans effacer les formules

Résolu/Fermé
simkmil
Messages postés
378
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
6 juin 2022
- 9 avril 2021 à 16:23
yg_be
Messages postés
19567
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 juillet 2022
- 10 avril 2021 à 16:21
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

yg_be
Messages postés
19567
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 juillet 2022
1 131
9 avril 2021 à 16:42
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?
0
yg_be
Messages postés
19567
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 juillet 2022
1 131
9 avril 2021 à 16:43
bonjour simkmil, je n'avais pas fait attention au nom avant d'avoir répondu.
0
SimKmil > yg_be
Messages postés
19567
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 juillet 2022

9 avril 2021 à 17:44
eh oui, c'est encore moi!
comme il faut passer le temps en ces temps de confinement, je me suis remis au VBA, étudié il y a assez longtemps. Et ici je tente de faire une facture.
J'ai fais une feuille avec les données de tous les clients fictifs
ensuite, j'ai créé le corps de ma facture
et enfin, une feuille récapitulative des différentes factures.
Tout cela fonctionne grâce notamment à des parties de code pour lesquels tu m'as déjà aidé.
Après avoir réalisé une facture, et l'avoir sauvegardée, j'incrémente son numéro de +1 et je passe à la facture suivante. Mais pour cela, je dois vider les différentes cellules.
Or j'avais mis les noms dans une liste déroulante (qui va les chercher sur ma feuille de données) et j'avais fait une RECHERCHEV pour aller chercher les autres instruction soit Prénom, adresse, code postal , localité, n° de TVA.
Ma rechercheV fonctionne très bien sauf que ... j'ai ensuite sélectionné les cellules à vider avec : Sheets("Facture").Range("E15:E35").ClearContents
et là, ma formule rechercheV disparait. Voilà pourquoi je posais cette question.
J'ai pensé à laisser tout effacer et par VBA aller rechercher les informations à chaque client, mais je bloque bien qu'ayant regardé quelques forums la-dessus.
Merci de ton aide.
0
yg_be
Messages postés
19567
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 juillet 2022
1 131 > SimKmil
9 avril 2021 à 18:07
as-tu une question?
je ne suis pas certain de comprendre pourquoi il faut vider les cellules pour passer à la facture suivante.
les formules ne peuvent-elles pas aller chercher les infos de la facture suivante? il y a une ligne par facture?
0
simkmil
Messages postés
378
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
6 juin 2022
29 > yg_be
Messages postés
19567
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 juillet 2022

10 avril 2021 à 10:18
Bonjour,
les cellules que je veux vider sont celles des noms, adresse, n° TVA , quantités et désignation, ceci afin d'avoir une facture vierge pour le client suivant.
merci de ton aide
0
yg_be
Messages postés
19567
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 juillet 2022
1 131 > simkmil
Messages postés
378
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
6 juin 2022

Modifié le 10 avril 2021 à 11:03
ces formules seront modifiées pour la facture suivante? par quoi seront-elles modifiées?
0
cs_Le Pivert
Messages postés
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
711
9 avril 2021 à 17:43
0
simkmil
Messages postés
378
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
6 juin 2022
29
10 avril 2021 à 10:39
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
0
cs_Le Pivert
Messages postés
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
711
10 avril 2021 à 11:36
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
0
yg_be
Messages postés
19567
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
4 juillet 2022
1 131 > cs_Le Pivert
Messages postés
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022

10 avril 2021 à 11:43
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.
0
simkmil
Messages postés
378
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
6 juin 2022
29 > cs_Le Pivert
Messages postés
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022

10 avril 2021 à 15:29
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.
0