Figer les Valeurs d'une sélection

Bonjour à tous,

Débutant dans la programmation VBA, je fais donc appel à votre patience. Je comprends vite mais il faut parfois m'expliquer longtemps .

Je travail sur la conception d'un classeur pour la rédaction de mes rapports d'activité mensuelle. Pour cela j'entre les données d'autres classeurs et établi la synthèse sous forme de graphique.

J'édite ensuite le rapport mensuel puis lance une VBA (RAZ Valeurs) qui rend le classeur vierge de données pour le mois suivant.

Cependant, je souhaite conserver l'historique des valeurs des mois précédents pour la synthèse annuelle.

Je cherche donc comment pouvoir figer les valeurs (supprimer les Formules ou références croisées tout en conservant la valeur) de certaines cellules sur une feuille du classeur avant d'utiliser ma fonction RAZ?

Sur cette feuille se trouvent différents tableaux ayant une structure identique.

L'idéal serait de pouvoir sélectionner les cellules à figer selon le mois de l'année (à cocher dans une MsgBox par exemple). J'ai découvert que la fonction UserForm serait la plus appropriée pour cela toutefois je suis incapable de programmer cela.

Je vous joins la feuille en question.

Pouvez-vous m'aider à la compréhension et dans la programmation de cette fonction?

D'avance merci,

Bonne Journée

Bonjour,

Consulte ce lien https://forum.excel-pratique.com/viewtopic.php?t=16931

Cordialement

Bonjour ddetp88,

Oui effectivement la ligne de code pour le copier/coller valeurs fonctionne. Cependant dans mon cas je dois cocher les mois dont je souhaite conserver et figer les valeurs. il me faut donc créer un liste de sélection sous forme d'un "MsgBox" à choix multiple avant l’exécution de la VBA.

Cordialement

re,

Nous allons procéder en deux temps si ce que je t'ai fait n'est pas suffisant.

Tu sélectionnes avec la souris les cellules dont tu veux conserver les valeurs et effacer les formules.

Tu cliques sur le bouton RAZ et regarde le résultat. Est-ce que c'est ce que tu veux?

Dis moi!

Cordialement

Ce n'est pas évident à expliquer et encore moins à comprendre à distance, toutefois pour éclaircir un point, la "VBA RAZ" que j'utilise à pour but de vider les données rapportées pour établir mon rapport mensuel et repartir de zéro pour le mois suivant.

Actuellement, si je l'utilise en l'état, je perd celles que je souhaite conserver pour l'historique annuel. Je dois donc figer ces données avant de RAZ le classeur.

Manuellement, un "copier/coller les valeurs" dans les cases des mois qui ont été complétés fonctionne (Janvier/Février/Mars pour cette année par exemple), cependant je pense qu'il est possible de simplifier cette opération via une Macro.

Problème:

Si j'applique ta formule à toutes mes cellules du tableau, je conserve bien les valeurs précédemment rentrées mais je perds les formules nécessaires à l'établissement du mois suivant.

Si je les applique aux cellules du mois concerné , cela fonctionne pour le mois en cours mais pas les suivants.

Il est donc impératif de pouvoir sélectionner le mois à figer avant l’exécution de la Macro.

Ce n'est pas évident à expliquer et encore moins à comprendre à distance, toutefois pour éclaircir un point, la "VBA RAZ" que j'utilise à pour but de vider les données rapportées pour établir mon rapport mensuel et repartir de zéro pour le mois suivant.

Désolé, mais effectivement je ne comprends pas. Quand tu dis "la "VBA RAZ que j'utilise" elle est où ?

Tu veux supprimer les formules et garder les données ou supprimer les données et garder les formules ?

Ce que tu veux, c'est que les formules restent dans le premier tableau et que dans les autres tableaux il ne reste que les valeurs ?

Il faut que je comprenne sinon je serai obligé de laisser la main à d'autre qui auront plus de chance de te comprendre.

Cordialement

Mettons de côté la "VBA RAZ". En voulant trop détailler le contexte, je rend la compréhension plus difficile.

Je te joins un nouveau tableau plus simplifié qui je l'espère te permettra de mieux interpréter le besoin.

Est-ce plus clair?

Je ne peux pas envoyer le fichier complet qui contient des informations que je ne peux divulguer.

re,

C'est plus clair, je fais un truc et je te le soumets.

Merci pour le temps accordé

re,

Fais un test et dis moi.

Cordialement

Bonjour ddept88,

Cela fonctionne parfaitement ... un grand merci à toi.

En revanche je ne trouve pas la programmation de ta macro pour l'exporter sur mon fichier de base et essayer d'interpréter et comprendre celle-ci?

Cordialement

Re,

Dans l'userform !

img1

Bonne journée

Bonjour ddept88,

Cela fonctionne parfaitement ... un grand merci à toi.

En revanche je ne trouve pas la programmation de ta macro pour l'exporter sur mon fichier de base et essayer d'interpréter et comprendre celle-ci?

Cordialement

Merci de ton retour. dans l'intervalle je l'avais trouvé .

Dis donc, je n'aurai jamais su faire cela moi-même. Encore merci à toi.

Je viens de le placer dans mon fichier de base et j'ai un soucis avec la ligne suivante:

Range(Plage).Copy

pour info le message est: la méthode range de l'objet global à échoué

Il faut déclarer la variable Plage en Public.

Tape en tête d'un module de ton fichier :

Public Plage

C'est une variable qui sert dans la sous procédure "Efface"

Cordialement

Il faut déclarer la variable Plage en Public.

Tape en tête d'un module de ton fichier :

Public Plage

C'est une variable qui sert dans la sous procédure "Efface"

Cordialement

Il est vraiment très fort.... Mille Merci à toi cela semble fonctionner à merveille.

J'analyse la programmation et pense l'avoir comprise. Je ne manquerai pas de revenir vers toi si besoin.

Encore bravo et merci.

Super, content d'avoir pu solutionner ton problème. Quoique au début j'ai eu du mal

Pense à passer le fil en résolu et bonne suite à ton projet.

Rechercher des sujets similaires à "figer valeurs selection"