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 :

Listbox et changement de son contenu


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    musicologue
    Inscrit en
    Août 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : musicologue

    Informations forums :
    Inscription : Août 2018
    Messages : 1
    Par défaut Listbox et changement de son contenu
    Bonjour le forum.

    Un problème se pose à moi

    Sur un Userform j'ai un listbox de 3 colonnes (nom prénom et chef d'équipe) initialement alimenté par la méthode additem et dont contenu se cherche dans une feuille (fs) colonne 1 2 et 7.

    Mon objectif et d'en modifier le contenu par l'utilisation de 2 macros.

    La première macro "TousSalariésRegistre" alimente la liste de tous les salariés sans exception.
    La seconde macro "TousSalariésRegistreEquipes" doit l'alimenter la liste des salariés pour un chef en cliquent sur son nom dans le listbox "Listchefs". Autrement dit, la TousSalariésRegistre avec une condition.

    Habituellement, j'utilise removeitem pour une alimentation avec additem. Résultat pour ce cas présent : n'importe quoi.
    J'ai essayé avec clear, tout est effacé et la liste de ligne blanche s'agrandi.

    Je vous donne le code des 2 macros "vierges" de clear et de removeitem.

    Merci vraiment d'examiner ma requête. J'ai cherché un peu partout (tutoriel et forums). En vain.

    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
    Private Sub TousSalariésRegistre()
    Set fs = Sheets("salariés")
    Dim i As Integer
     
    With Me.ListBox1
            .ColumnCount = 3
        For i = 1 To Range("salariés").Count
                .AddItem
            .List(i - 1, 0) = fs.Cells(i + 1, 1)
            .List(i - 1, 1) = fs.Cells(i + 1, 2)
            .List(i - 1, 2) = fs.Cells(i + 1, 7)
            Next i
    End With
    End Sub
     
    Private Sub TousSalariésRegistreEquipes()
    Set fs = Sheets("salariés")
    On Error Resume Next
    Dim i As Integer
     
    With Me.ListBox1
            .ColumnCount = 3
        For i = 1 To Range("salariés").Count
            If fs.Cells(i + 1, 7) = Me.Frchefs.Listchefs Then
                    .AddItem
                .List(i - 1, 0) = fs.Cells(i + 1, 1)
                .List(i - 1, 1) = fs.Cells(i + 1, 2)
                .List(i - 1, 2) = fs.Cells(i + 1, 7)
            End If
        Next i
    End With
    End Sub
    Merci encore

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ColetteJ Voir le message

    Bonjour,

    Un exemple à adapter :

  3. #3
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    bonjour colettej. avec une lecture et relecture je me demande encore ce que vous voulez faire.
    si voulez modifier la liste des employés en les supprimant voici un code qui permet de supprimer ligne par ligne ou avec une listbox multiselect un ensemble de sélection
    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
      Dim Ival As Integer
        Dim Idel As Variant, Tabdel As Variant
        Dim StrItemSelected As String
        Dim rep As String
     
            If MsgBox("Voulez vous supprimer définitivement les éléments sélectionnés du fichier?" & Chr(10) & " " _
             , vbCritical + vbYesNo, "AVERTISSEMENT") <> vbYes Then Exit Sub
     
        For Ival = 0 To ListBox3.ListCount - 1
            If ListBox1.Selected(Ival) Then
            If StrItemSelected <> "" Then StrItemSelected = StrItemSelected & ","
                    StrItemSelected = StrItemSelected & CStr(Ival)
            End If
        Next
            If StrItemSelected <> "" Then
                 Application.ScreenUpdating = False
                 Tabdel = Split(StrItemSelected, ",")
            For Idel = UBound(Tabdel) To 0 Step -1
                Feuil1.ListObjects("Tableau1").ListRows(CLng(Tabdel(Idel)) + 1).Delete
     
        Next
     
        End If
    je pense t'avoir aider à moitié. cordialement

Discussions similaires

  1. Réponses: 9
    Dernier message: 24/10/2005, 18h42
  2. [VB5]Connaitre l'index d'une liste via son contenu
    Par guda dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 15/10/2005, 15h08
  3. Comment redimensionner un TEdit en fonction de son contenu ?
    Par Tempotpo dans le forum Composants VCL
    Réponses: 10
    Dernier message: 25/07/2005, 21h52
  4. [C#] Dossier et son contenu.
    Par GéniuS77 dans le forum Windows Forms
    Réponses: 13
    Dernier message: 12/10/2004, 11h05
  5. Comment copier un répertoire et son contenu ?
    Par yoghisan dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 20/06/2004, 17h40

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