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 :

Paramétrer Cellules d'une Liste Déroulante Intuitif code VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    ingénieur Chef de Projet
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : ingénieur Chef de Projet
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Par défaut Paramétrer Cellules d'une Liste Déroulante Intuitif code VBA
    Bonjour,
    Dans le code ci-dessous, [emprunté sur le très bon site de Jacques Boisgontier: (http://boisgontierjacques.free.fr/) et qui fonctionne très bien] je voudrais pouvoir paramétrer les cellules Ax:Ay de telle sorte que si j'intercale des lignes supplémentaires dans le tableau je n'ai pas besoin de modifier le code VBA.
    Existe-t-il une solution?
    Merci
    --------------------
    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect([Ax:Ay], Target) Is Nothing And Target.Count = 1 Then
    a = Application.Transpose(Sheets("Feuille1").Range("Donnees").Value)
    Me.ComboBox1.List = a
    Me.ComboBox1.Height = Target.Height + 3
    Me.ComboBox1.Width = Target.Width
    Me.ComboBox1.Top = Target.Top
    Me.ComboBox1.Left = Target.Left
    Me.ComboBox1 = Target
    Me.ComboBox1.Visible = True
    Me.ComboBox1.Activate
    Me.ComboBox1.DropDown
    Else
    Me.ComboBox1.Visible = False
    End If
    End Sub
    ----------------------

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bojour,



    a = Application.Transpose(f.Range("a2:a" & f.[A65000].End(xlUp).Row))


    Boisgontier
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    ingénieur Chef de Projet
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : ingénieur Chef de Projet
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Par défaut
    Merci Jacques de ce retour.
    Une précision toutefois:
    Dans votre exemple joint (DVSaisieIntuitiveComboBox-2), à la fauille "Saisie", si j'insère une nouvelle ligne entre lignes 2 et 16, la liste n'est pas active à la cellule A17.
    Mon problème est le paramétrage de la zone de saisie: Range("A2:A16") dans votre exemple et non pas le paramétrage de la liste des données BD: (f.Range("a2:a" & f.[A65000].End(xlUp).Row)).
    Désolé de ne m'être pas bien expliqué dans mon message d'origine.
    Pierre

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Solution 1:

    Set zSaisie = Range("A2:A10000")

    Solution 2:

    Set zSaisie = Range("A2:A" & [A65000].End(xlUp).Row + 1)

    Boisgontier

  5. #5
    Membre averti
    Homme Profil pro
    ingénieur Chef de Projet
    Inscrit en
    Octobre 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : ingénieur Chef de Projet
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2017
    Messages : 15
    Par défaut
    Les deux solutions proposées fonctionnent mais ne répondent pas exactement à mon problème.
    Dans votre exemple (DVSaisieIntuitiveComboBox-2), mon souhait est d'avoir la liste accessible dans les cellules A2 à A17 si j'insère une nouvelle ligne entre la ligne 2 et la ligne 16, A2 à A18 si j'insère deux nouvelles lignes entre la ligne 2 et la ligne 16 et ainsi de suite.

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    -Nommer le champ A2:A16 zsaisie

    Set zSaisie = Range("zsaisie") ' Range("A2:A16")

    Le champ sera agrandi automatiquement en cas d'insertion de ligne.


    Boisgontier

Discussions similaires

  1. [XL-2007] [Excel 2007] Coordonnées d'une cellule via une liste déroulante
    Par macErmite dans le forum Excel
    Réponses: 1
    Dernier message: 06/10/2014, 09h42
  2. Réponses: 3
    Dernier message: 18/12/2012, 09h08
  3. Réponses: 2
    Dernier message: 24/08/2011, 06h47
  4. [QtGui] Transformer une cellule en une liste déroulante
    Par nancy maman dans le forum PyQt
    Réponses: 3
    Dernier message: 04/04/2011, 17h15
  5. remplir une liste déroulante en code behind
    Par tortuegenie dans le forum ASP.NET
    Réponses: 1
    Dernier message: 06/03/2008, 17h58

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