Autres vba

kazuya

XLDnaute Nouveau
Bonjour,
J'ai un fichier DATA que je veux vider les données sans toucher aux formules. Pour cela, j'ai pensé à utiliser la formule specialcells. Cependant, comme je l'ai pu voir ailleurs, cette formule ne marche pas quand la plage est discontinue.
Comme je suis amateur en VBA, je n'ai pas pu savoir la solution. Si qq connait la solution svp. Je vous laisse le fichier joint.
Merci d'avance.
 

Pièces jointes

  • DATA.xlsm
    31.6 KB · Affichages: 5

Deadpool_CC

XLDnaute Accro
Bonjour,
1- pas de fichier avec des données personnelles
2- cela ressemble à une volonté de copier des données d'un fichier à un autre sous condition.

Je pense que tu n'utilises pas la bonne méthode mais après on ne sait pas ce que tu veux faire.
as-tu chercher du coté de PowerQuery qui permet d'extraire/transformer des données à partir d'une source autre (autre fichier Excel, texte, ..., BDD, plage dans le même fichier)
et quand besoin juste à demander une mise à jour pour qu'il rafraichisse les données ?

si tu restes sur ton idée, il te faut faire une macro qui va tout supprimer et ensuite remettre les formules dans chaque colonne puis étendre le tout vers le bas pour le nb e ligne que tu souhaites.
 

kazuya

XLDnaute Nouveau
Bonjour,
Ce que je veux est un Ràz sans toucher aux formules que j'ai dans le fichier.
J'ai déja une macro dans le fichier nommée "Vider" et elle marchait dans un autre onglet. Cependant pour cet onglet non, je ne sais pas pk.
Ps: Je veux rester sur du VBA.
 

Deadpool_CC

XLDnaute Accro
moi j'ai pas de solution ... désolé

Et dans ta sub Vider() tu 'clear' le 'content' des cellules sélectionnées avec .specialcells() celles qui contiennent des valeurs et non pas des formules ... le pb c'est que toutes tes cellules contiennent des formules : donc forcément cela ne fonctionne pas.
j'espère que quelqu'un pourra t'aider ... bon courage
 

Deadpool_CC

XLDnaute Accro
lol : supprime les info dans le fichier d'origine ... cela videra ton fichier
lol N°2 : passe en calcul manuel pour éviter qu'il remplisse automatiquement les résultats de tes formules après les avoir saisies ...
Franchement tu mets des formules ... forcement Excel les calcule ... je te dit que tu n'utilise pas la bonne méthode. Là tu essaye de contourner/pervertir le comportement de base de Excel.
 

kazuya

XLDnaute Nouveau
Mais non, le rôle de specialcells(constants) est d'effacer les valeurs sans y toucher aux formules. Je vous rassure que je l'ai tester tt à l'heure dans un autre fichier qui contient des formules et des valeurs est ca a marché. Le problème vient du fait que la plage est discontinue. C'est pour ca que j'ai rajouter le on error..
Pour les formules, ne vous en faites pas, ca n'a rien de contexte là; L'essentiel de retenir que je veux vider les cellules en gardant les formules.
Veuillez voir le pdf page 34 paragraphe "Formules et constantes" pour s'assurer de la valabilité de la formule que j'ai utilisé.
 

Pièces jointes

  • Cours VBA.pdf
    710.7 KB · Affichages: 4

Deadpool_CC

XLDnaute Accro
Je vous crois ... c'est juste que ne sachant pas l'objet de votre constitution de ce tableau, je m'interroge sur la méthode.
Après, de ce que je connais d'excel ... si formule Excel cherche à les recalculer à chaque fois qu'on fait une modif. sur la feuille (et à l'ouverture du fichier) ... sauf à désactiver le calcul automatique pour ce fichier et le passer en manuel.
Donc vider les valeurs va tenir jusqu'au prochain recalcul par Excel ... c'est à dire certainement moins d'une seconde en automatique.

dans votre autre fichier, avez-vous vérifier dans les options pour voir l'état du mode de calcul ?
 

vgendron

XLDnaute Barbatruc
@kazuya
une chose importante à bien comprendre

une cellule excel peut
- etre vide
- contenir des valeurs ou du texte
- contenir une formule

avec un specialcells tu peux effacer les cellules qui contiennent des valeurs ou du texte sans effacer celles qui contiennent une formule..

ton fichier Data ne contient QUE des formules==> rien n'est effacé

maintenant;.une formule peut avoir un résultat vide ou pas..: mais quelque soit son résultat.. une formule reste une formule..
essai ta fonction "Vider" sur le fichier ci joint
 

Pièces jointes

  • DATA.xlsm
    31.8 KB · Affichages: 2

kazuya

XLDnaute Nouveau
@kazuya
une chose importante à bien comprendre

une cellule excel peut
- etre vide
- contenir des valeurs ou du texte
- contenir une formule

avec un specialcells tu peux effacer les cellules qui contiennent des valeurs ou du texte sans effacer celles qui contiennent une formule..

ton fichier Data ne contient QUE des formules==> rien n'est effacé

maintenant;.une formule peut avoir un résultat vide ou pas..: mais quelque soit son résultat.. une formule reste une formule..
essai ta fonction "Vider" sur le fichier ci joint
D'accord! Du coup t'a une solution pour Remettre à zéro le tableau (Vider les valeurs et constantes affichées) en gardant les formules (L'idée de joindre un autre fichier dont lequel se charge les formules..)
Merci
 

vgendron

XLDnaute Barbatruc
Comme te l'a dit @Deadpool_CC , pour vider ton fichier data, soit tu SUPPRIMES toutes les formules, soit tu VIDES le fichier source...

je pense que ton beson n'est pas clair car mal défini...

ne serait ce pas ceci:
tu as deux fichiers: un fichier source (Feuille de flux) et un fichier résultat (Data)

ton fichier Data est vide à part la ligne d'entete (ligne1)

il faudrait créer une macro qui remplit le fichier Data à partir des données du fichier source
dans ce cas.. pas besoin de formules== la macro peut se charger de copier coller les données..
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 316
Membres
102 860
dernier inscrit
fredo67