Variabiliser la vidange des champs

Bonjour à tous,

Je souhaiterai variabiliser le vidage des champs sur une feuille masquée.

Par variabiliser j'entends supprimer toutes les données à partir d'une ligné donnée.

Dans le fichier transmis ce sera par exemple , à partir de

Je suis certaine que c'est possible mais je ne me souviens plus comment on fait.

Quelqu'un aurai-til une idée?

Merci d'avance et cordialement,

Siga

32test-actua.xlsm (26.48 Ko)

Bonjour,

Que la feuille soit masquée ou non, les commandes sont les mêmes !

Elles s'éxécuteront pareillement.

Cordialement.

Bonjour

voila évite déjà les select

A+

Maurice

Feuil2.Range("C6:H26").ClearContents

Bonjour,

Si tu veux utiliser le numéro de la feuille ...

Sheets(2).Range("C6:H26").ClearContents

Si tu veux utiliser le nom de la feuille ...

Sheets("Feuil2").Range("C6:H26").ClearContents

ric

Select n'est pas une commande d'effacement...

Lorsqu'on veut effacer, on efface, on ne sélectionne pas !

Bonsoir Siga, le forum,

je te retourne ton fichier modifié :

25test-actua.xlsm (26.73 Ko)

un clic sur ton bouton fléché efface la plage de cellules de ta feuille cachée.

Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

Bonjour à tous.

Merci pour vos réponses et les leçons de "syntaxe "de VBA.

Je vais étudier ton fichier Dhany.

Mais je m'aperçois que je n'ai ps forcémment était claire.

Par variabiliser , je souhaiter dire que parfois la plage à effacer sera différente même si elle commencera toujours à la même ligne soit a priori la ligne 6 .

En revanche les dimensions de la plage peuvent évoluer: elle peut se réduire à une seule céllule, par exemple C6 ou bien à

l'inverse s'élargir et concerner plus de cellule par exemple (C6:M288)

Grosso modo , je voudrai effacer toutes les cellules remplies à partir de la ligne 6 sans pour autant connaître à l'avance leur nombre.

Cela étant dit qu'en pensez-vous, ma demande est-elle réalisable ?

Merci d'avance,

Siga

Bonjour Siga,

dans mon fichier précédent, la plage de cellules s'adaptait déjà automatiquement en fonction d'un nombre de lignes variable ; cette nouvelle version ajoute une adaptation automatique en fonction d'un nombre de colonnes variable :

24test-actua.xlsm (26.98 Ko)

attention : la cellule de base est obligatoirement C6 ; si ça te convient : ok, tu peux passer le sujet en résolu ;

sinon, si la cellule de base est variable (pas forcément C6), je pourrai te proposer une autre version.

dhany

Bonjour,

Pas de problème pour cibler à partir de la ligne 6 :

Sub EffacementAPartirLigne6()
    Dim lnd%
    With Worksheets("FeuilMaskée").Range("C6").CurrentRegion
        lnd = .Row
        .Offset(6 - lnd).ClearContents
    End With
End Sub

Ta cellule de référence étant C6, tu te bases sur la 'région courante' occupée à partir de cette cellule,

tu en définis la ligne de début, qui pourra se situer de 1 à 6 selon le remplissage des lignes qui précèdent, et tu décales cette plage de 6-lnd (lnd étant la ligne de début) pour effacer à partir de la ligne 6.

Si tu dois éliminer également des mises en forme, tu remplaces ClearContents par Clear.

Cordialement.

Bonsoir à tous,

Désolée pour la réponse tardive mais j'étais souffrante

Je vais tester tout ça demain mais je ne doute pas que cela marchera!!!

MERCI INFINIMENT, en particulier à Dhany et MFerrand pour cette réponse qui est très pédagogique.

Siga

Bonsoir Siga,

désolé d'apprendre que tu étais souffrante ! heureusement, tu en parles au passé, ce qui signifie que tu es maint'nant rétablie !

