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 :

Suppression du contenu d'une cellule en fonction du début de son nom


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technitien
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technitien
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 13
    Points
    13
    Par défaut Suppression du contenu d'une cellule en fonction du début de son nom
    Bonjour à tous,

    Après avoir fait pas mal de recherche sur internet et dans différents livres, j'ai le sentiment d’être dans une impasse :-(

    Je souhaiterais remplacer les valeurs des cellules dont le nom commence par "Motdepasse" par "*****"

    Cette fonction doit porter dans l’intégralité de mon classeur.

    Motdepasse 00.xlsm

    J’ai essayé d’utiliser la fonction Find et FindNext mais celle-ci tien compte que de la valeur de la cellule et non de son nom.

    Avez-vous déjà utilisé une fonction équivalente ou avez-vous un début d’idée ?

    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    oui comme l'aide VBA de la méthode Find l'indique pourtant clairement …

    Il suffit de parcourir la collection des noms du classeur ou d'une feuille.

    Comme je le dis souvent, chercher sur le net est une perte de temps quand tout est déjà là à portée de clic ‼
    A partir d'un classeur vierge, activer le Générateur de macros et nommer une cellule de la même manière
    de celles créées sur le classeur de travail : un code est livré sur un plateau !
    Ce code dévoilant la collection à utiliser, reste juste à écrire une boucle pour parcourir les éléments de cette collection …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technitien
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technitien
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    Merci Marc pour ton retour,

    Donc si je comprends bien : je dois créer une collection pour rassembler les noms des objets.

    Mais comment faire pour ne prendre en compte que les noms d’objet qui commence par "Motdepasse" ?

    J'avoue ne pas être à l'aise avec les collections, mais qu'importe je suis prêt à m'investir.

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    La collection est déjà présente dans les propriétés d'un classeur comme celles d'une feuille de calculs !

    Ensuite pour le nom il y a la simple fonction de texte VBA Left ou l'opérateur Like

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technitien
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technitien
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    Franchement je suis perdu. je vois l'idée mais je ne sais pas comment récupérer la collection.

    J'ai l'impression que le fonctionnement des collections n'est pas à la porté des débutants.

    Merci pour votre aide.

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    C'est une collection - du genre Names - comme une autre : Workbooks, Worksheets, Cells, …
    Sauf qu'elles sont deux : une pour le classeur, une par feuille de calculs …
    Tout dépend donc comment a été créé le nom et c'est simple en suivant le modus operandi du post #2 …

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technitien
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technitien
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    J'ai finalement réussit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Recherche_Cellule_Nommee()
        Dim Mtp As Name, x As Integer, CelMod As String
     
        x = 0
        'liste des Noms Motdepassexxx
        For Each Mtp In ThisWorkbook.Names
            If Mtp.Name Like "Mot*" Then
                x = x + 1
                'adresse cellule
                CelMod = Mtp.RefersTo
                If InStr(1, CelMod, "!#REF!") > 0 Then
                    Mtp.Delete
                Else
                    'ecriture ***** dans cellule
                    Range(CelMod) = "*****"
                End If
            End If
        Next Mtp
    End Sub
    Merci pour votre aide.

Discussions similaires

  1. [Toutes versions] Afficher le contenu d'une cellule en fonction de plusieurs autres
    Par Riko63 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/10/2011, 23h07
  2. [XL-2010] Besoin d'aide : contenu d'une cellule en fonction d'une autre
    Par Lisa91 dans le forum Excel
    Réponses: 2
    Dernier message: 08/02/2011, 16h49
  3. Réponses: 2
    Dernier message: 03/07/2009, 14h35
  4. Réponses: 4
    Dernier message: 11/10/2007, 09h28
  5. Réponses: 9
    Dernier message: 26/09/2007, 16h18

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