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 :

UserForm un peu particulier [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Par défaut UserForm un peu particulier
    Bonjour,

    je cherche de l'aide sur la création d'un UserForm un peu particulier, et k'avoue n'avoir rien trouvé sur la toile ou sur ce site qui conviennent à mes attentes.

    Voici ce que je voudrais réaliser.

    Un Userform comportant une checkBox sous forme de liste.

    L’intitulé et le nombre des lignes seraient issus directement d'une feuille de mon classeur. Pour l’exemple je dirais comme nom de feuille Feuil1.

    Les intitulé des box se situeraient dans la colonne F.

    Je voudrais également que se créer automatiquement la liste suivant des critères spécifiques : Début de la boucle à partir de la cellule F12 et fin de la boucle dès qu'elle rencontre le mot (Pour l'exemple) "FIN" situé dans la colonne F mais dans n'importe quelle ligne. De plus il faudrait que cette liste récupère en titre les données issues de la cellule F11

    J'aurais donc une colonne telle que :

    F11 "LE TITRE"
    F12 "LUNDI"
    F13 "MARDI"
    F14 "MERCREDI"
    F15 "JEUDI"
    F16 "VENDREDI"
    F17 "SAMEDI"
    F18 "DIMANCHE"
    F19 "LUNDI"
    F20 "FIN"

    Ce qui me donnera une liste avec case à cocher :

    LE TITRE

    o LUNDI
    o MARDI
    o MERCREDI
    o JEUDI
    o VENDREDI
    o SAMEDI
    o DIMANCHE
    o LUNDI

    Le but étant de travailler sur des tableaux qui n'ont pas tous le même nombre de lignes.

    Puis suivant si la checkbox et cochée ou non, inscrire le nombre 1 ou 0 dans la colonne A dont la cellule correspondrait à la ligne d'où provienne les informations.

    Espérant m'être fait comprendre je me tiens à votre disposition pour tout compléments d'infos.

    Merci à tous pour votre aide

    PS : Je suis débutant, merci de votre indulgence.

    David
    Ile de la Réunion

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Tu pourrais faire cela en utilisant une Listbox avec sa propriété ListStyle = 1 (fmListStyleOption => Case a cocher)

    Pour charger les données dans la listbox, tu utiliseras la propriété Rowsource
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Listbox1.Rowsource = "Feuil3!F12:F18

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Par défaut
    Bonjour Jérôme,

    un grand merci ça marche impec, et c'est simple que je n'en reviens pas

    J'ai trouvé comment m’arrêter à la ligne comportant la valeur FIN :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim x As Range, s As String
    s = "FIN"
     
    Sheets("Feuil3").Select 'Rajouté car le form se lance sur une autre feuille
     
    Set x = Range("F:F").Find(s, , xlValues, xlWhole, , , False)
    If Not x Is Nothing Then numligne = x.Row
    NumLigneFin = x.Row - 1
    En revanche comment procéder pour inscrire un 1 ou un 0 suivant les cases qui sont cochées ?

    Merci

    David
    Ile de la Réunion

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Regardes sur ce post tu devrais y trouver la solution

    http://www.developpez.net/forums/d11...nt-specifique/

  5. #5
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Août 2006
    Messages : 148
    Par défaut
    Jérôme,

    j'ai regardé ton code, tenter de l'adapter à mon besoin, mais sans résultat.

    Comment faire cela ?

    Merci

    David
    Ile de la Réunion

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Dans ta liste on retrouve 2 fois Lundi. Est ce normal ?

    Dans le cas ou c'est normal on ne peut pas faire la recherche de la valeur pour trouver la ligne


    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
    Private Sub CommandButton1_Click()
     
    Dim i As Integer
     
    For i = 0 To ListBox1.ListCount - 1
     
        If ListBox1.Selected(i) = True Then
            Range("A" & i + 12).Value = 1
        Else
            Range("A" & i + 12).Value = ""
        End If
     
    Next i
     
    End Sub

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

Discussions similaires

  1. [XSLT]Tableau un peu particulier
    Par JohnBlatt dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/06/2006, 18h14
  2. Un tri un peu particulier
    Par GregPeck dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/06/2006, 15h32
  3. Menu un peu particulier avec des onmouseover
    Par Jinroh77 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/02/2006, 14h30
  4. #define un peu particulier
    Par greuh dans le forum C
    Réponses: 14
    Dernier message: 12/10/2005, 16h42
  5. Réponses: 2
    Dernier message: 05/01/2004, 11h23

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