Modification ListBox + tableau

Bonjour à tous,

C'est la première fois que je met une question sur ce forum, j'espère que vous pourrez m'aider !

Je vous explique mon problème, (le plus clairement possible !)

J'ai créé un Useform.

Je l'ai initialisé comme j'en avais besoin :

Private Sub CommandButton3_Click()

    Dim ctrl As Control, ctrlerr As Control
    Dim erreur As Boolean
    Dim NbreLots As Integer
    Dim Lig As Long
    NbreLots = 1
    Lig = 2

    erreur = False
        For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.TextBox Then
            If ctrl.Text = "" Then
                    erreur = True
                    Set ctrlerr = ctrl
                    Exit For
            End If
    End If

    Next ctrl

    If erreur = True Then
        MsgBox "Renseigner le nom du lot"
        ctrlerr.SetFocus
        Set ctrlerr = Nothing
    Else
    Do While Not IsEmpty(Range("H" & Lig))
        Lig = Lig + 1
        NbreLots = NbreLots + 1

    Loop
    MsgBox "Lot numéro " & NbreLots

    Range("I" & Lig) = TextBox14.Value
    Range("J" & Lig) = TextBox15.Value
    Range("H" & Lig) = TextBox16.Value
    Range("G" & Lig) = NbreLots

    End If

End Sub

Vous pouvez donc voir que mes valeurs sont stocker dans des cellules de mon tableau et que pour le moment je n'utilise pas ma listBox !

On en arrive à ma question ou plutôt mon souhait ! :

Je voudrai que mes lots soit rangés dans mon tableau ET que leur nom apparaisse dans la listBox (jusqu'ici je sais faire) le vrai problème arrive lorsque je veux que mes utilisateurs puissent modifier leurs lots.

Il faudrait que lorsque il revienne sur ce userform il puisse :

Ajouter un lot (écriture du lot dans tableau et listbox)

ET

Le modifier soit :

  • en cliquant sur le lot choisi dans la listBox, les infos correspondants au lots s'affichent dans les 3 textbox (Code ok pour moi), puis il modifie ce qu'il veut et en appuyant sur le bouton modifier il faut que la listBox soit modifier ET que les valeurs dans le tableau le soit aussi !
  • ou directement dans le tableau, il choisissent un lot, modifie ce qu'ils veulent et cela modifie automatiquement dans la listBox ! Puis lors de la prochaine ouverture du userForm les données seront bien mises à jour.

Le supprimer .. :

Ils doivent pouvoir les supprimer, dans le tableau ou dans la listBox, je ne sais pas trop comment (je voudrais éviter de rajouter un bouton si possible) pour la suppression il ne faut pas que cela crée de bug au niveau des ID et du remplissage de la colonne ...

Si ce n'est pas clair demandez moi !!!

Merci !

Bonjour et bienvenu(e)

(Re) bonjour et1000lio

faust a écrit :

Si ce n'est pas clair demandez moi !!!

Pour être un peu plus limpide ton fichier serait utile

Voila mon projet, mais je ne sais pas si cela va beaucoup vous aidez ... J'ai mis une grande partie du code dans ma question !

En tous cas, merci !

Bonjour

Pour commencer

Il faut déterminer quelle action suit l'appui sur "Supprimer"

On supprime la ligne ?

On supprime juste les 4 colonnes concernant le lot ?

Les "ID Lot" deviennent quoi ?

A bien tester

L'idée serait de supprimer la ligne entière, cad : ID, Nom, Durée et Montant.

Les ID lot je les ai rajouté car je pensais qu'ils pourraient peut-être m'aider lors de la manipulation des lots ... Mais ils n'ont rien de vital !

Bonjour

Avant de te faire cette modification, j'aimerai un retour sur le programme

A suivre

Je suis entrain de regarder les modifications que vous avez fait, cela fonctionne très bien, je n'en attendais pas autant, merci !! Maintenant il faut que je comprenne ce que vous avez fait, je reviendrai vers vous si il y a des notions que je ne comprend pas, si possible ...

faust.


Un retour ?

Je n'ai pas vraiment le niveau pour faire des commentaire sur votre code .. Je manipule ce langage depuis 2 semaines ...


Pour ce qui est de l'ID lors de la suppression, il faudrait qu'il soit modifier ... CAD si nous avons 4 lot comme suit :

1 NomA 1111 34

2 NomB 1333 44

3 NomC 123 134

4 NomD 13456 634

Si on supprimer le lot 3 on aura :

1 NomA 1111 34

2 NomB 1333 44

3 NomD 13456 634


Je vous bombarde de réponses ^^

Pour ce qui est du retour comme je vous l'ai dit, je ne peux pas vous dire grand chose, cela fonctionne, je suis entrain de comprendre ce que vous avez fait. La listBox ne fonctionne pas dans le UserForm projet, du coup je vais essayer de l'implémenter !

Bonjour

faust a écrit :

Mais ils n'ont rien de vital

Mais maintenant il faut les préserver

Un retour c'est de savoir si le programme fonctionne comme tu veux

Et dans ta réponse tu ne dis rien à ce sujet

A tester

Oui, cela fonctionnait très bien ...

J'ai un problème récurant, qui vient de nouveau de se produire lorsque j'ai voulu ouvrir votre V2 . Quand j'ouvre le fichier, le userform ne s'affiche pas, le programme (du userform "projet") ne veut pas s’exécuter et m'affiche l'erreur suivante :

Erreur d'execution '14004':

La méthode 'Range' de l'objet _Global a échoué

Alors que cela fontionnait très bien il y a un instant .. J'ai eu ce problème ce matin avec mon projet ... Je ne sais pas exactement ce que j'ai fait pour que cela fonctionne à nouveau mais j'aimerai comprendre pourquoi cette erreur revient ..

Les quelques lignes qui se trouvent dans le thisWorkbook, la première est surligné lorsque je lance le débogage

Private Sub Workbook_Open()

  FormulaireProjet.Show
  Worksheets("Projet").Protect Password:="truc", UserInterfaceOnly:=True
  'bug
End Sub

Bonjour

Cela vient du fait que tu protèges ta feuille après l'affichage de l'userform

Il faut protéger avant (bien sur comme tu as fait avec l'option UserInterfaceOnly:=True)

Modifies

Private Sub Workbook_Open()

  Worksheets("Projet").Protect Password:="truc", UserInterfaceOnly:=True
  FormulaireProjet.Show
  'bug
End Sub

Un grand merci !

Rechercher des sujets similaires à "modification listbox tableau"