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 :

[VBA-E] comment vider les noms de leur contenu?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Points : 9
    Points
    9
    Par défaut [VBA-E] comment vider les noms de leur contenu?
    Bonjour,
    J'ai une quarantaine de cellules nommées dans un dossier.
    Je voudrais vider ces cellules par une macro.
    Je patauge dans la collection Names
    Merci

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    tu peux faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim n As Name
     
    For Each n In ActiveWorkbook.Names
        Range(n.RefersTo) = ""
    Next n
     
    Set n = Nothing
    EDIT : oups croisé avec Ouskel
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Points : 9
    Points
    9
    Par défaut
    Bonjour et merci de la réponse,
    J'ai essayé ton code cafeine. Un mot du contexte
    J'ai un dossier de 4 feuilles
    La 1 est un document contenant la plupart des noms, destiné a être sauvegardé dans un dossier spécifique créé en fin de procédure.( Au passage, j'aimerais lancer ça par un bouton sur la feuille 2 au lieu de touches, mais ça coince).
    La 2 servant à saisir des données pour remplir des noms dans la première. Elle commande des userforms contenant des listbox.
    les feuilles 3 et 4 sont les bases de données des listbox. Il n'y a pas de nom dedans.
    Je cherche à faire une macro pour vide les noms
    Après exécution de ton code, la feuille 1 est effacée, reste les cadres des cellules. La feuille 3 est effacée à partir de la ligne 3. La feuille 4 n'a pas changé.
    Sur la feuille 2, les cellules nommées sont effectivement vidées.
    Après exécution, le n renvoie l'adresse cellule A3 feuille3.
    Curieux, ça dépasse mon niveau de béotien.
    MM

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    tiens une adaptation de la procédure à cafeine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Dim n As Name
    For Each n In ActiveWorkbook.Names
     n.RefersToRange.MergeArea.ClearContents
    Next n
    Set n = Nothing
    [Edit] correction code pour cellules fusionnées, rajout de MergeArea

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Points : 9
    Points
    9
    Par défaut
    Alors maintenant, avec ce code j'ai un message

    "Impossible de modifier une cellule fusionnée"

    Parce qu'il y en a bien sur.

    Le code est dans une macro Workbook_open, pour tout nettoyer.

    Je peux faire:
    Range("NomCellule").value = ""
    Cà fonctionne, cellule fusionnée ou pas
    Mais 40 fois, c'est pas très élégant.
    MM

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    à modifier... rajout de MergeArea (je le fais aussi dans mon message initial..)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    n.RefersToRange.MergeArea.ClearContents

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 24
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Avec çà, le message d'erreur a disparu, mais le contenu des cellules est toujours là.
    J'ai peut etre mal posé le problème.
    MM

Discussions similaires

  1. Réponses: 9
    Dernier message: 04/04/2007, 12h01
  2. [VBA EXCEL] comment effacer les noms des querytables
    Par rafnt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/10/2006, 17h06
  3. Réponses: 2
    Dernier message: 08/07/2005, 10h40
  4. Réponses: 6
    Dernier message: 16/06/2005, 09h07
  5. Réponses: 4
    Dernier message: 13/12/2004, 20h37

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