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 :

Variable tableau et liste de validation


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 566
    Points : 2 525
    Points
    2 525
    Par défaut Variable tableau et liste de validation
    Bonjour à tous,

    j'utilise les variables tableau pour optimiser les temps d'exécution des macros mais je n'arrive pas à y inclure des listes de validation.
    Autant a fonctionne quand je passe directement sur une feuille, autant par variable tableau, la liste n'apparait pas dans la cellule une fois affichée.
    Pour ce faire, j'utilise ce code (qui fonctionne parfaitement sur une feuille)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     With TABLEAU(4, ColonneTABLEAU).Validation
                        .Delete
                        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                            xlBetween, Formula1:=Valeur
                        .IgnoreBlank = True
                        .InCellDropdown = True
                        .InputTitle = ""
                        .ErrorTitle = "Erreur Information !"
                        .InputMessage = ""
                        .ErrorMessage = "La valeur entrée n'est pas dans la liste."
                        .ShowInput = True
                        .ShowError = True
                    End With
    Si quelqu'un a déjà su trouver une solution, je suis preneur.
    Curt
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

  2. #2
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour Curt,

    Essaie comme ceci :
    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
    20
    21
    22
    Sub essaiValid()
    Dim Tb(4) As String, monString As String
        Tb(0) = "Liste 1"
        Tb(1) = "Liste 2"
        Tb(2) = "Liste 3"
        Tb(3) = "Liste 4"
        Tb(4) = "Liste 5"
        monString = Join(Tb, ",")
        With Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=monString
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
    End Sub
    Cordialement,
    Franck

  3. #3
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 566
    Points : 2 525
    Points
    2 525
    Par défaut
    Merci pijaku,

    mais tu ne viens pas renseigner une variable tableau avec une liste, mais remplir une cellule (A1) avec le contenu d'un tableau.
    S'il est vrai que cela fonctionne dans ce cas, ça ne fonctionne pas à l'intérieur même d'une variable tableau.

    Merci du coup de main en tous cas.
    Curt
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

  4. #4
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Pour le coup, je ne comprends pas le but de la manœuvre.
    Si c'est pour inscrire une validation de données sur toute une colonne d'une feuille, tu pers ton temps à essayer d'en gagner…

    Inscrit, directement, dans tout le Range (colonne) voulue, la validation en une fois…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            With .Range("D2:D5971").Validation
                        .delete
                        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Valeur
                        .IgnoreBlank = True
                        .InCellDropdown = True
                        .InputTitle = ""
                        .ErrorTitle = "Erreur Information !"
                        .InputMessage = ""
                        .ErrorMessage = "La valeur entrée n'est pas dans la liste."
                        .ShowInput = True
                        .ShowError = True
            End With
    Tu iras aussi vite que de tout vouloir stocker dans une variable tableau (qui ceci dit entre nous pose d'autres difficultés, une variable tableau ne possédant pas de propriété Validation) pour tout restituer ensuite.

    Il se peut que je n'ai toujours pas compris ton sujet, donc n'hésite pas...
    Cordialement,
    Franck

  5. #5
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 566
    Points : 2 525
    Points
    2 525
    Par défaut
    Merci Pijaku pour cette réponse.

    Le seul fait de savoir (je m'en doutais un peu il est vrai) que
    une variable tableau ne possédant pas de propriété Validation
    répond sur l'impossibilité de traiter ma feuille comme actuellement.
    La validation est néanmoins nécessaire puisque les données sont issues d'autres applications et qu'on doit pouvoir choisir sur la liste et renvoyer à ces applications.
    L'utilisation des variables tableaux nous fait gagner du temps d'exécution par rapport à un remplissage directement sur la feuille (le tuto de Slkyroad sur le sujet a été une mine d'information)

    Encore merci.
    Curt
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/04/2016, 20h47
  2. [XL-2007] Liste de validation filtrée de source variable
    Par cladsam dans le forum Excel
    Réponses: 1
    Dernier message: 02/04/2010, 16h06
  3. [XL-2003] Tableau de données avec liste de validation
    Par Philippe76 dans le forum Excel
    Réponses: 3
    Dernier message: 23/12/2009, 11h30
  4. liste déroulante/ variable tableau
    Par kbakouan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/08/2007, 19h35
  5. Réponses: 4
    Dernier message: 28/11/2006, 09h50

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