Exploitation zone de liste Active X

Bonjour,

je souhaiterais grâce à un bouton exploiter ma zone de liste.

Lorsque je sélectionne dans ma liste "toto", je voudrais que en cliquant sur un bouton je supprime une ligne dans une autre feuille.

Je pensais utiliser un truc du genre : If zone_de_liste.Text = "toto" then ...

Mon premier problème est que je n'arrive pas à exploiter ma liste.

Le second est la suppression de la ligne, mais je n'ai pas encore chercher la dessus.

Merci d'avance !

Bonjour,

quel code utilise tu pour créer ta zone de liste ..?

Private Sub Worksheet_Activate()
Choix_echantillon.List = Array("Echantillon 1", "Echantillon 2", "Echantillon 3", "Echantillon 4", "Echantillon 5", "Echantillon 6", "Echantillon 7", "Echantillon 8", "Echantillon 9", "Echantillon 10", "Echantillon 11", "Echantillon 12", "Echantillon 13")
End Sub

Bonsoir,

Tu n'expliques pas en quoi ta liste serait en rapport avec la feuille dans laquelle tu veux supprimer des lignes suite à sélection dans la ListBox ?

J'ai mis le fichier en question en pièce jointe, ce sera plus simple de se comprendre n_n.

Du coup, la listbox sur la sheet "données production" doit me permettre de supprimer la ligne dans la sheet "calcul carte de contrôle".

Ce que je n'arrive même pas à faire c'est à exploiter ce que je sélectionne dans ma listbox.

Merci d'avance !

CDT

Bonsoir,

Ton fichier n'est pas plus clair que toi !

Tu dis que qu'en sélectionnant une valeur dans ta ComboBox (car déjà ce n'est pas une ListBox !) tu veux supprimer une ligne.

Les valeurs sélectionnables sont : échantillon 1, etc. Il faut déjà savoir ce que ces mentions représentent !

La question a été posée, tu n'y as pas répondu. Tu envoies ton fichier à la place. Sans réponse à la question...

Okay, on va repartir de 0 n_n.

J'ai 20h de VB dans les pattes donc à vrai dire je ne comprends pas ce que je fais.

Ce que j'aimerais faire c'est une zone déroulante avec : Echantillon i (i allant de 1 à 25).

Lorsque je sélectionne par exemple Echantillon 5, je puisse supprimer la ligne (et pas seulement le contenu) dans laquelle se trouve cet échantillon dans la sheet "calcul carte de contrôle".

J'ai commencé à faire quelque chose qui me semblait pourvoir faire ça mais sans vraiment comprendre.

En espérant que vous puissiez comprendre n_n .

Bonjour,

On va finir par y arriver !

Private Sub Choix_echantillon_Change()
    Dim ech%, i%
    If MsgBox("Voulez-vous supprimer l'échantillon : " & Choix_echantillon.Value & " ?", vbYesNo + vbQuestion, _
     "Suppression d'échantillon") = vbYes Then
        ech = Val(Replace(Choix_echantillon.Value, "Echantillon ", ""))
        With Worksheets("Calcul carte de contrôles")
            For i = 4 To 28
                If .Cells(i, 1) = ech Then
                    .Range("A" & i & ":C" & i).Delete xlShiftUp
                    Worksheet_Activate
                End If
            Next i
        End With
    End If
End Sub

Private Sub Worksheet_Activate()
    Dim ListEch, i%, n%
    n = WorksheetFunction.Max(Worksheets("Calcul carte de contrôles").Columns("A"))
    ListEch = "Echantillon 1"
    For i = 2 To n
        ListEch = ListEch & ";" & "Echantillon " & i
    Next i
    ListEch = Split(ListEch, ";")
    Choix_echantillon.List = ListEch
End Sub

La suppression nécessite bien sûr la remise à jour immédiate de la liste. J'ai recomposé ta procédure Activate pour qu'elle s'adapte aux suppressions.

[En fait, compte tenu de ta numérotation par formule, la mise à jour de la liste aurait pu se faire par la suppression du dernier élément...]

Cordialement.

Super !

Merci beaucoup, c'est exactement ce que je cherchais à faire !

Rechercher des sujets similaires à "exploitation zone liste active"