Suppression des données appartenant à des plages nommees dans un classeur

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
Avatar du membre
Mountia
Jeune membre
Jeune membre
Messages : 42
Inscrit le : 29 mars 2017
Version d'Excel : 2016 FR

Message par Mountia » 6 novembre 2018, 01:39

Bonjour,

Pour remettre à blanc un classeur, j'ai nommé toutes les plages à remettre à 0 dans chaque feuille "plage_donnees" avec un domaine d'application spécifique à chaque feuille.
j'essaye de mettre en place un petit bout de code VBA qui me semble basique mais qui ne fonctionne pas (erreur 1004)
Sub Viderdonnees()

For i = 1 To Worksheets.Count
        Worksheets(i).Range("plage_donnees").ClearContents
Next i
 
End Sub
Où est mon erreur ?

Merci d'avance pour votre aide
Mountia, pas très fort en VBA mais plein de bonne volonté.
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 448
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 6 novembre 2018, 02:13

Bonsoir,

Quand Excel ne veut pas, il faut éventuellement chercher pourquoi dans le classeur, et le cas échéant contourner si on peut...
Mais la méthode n'est pas la meilleure, l'intérêt d'un nom de plage est d'être unique dans le classeur, pour pouvoir être utilisé efficacement.

Cordialement.
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 6 novembre 2018, 06:46

Bonjour,

Comme le dit MFerrand (°v°)° , il est conseillé de donner des noms uniques afin d'éviter les erreurs donc si tu veux que tes plages nommées soient propre à chaque feuille, tu peux utiliser la propriété CodeName (ce nom est propre à la feuille et ne peux être modifié) concaténé à un mot qui te convient comme "Plage" par exemple donc, une plage nommée portant le nom de "PlageFeuil1" pour la feuille ayant comme nom de module "Feuil1" il te suffit alors de boucler :
Sub Viderdonnees()

    Dim Fe As Worksheet
    
    For Each Fe In Worksheets: Fe.Range("Plage" & Fe.CodeName).ClearContents: Next Fe
 
End Sub
Même su tu renommes une feuille, le nom de son module ne changera pas donc pas d'erreur au niveau du code et chaque plage nommée sera propre à la feuille --> PlageFeuil1, PlageFeuil2, PlageFeuil3, etc...
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'599
Appréciations reçues : 250
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 6 novembre 2018, 08:19

bonjour à tous

autre vision de l'informatique : on n'efface jamais de données, donc on ne remet jamais à blanc un fichier
(hors création de fichier Excel qu'on va vendre à diverses entreprises, mais c'est tellement rare)

on reste en permanence sur le même fichier, durant des années.

pourquoi as-tu besoin de vider ton fichier ?

à te relire
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'698
Appréciations reçues : 700
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 6 novembre 2018, 10:44

Bonjour,
@ jmd,
On est certainement dans les 1% des cas où Excel n'est pas utilisé pour la gestion des données !... :P
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Avatar du membre
Mountia
Jeune membre
Jeune membre
Messages : 42
Inscrit le : 29 mars 2017
Version d'Excel : 2016 FR

Message par Mountia » 6 novembre 2018, 16:00

@jmd
il s'agit d'un fichier d'audit donc pour chaque audit, je fais un nouveau fichier. Nous créerons un fichier modèle vide bien entendu mais on utilise parfois, pour tout un tas de raisons, un reset sur un fichier existant.
Mountia, pas très fort en VBA mais plein de bonne volonté.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message