IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment Effacer des valeurs mais pas les formule dans une feuille XLS en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club Avatar de JemaCodeur
    Homme Profil pro
    Amateur
    Inscrit en
    Avril 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 60
    Points : 38
    Points
    38
    Par défaut Comment Effacer des valeurs mais pas les formule dans une feuille XLS en VBA
    Bonjour à tous,

    J'ai un fichier XLS avec des formules et de Validations de données.
    Toutefois, quand j'appui sur le bouton Suppr toutes les valeurs s'effacent ainsi que les formules.

    Je vous serais reconnaissant de m'aider à remédier à ce problème.

    Merci d'avance.
    JemaCodeur


    Version : Excel 2010

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 405
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 405
    Points : 16 245
    Points
    16 245
    Par défaut
    Bonjour

    La solution passe par F5 (que tu peux automatiser) une fois la logique comprise et testée avec l'enregistreur

    Sélection des constantes...

    http://www.excel-formations.fr/Trucs...s/ToucheF5.php
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je ne comprends pas ce que tu demandes.
    Tu voudrais qu'une cellule contienne une formule mais n'affiche pas son résultat ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour à vous, Bonjour le Forum,

    C'est peut-être là où veut en venir Chris que je salue au passage.

    La méthode SpecialCells décrites dans cet espace te serait utile pour supprimer ces cellules d'un bloc.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  5. #5
    Nouveau membre du Club Avatar de JemaCodeur
    Homme Profil pro
    Amateur
    Inscrit en
    Avril 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 60
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Je ne comprends pas ce que tu demandes.
    Tu voudrais qu'une cellule contienne une formule mais n'affiche pas son résultat ?
    Salut Menhir,

    Ce que je veux concrètement c'est quand je mets une formule qui génère un valeur, quand j'appuie sur Suppr pour effacer la valeur générée que la forme ne s'efface pas.

  6. #6
    Nouveau membre du Club Avatar de JemaCodeur
    Homme Profil pro
    Amateur
    Inscrit en
    Avril 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 60
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par MarcelG Voir le message
    Bonjour à vous, Bonjour le Forum,

    C'est peut-être là où veut en venir Chris que je salue au passage.

    La méthode SpecialCells décrites dans cet espace te serait utile pour supprimer ces cellules d'un bloc.
    Salut MarcelG,

    J'avoue c'est pas exactement ce que je veux faire ou bien c'est moi qui ai mal compris ta réponse.

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par JemaCodeur Voir le message
    Ce que je veux concrètement c'est quand je mets une formule qui génère un valeur, quand j'appuie sur Suppr pour effacer la valeur générée que la forme ne s'efface pas.
    Ca n'est pas possible.
    Quand on met une formule dans une cellule, c'est généralement pour afficher son résultat.
    La seule chose que tu peux éventuellement faire, c'est rendre ce résultat invisible en mettant une couleur de police identique à la couleur de remplissage de la cellule.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Nouveau membre du Club Avatar de JemaCodeur
    Homme Profil pro
    Amateur
    Inscrit en
    Avril 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 60
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Ca n'est pas possible.
    Quand on met une formule dans une cellule, c'est généralement pour afficher son résultat.
    La seule chose que tu peux éventuellement faire, c'est rendre ce résultat invisible en mettant une couleur de police identique à la couleur de remplissage de la cellule.
    Ah oui vous êtes sûre ? Car j'ai cherché dans le et j'ai trouvé ce bout de code qui correspond à ce que je veux faire.
    Par contre comme je suis Novice en VBA je ne sais pas comment m'y prendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:A10").SpecialCells(xlCellTypeConstants, 3).ClearContents

  9. #9
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 651
    Points : 5 769
    Points
    5 769
    Par défaut
    Bonjour,
    Citation Envoyé par JemaCodeur Voir le message
    Ah oui vous êtes sûre ? Car j'ai cherché dans le et j'ai trouvé ce bout de code qui correspond à ce que je veux faire.
    Je pense que tu as du mal exprimé ta demande, peut être que des captures d'écran avant/après sur un exemple simple pourrait aider.

    Par contre comme je suis Novice en VBA je ne sais pas comment m'y prendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:A10").SpecialCells(xlCellTypeConstants, 3).ClearContents
    Je ne comprend pas ton problème, si tu as trouvé un code qui correspond qu'Est-ce qui t'empêche de t'en servir ? un message d'erreur ?
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 955
    Points
    55 955
    Billets dans le blog
    131
    Par défaut
    Salut.

    Perso, je suis d'accord avec Menhir. Tu ne peux pas "supprimer le résultat des formules"

    Citation Envoyé par JemaCodeur Voir le message
    Salut Menhir,

    Ce que je veux concrètement c'est quand je mets une formule qui génère un valeur, quand j'appuie sur Suppr pour effacer la valeur générée que la forme ne s'efface pas.
    Dans la mesure où une formule génère toujours une valeur (c'est un peu le but, en fait), je ne comprends pas bien ce que tu veux dire, car tu ne peux pas "effacer la valeur générée".

    Tu peux effectivement effacer (pas supprimer) les constantes qui alimentent les formules, au moyen de SpecialCells, mais tes formules renverront TOUJOURS un résultat, quoi qu'il arrive au niveau des constantes saisies dans les cellules. Du coup, si tu effaces les constantes (que tu vides les cellules qui les contiennent), tu risques d'avoir des résultats "rigolos" comme réponses à tes formules...

    Nom : 2020-09-08_150403.png
Affichages : 618
Taille : 9,5 Ko


    Je suis curieux de savoir ce que tu souhaites réaliser


    Au passage, je me demande comment tu peux affirmer que le code que tu as trouvé dans la faq te convient si tu ne sais pas l'implémenter... re
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Nouveau membre du Club Avatar de JemaCodeur
    Homme Profil pro
    Amateur
    Inscrit en
    Avril 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 60
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Bonjour,

    Je pense que tu as du mal exprimé ta demande, peut être que des captures d'écran avant/après sur un exemple simple pourrait aider.


    Je ne comprend pas ton problème, si tu as trouvé un code qui correspond qu'Est-ce qui t'empêche de t'en servir ? un message d'erreur ?
    salut halaster08,

    Voici un exemple de tableau avec des listes déroulantes dépendantes.

    Nom : #1.PNG
Affichages : 613
Taille : 8,5 Ko

    Dans les colonnes grises on y trouve la formule ci-contre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTERREUR(RECHERCHEV($F17;Tableau_Lancer_la_requête_à_partir_de_axsql4[#Tout];2;FAUX));"";RECHERCHEV($F17;Tableau_Lancer_la_requête_à_partir_de_axsql4[#Tout];2;FAUX))
    Donc ce je veux faire c'est d'effacer les valeurs des cellules grises tout en maintenant les formules.

  12. #12
    Nouveau membre du Club Avatar de JemaCodeur
    Homme Profil pro
    Amateur
    Inscrit en
    Avril 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 60
    Points : 38
    Points
    38
    Par défaut
    Grâce à vos explication, je me suis rendu compte que cela n'est pas possible.
    Cependant, avez vous une idée de comment faire pour charger la formule en VBA de ce fait même si on efface la valeur générée la formule n'est pas supprimer.

    Merci pour l'attention portée à ma demande.

  13. #13
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 651
    Points : 5 769
    Points
    5 769
    Par défaut
    Pour mettre ta formule dans la cellule A1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").FormulaLocal = "=SI(ESTERREUR(RECHERCHEV($F17;Tableau_Lancer_la_requête_à_partir_de_axsql4[#Tout];2;FAUX));"""";RECHERCHEV($F17;Tableau_Lancer_la_requête_à_partir_de_axsql4[#Tout];2;FAUX))"
    Remplace A1 par n'importe quel plage où tu souhaite mettre ta formule
    ATTENTION, la formule est identique a celle que tu as posté à un détail près le doublement des " pour ne pas que VBA les considère comme un séparateur de texte
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  14. #14
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par JemaCodeur Voir le message
    Ah oui vous êtes sûre ? Car j'ai cherché dans le et j'ai trouvé ce bout de code qui correspond à ce que je veux faire.
    Par contre comme je suis Novice en VBA je ne sais pas comment m'y prendre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:A10").SpecialCells(xlCellTypeConstants, 3).ClearContents
    Cette ligne de code supprimera les cellule contenant des valeurs saisies.
    Par contre, pour les cellules contenant une formule, elle laissera affiché le résultat.

    Citation Envoyé par JemaCodeur Voir le message
    Cependant, avez vous une idée de comment faire pour charger la formule en VBA de ce fait même si on efface la valeur générée la formule n'est pas supprimer.
    Il serait beaucoup plus simple de modifier la formule en lui demandant d'afficher "" s'il n'y a rien à chercher, donc si la cellule correspondante dans la colonne des listes déroulantes est vide.
    Un simple SI() suffirait.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  15. #15
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 955
    Points
    55 955
    Billets dans le blog
    131
    Par défaut
    En ajoutant un test à test formules, tu pourrais "effacer" les résultats...

    Nom : 2020-09-08_155509.png
Affichages : 618
Taille : 12,9 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  16. #16
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par JemaCodeur Voir le message
    Dans les colonnes grises on y trouve la formule ci-contre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTERREUR(RECHERCHEV($F17;Tableau_Lancer_la_requête_à_partir_de_axsql4[#Tout];2;FAUX));"";RECHERCHEV($F17;Tableau_Lancer_la_requête_à_partir_de_axsql4[#Tout];2;FAUX))
    Ta formule en plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(RECHERCHEV($F17;Tableau_Lancer_la_requête_à_partir_de_axsql4[#Tout];2;FAUX));"")
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  17. #17
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 955
    Points
    55 955
    Billets dans le blog
    131
    Par défaut
    Renomme tes tableaux issus d'une requête, également. Ca simplifiera ta lecture...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  18. #18
    Nouveau membre du Club Avatar de JemaCodeur
    Homme Profil pro
    Amateur
    Inscrit en
    Avril 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2019
    Messages : 60
    Points : 38
    Points
    38
    Par défaut
    Vraiment merci à vous pour ces explication très instructive qui m'ont permis de régler mon problème.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Parcourir des boutons radio (option bouton) regroupé dans une feuille excel en vba
    Par rob1son76 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/02/2017, 14h26
  2. Réponses: 9
    Dernier message: 09/05/2013, 18h27
  3. Réponses: 5
    Dernier message: 22/07/2011, 18h13
  4. vider les valeurs mais pas les formules
    Par tomy7 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/02/2008, 14h31
  5. Sécuriser des documents mais pas les pages
    Par pasqwal dans le forum ASP
    Réponses: 2
    Dernier message: 01/09/2007, 01h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo