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 :

Erreur sur la création de plage nommée dynammique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut Erreur sur la création de plage nommée dynammique
    Bonjour,
    Je souhaitais faire une liste de validation avec une plage de données obtenue dynamiquement mais j'ai une erreur sur la création de la liste de valiatation.
    Voici le code ci dessous :

    L'erreur est sur le .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=INDIRECT(" & varPN & ")"


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub LVAL()
    Dim varPN As String
    Dim Nom As Name
     
     
    For Each Nom In ThisWorkbook.Names
        If Nom.Name = "EQLAN008" Then Nom.delete
    Next Nom
     
    varPN = "EQLAN008"
     
     
    ThisWorkbook.Names.Add Name:=varPN, RefersToR1C1:= _
            "='Controleur-Site'!R1C:R2C2"
     
     
     
    Range("C5").Select
        With Selection.Validation
            .delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=INDIRECT(" & varPN & ")"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
       End Sub
    Merci de vos idées.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Ta plage est mal définie. Pour une liste de validation, la plage doit être soit en ligne soit en colonne et ta plage est sur plusieurs lignes et colonnes. Ta référence :
    concerne la ligne 1, la colonne de la cellule active (R1C) puis la ligne 2 et la colonne 2 (R2C2) donc ça va marcher si la cellule active est en colonne B sinon tu aura plusieurs colonnes. Je pense qu'il te faut construire ta référence en définissant bien la plage donc :
    La fonction Indirect n'est pas utile, il te suffit d'inscrire "=" & NomDeLaVariable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=" & varPN
    Hervé.

Discussions similaires

  1. Erreur sur la création d'une liste dans une boucle
    Par mbouhlel dans le forum Général Python
    Réponses: 2
    Dernier message: 16/12/2013, 19h59
  2. erreur sur script création de tables
    Par PickEpique dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/03/2007, 18h24
  3. Erreur sur Création Dim Date Serveur sur Analysis Services
    Par domis dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/02/2007, 22h49
  4. Erreur sur Création de Pdf grâce à PdfCreator
    Par clauded07 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/01/2007, 15h43
  5. Erreur de syntaxe sur la création d'une vue.
    Par cgougeon dans le forum Installation
    Réponses: 3
    Dernier message: 09/09/2005, 11h00

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