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 :

Selection de cellules pour validation de donnees [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    VIE Procurement
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : VIE Procurement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Selection de cellules pour validation de donnees
    Bonjour à tous,

    Je crée une macro pour sélectionner une plage de cellule (colonne sans les lignes de titre) et faire une validation de donnees Liste. Je fais une validation de données sur de nombreuses colonnes.

    J'ai deux problèmes/questions :

    - la selection des cellules ne se fait pas correctement. La premiere selection est conservee et y sont ajoutees les cellules de ma deuxieme selection et cela continue ainsi jusqu'à ce que finalement toutes les cellules de validation se retrouvent avec la liste qui devrait normalement n'etre que sur la derniere colonne.
    J'imagine qu'il faut une ligne pour deselectionner la selection avant de selectionner d'autres cellules ? (ou peut etre ai-je un probleme dans mon code pour selectionner les lignes?) Voir l'extrait de mon code en fin de post.

    - si j'ai plusieurs plages de cellules auxquelles je veux attribuer la meme liste, comment puis je ecrire cette ensemble de cellules ?
    Par exemple je veux que les cellules de B15 à la fin et les cellules de E15 à la fin, aient la liste Yes No.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Range("B15", Selection.End(xlDown)) And Range("E15", Selection.End(xlDown)).Select 'cela ne fonctionne pas, mais c'est pour illustrer ce que j'essaie de faire.
     
          .Delete
          .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=List_Yes_No"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
    Merci
    Ambre


    Extrait:
    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
     
    Range("B15", Selection.End(xlDown)).Select
         With Selection.Validation
         .Delete
         .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=List_HMG"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
     
        Range("C15", Selection.End(xlDown)).Select
         With Selection.Validation
          .Delete
          .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=List_Buyers"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Tu selectionnes ton range avec ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set userrange = Application.InputBox(prompt:="Please Select Range", Title:="Range Select", Type:=8)

    Ton numéro de ta dernière ligne de ta selection sera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox (userrange.Rows.Count + 14)

  3. #3
    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,

    pour le n° de la dernière ligne ceci est plus sûr : userrange.Rows(userrange.Rows.Count).Row


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    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)

  4. #4
    Futur Membre du Club
    Femme Profil pro
    VIE Procurement
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : VIE Procurement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bonjour et merci à vous deux mais je voudrais que la selection (et validation) des cellules se fassent automatiquement. La boite de dialogue n'est pas vraiment pratique dans mon cas car j'ai plus de 19 colonnes pour lesquelles je souhaite faire la validation de donnees.

    En fait dans un premier temps, des lignes sont inserees dans un tableau (avec une macro) sauf que les cellules des nouvelles lignes n'ont pas les listes deroulantes, et avec la macro (dont je parle dans ce post)je souhaite refaire la validation des cellules à chaque fois qu'un groupe de ligne est inséré pour les nouvelles cellules aient leur liste deroulante.
    J'ajoute que je suis debutante en VBA

    J'espere que c'est plus clair.

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B15:B" & .range("B" & rows.count).end(xlup).row)

  6. #6
    Membre régulier
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Septembre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par AmbreM Voir le message
    Bonjour et merci à vous deux mais je voudrais que la selection (et validation) des cellules se fassent automatiquement. La boite de dialogue n'est pas vraiment pratique dans mon cas car j'ai plus de 19 colonnes pour lesquelles je souhaite faire la validation de donnees.

    En fait dans un premier temps, des lignes sont inserees dans un tableau (avec une macro) sauf que les cellules des nouvelles lignes n'ont pas les listes deroulantes, et avec la macro (dont je parle dans ce post)je souhaite refaire la validation des cellules à chaque fois qu'un groupe de ligne est inséré pour les nouvelles cellules aient leur liste deroulante.
    J'ajoute que je suis debutante en VBA

    J'espere que c'est plus clair.
    Si je comprends bien tu as une macro pour insérer des lignes et une seconde pour affecter une liste de validation.

    Dans ce cas la seconde doit être appelée par la première juste après l'insertion,
    comme cela tu appliques le seconde directement sur ta selection courante.

    Je te laisse adapter le code ci dessous qui illustre ce que je dis à ton cas :

    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
     
    Sub Macro1Insertion()
     
    ActiveSheet.Range("A7:R12").Select
    Selection.Insert Shift:=xlDown
    Call Macro2Validation(Selection, "List_Yes_No")
     
    End Sub
     
     
    Sub Macro2Validation(Target As Range, Mylist As String)
     
        With Target.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=" & Mylist
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
     
    End Sub

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

Discussions similaires

  1. [XL-2007] Tempo sur cellule pour sa validation
    Par NulenExcel77 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/10/2011, 09h30
  2. Selection de cellules pour graphique
    Par kika18 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/12/2007, 23h53
  3. selections multiples pour validation des données
    Par Olaf69 dans le forum Excel
    Réponses: 3
    Dernier message: 30/07/2007, 14h22
  4. Pb de selection de cellule pour mettre en couleur
    Par Dexor dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/08/2006, 16h47
  5. Plugin Eclipse pour validation de donnees XML (shema)
    Par Raphael94 dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2004, 16h33

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