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 récupérer le texte de validation d'une cellule dans une autre ?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 9
    Points
    9
    Par défaut [VBA-E] Comment récupérer le texte de validation d'une cellule dans une autre ?
    Bonsoir a tous,

    J'ai une colonne ou toutes mes cellules ont un texte de validation... et je souhaiterai dans la colonne d'a coté, récupérer ce texte au format texte.

    Est ce possible et si oui... comment ?

    Merci d'avance pour votre aide.

    Amaranthe.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu peux être plus explicite ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Tout d'abord merci d'avoir pris la peine de te pencher sur mon problème, ensuite, Je vais essayer d'être plus explicite...

    Dans ma colonne A... j'ai, des produits. Et pour chacun de ces produits, on a utilisé l'option de validation des données... Outils - Validation - Texte de Saisie... pour mettre le descriptif du produit.

    Ce texte de validation est censé être une aide a la saisie... il a ici été détourné de son utilisation usuelle pour mettre le descriptif du produit.

    Ce que je souhaiterai, c'est récupérer ce texte dans la colonne B... et ce, bien sur, de facon la plus automatique possible étant donné que j'ai près de 25.000 produits.

    J'ai cherché dans les informations de cellule... sans succes... et je ne pense pas que cela soit possible sans passer par une fonction VB... une petite boucle avec un Range('Cellule').quelquechose ...

    Est ce plus clair ?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Tu
    Ce texte de validation est censé être une aide a la saisie... il a ici été détourné de son utilisation usuelle pour mettre le descriptif du produit.
    C'est ce détournement qui me pose problème... Si tu pouvais mettre ton fichier (pas avec les 25000 produits, avec 4 ou 5, ça suffira
    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    Par défaut
    Voilà ce que tu peux faire popur récupérer tes infos, je te laisse ensuite mettre en palceta boucle

    En supposant que tu veuille metrre le résultats de la cellule A1 vers B1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        Range("A1").Select
        Range("B1") = Selection.Validation.InputTitle & " - " & Selection.Validation.InputMessage
    Un petit conseil, quand tu ne sais aps quelle propriété utiliser, passe apr le générateur de macro et exécute ton action pour voir comment il stocke tes données

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Il suffit de demander...

    Merci de ton aide.

    Amaranthe.
    Fichiers attachés Fichiers attachés

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par helios77
    Voilà ce que tu peux faire popur récupérer tes infos, je te laisse ensuite mettre en palceta boucle

    En supposant que tu veuille metrre le résultats de la cellule A1 vers B1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        Range("A1").Select
        Range("B1") = Selection.Validation.InputTitle & " - " & Selection.Validation.InputMessage
    Un petit conseil, quand tu ne sais aps quelle propriété utiliser, passe apr le générateur de macro et exécute ton action pour voir comment il stocke tes données
    J'essaye ca de suite.

    Quand au générateur de macro... j'y ai bien pensé... mais je savais déja pas le faire directement sous excel...

    Merci beaucoup pour ton aide.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Ca marche exactement comme je le souhaitais.

    Merci beaucoup !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    Par défaut
    Pour le génréateur, par exemple, je me suis contenté de me mettre sur une cellult et ensuite d'aller dans Donnes =+> Validation et de rajouter mes textes
    Ensuite dans ma macro, j'ai retrouvé" les bonnes propriétées

    LE générateur de macro met souvent beaucoup de code inutile mais est vraiment pratique pour trouver rapidement comment faire

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Bon... tout se passait trop bien

    Il se trouve que j'ai quelques produits qui n'ont pas de Validation.InputMessage, et ma boucle "plante" sur ces produits.

    Comment tester la présence de ce Validation.InputMessage ?

    Voici ce a quoi ressemble ma macro pour le moment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub ADescrProd()
        Dim r
        Dim n
     
        Set r = Range("D11:D2600")
        For n = 1 To r.Rows.count
            r.Cells(n, 1).Select
            r.Cells(n, 30) = " : " & Selection.Validation.InputMessage
        Next n
    End Sub
    Amaranthe.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    Par défaut
    Met un tout en haut de ton code ainsi, si il rencontre une erreur, il passera à la suite

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Simple et élégant...

    Même si pas forcément tres... déonthologique

    Je préfere toujours éviter de faire des erreurs... que de les bypasser... mais j'avoue que sur ce coup la... je séchais.

    Merci encore.

    Amaranthe.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    Par défaut
    Pour ce genre de chose c'est propre
    Ca serait mauvais si tu le emttais dans une grosse procédur qui fait plein de chose car à ce moment là, tu rsiquerais de lasiser passer d'autres erreurs imprévus

    Dans ce cas, c'est la seule erreur possible alors autant faire ainsi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/03/2013, 13h00
  2. Réponses: 5
    Dernier message: 17/04/2012, 09h08
  3. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  4. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01

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