je pense aussi que demain, le test marchera ; merci d'avoir déjà passé le sujet en résolu ; n'hésite pas à revenir pour confirmer que tout est ok, ou pour demander une adaptation si nécessaire, ou juste pour quelques infos complémentaires.

dhany

Bonjour comme prévu je reviens vers vous à l'issue de mes tests .

dans le fichier "TEST ACTUA" tout fonctionne autant la solution de Dhany que celle de MFerrand.

En revanche quand je tente de transposer dans mon fichier perso, j'ai eu un premier bug avec comme légende " nom détecté ambigu".

J'ai fait des recherches et j'ai compris que c'était parce que j'avais voulu placer tout les codes dans un seul module et en plus sans supprimer le code en doublon dans le deuxième module non supprimé pendant le test .

Bon donc problème résolu puisqu'il me semble qu'il vaut mieux supprimer du module 1 et laisser dans le module 2 pour le fichier perso .

Sachant que j'ai l'intention d'utliser les 2 codes, un pour vider plusieurs feuilles masquées en une seule fois et l'autre pour vider une feuille à la fois.

lorsque j'ai testé le code de MFerrand soit :

Sub EffacementAPartirLigne6()
    Dim lnd%
    With Worksheets("FeuilMaskée").Range("C6").CurrentRegion
        lnd = .Row
        .Offset(6 - lnd).ClearContents
    End With
End Sub

j'ai un nouveau bug qui survient,:

bug test actua

et là je me dis mince , je suis un peu paniquée ...car j'ai oublié de préciser effectivement qu'il est possible que ma feuille masquée contienne des cellules fusionnées.

Du coup à votre connaissance, le vidage est-il toujours possible?

Est-bien ce à quoi MFerrand faisait référence quand il me conseillait de remplacer ClearContents par Clear ?

Merci d'avance,

Siga

Bonjour,

Tu peux en effet remplacer ClearContents par Clear.

Clear effacera valeurs et mises en forme, et défusionnera les cellules.

Cordialement.

Bonsoir merci pour cette réponse rapide MFerrand.

Pour une fois, j'ai quasiment compris tes explications du premier coup .

Mais du coup, je me demande si je mets un Clear et que mon contenu est effacé,

comment puis-je rétablir la mise en forme de ma feuille masquée?

Est-ce que c'est possible?

Merci d'avance,

Siga

Quelle est cette mise en forme ?

Bonjour à tous,

En réponse à MFerrand, dans mon fichier perso cela correspond à des cellules fusionnées et colorées notamment.

Il peut aussi y avoir des renvois automatiques à la ligne, des alignements classiques.

Je joins un exemple de feuille masquée typique de mon fichier perso qui sera sans doute plus parlant.

9feuilmaskee.xlsx (12.90 Ko)

Dans le fichier perso, elle sera régulièrement complétée via un formulaire et donc par la suite vidée

avant de renseigner à l'échéance suivante.

Merci d'avance,

Siga

Re,

SUPER BONNE NOUVELLE...j'ai testé sur un echantillon réduit de feuille masquées.

Avec la méthode de MFerrand, cela fonctionne sans toucher à la mise en forme a priori

en optant évidemment pour le clearcontents.

Encore merci MFerrand, tu me sauves une fois de plus

MERCI A TOUS

Siga

Bonjour,

C'est que la plage définie pour être effacée couvre bien toutes les cellules fusionnées... Tu as raison ! avant de se précipiter sur Clear il convenait d'abord d'examiner où ça coinçait éventuellement pour ClearContents et privilégier si possible une extension de la plage effacée pour couvrir les cellules fusionnées en totalité.

Bonne journée et bonne continuation.

MERCI INFINIMENT MFerrand

Bonjour,

Si ça s'y prête, plus simplement tu peux garder une feuille vierge nommée Modèle (masquée).

Pour la raz tu supprimes l'ancienne et tu copies le modèle.

eric

Rechercher des sujets similaires à "variabiliser vidange champs"