Suppression avec combobox

jojo -  
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,
Je créé un userform avec combobox dans excel pour supprimer une cellule. J'ai créé un tableau avec une colonne contenant des noms de commerciaux. Ces derniers vont se retrouver dans la combobox de mon userform.
Je souhaite que lorsque je sélectionne un nom d'un commercial dans la combobox et que j'appuie sur le bouton supprimer du userform, la ligne de code va me permettre de sélectionner la cellule liée au nom et de la supprimer (le code n'étant pas lié au nom mais à la cellule. Ce qui veut dire que lorsque je vais modifier le nom d'un commercial dans mon tableau, ma ligne de code fonctionne toujours).

Merci de votre aide.
Configuration: vista 
Internet Explorer 7.0

1 réponse

  1. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    je te propose quelques petites routines...

    dans un module tu met ce code
    puis va voir en bas

    Public listetruc() As String ' définit un tableau de charactères
    Public MonIndex As Variant
    Sub création_article()
    '*****************************************************
    ' cette routine génère des listes
    '*****************************************************

    Dim i As Integer

    ' ******************************
    ' lecture des informations sur la feuil1
    ' *******************************
    Sheets("Feuil1").Select
    Range("A3").Select 'ma liste commence en A3
    nbrlig = Range("A3").CurrentRegion.Rows.Count

    For i = 0 To nbrlig - 1
    ReDim Preserve listetruc(i + 1)

    ' le tableau contient la donnée de la liste
    listetruc(i) = Range("A3").Offset(i, 0).Value

    Next i

    ' *******************************

    UserForm1.Show

    End Sub
    '*****************************************

    dans le useform tu mets ceci.
    Private Sub CommandButton1_Click()
    Unload Me
    End Sub

    Private Sub CommandButton2_Click()
    MonIndex = ListBox1.ListIndex
    UserForm1.ListBox1.RemoveItem (ListBox1.ListIndex)
    Sheets("Feuil1").Range("A3").Offset(MonIndex, 0).Delete
    End Sub

    Private Sub UserForm_Initialize()
    UserForm1.ListBox1.List = listetruc()
    End Sub

    je lis les données et je les place dans un tableau puis je l'affecte en tant que list aau listbox
    quand je détruit (removeitem) un élément et une cellule (.delete) le tableau n'est pas affecté.

    j'utilise cette astuce pour ceux qui vont trop vite.

    il faut donc que tu ajoute un contrôle listebox
    et un bouton ici commandbutton2

    Quand tu sélectionneras une ligne dans le useform1
    la propriété .listindex prendra une valeur.... 1,2,3,....
    tu pourras rajouter un contrôle dans le bouton si monindex =-1 ( il n'y a pas de sélection )
    alors on ne fait rien.

    A toi d'adapter

    A+
    0