ListBox + Double Clic

Bonjour le forum,

j'espère que ce 1er jour de la semaine ce passe bien pour vous ! Mon problème aujourd'hui est le suivant :

J'ai 3 UserForms (New Quote, Visu Quote, Modif Quote) dans mon fichier,

le 1er me servant à saisir mes cotations,

le suivant afin de visualiser grâce à une listBox mes cotations et les stats qui en découlent

le dernier doit me servir à modifier ma cotation en allant rechercher dans ma feuille "QUOTATION" la bonne ligne de mon tableau. à ouvrir l'UserForm "MODIF_QUOTE" à compléter les champs et après modif de celle ci de la renvoyer dans le tableau feuille"QUOTATION".

Tout ceci pourrait être génial si l'UserForm "MODIF_Quote" pouvait s'ouvrir en double cliquant sur une ligne de la ListBox dans le 2eme UserForm.

merci de votre aide

au plaisir de vous lire

Pipin54000

Bonjour,

Je ne sais pas pourquoi, mais dès que je veux afficher un de tes formulaire, un message m'agresse systématiquement me disant qu'il manque une blibliothèque ou que le projet n'existe pas, ça plante sur chaque ligne format() de ton fichier, et je ne comprends pas pourquoi, j'ai déjà utilisé cette fonction sur de nombreux codes...

Si ça peut t'aider, tu as un évènement Listbox_dbleclick dont tu peux te servir, il te reste ensuite à utiliser Listbox.list(listbox.listindex,colonne) pour avoir l'information qui t'intéresse.

le forum, Ausecour,

Merci de ton retour,

je ne sais absolument pas pourquoi ça fait cela, mes connaissances excel ne sont pas aussi développées ....

je vais faire une recherche sur cette fonction et essayé de me dépatouiller comme je peux

à te lire

Pipin54000

D'accord, bonnes recherches

Si tu bloques encore, n'hésite pas à poser des questions

Bonsoir Ausecour, le forum,

J'ai fais mes recherche et trouvé plus ou moins mon bonheur.

j'ai une erreur 424 objet requis sur le ligne de mon UserForm "MODIF_QUOTE" ; lorsque je double clic dans ma listbox de l'UF "VISU_QUOTE".... j'ai cherché mais il y a toujourss un truc qui m'échappe à cette heure !

ci joint mon fichier

à te lire

Pipin54000

Bonjour,

J'ai toujours le soucis de la fonction format qui m'empêche de lancer quoi que ce soit, je vais donc faire avec mes connaissances, sans pouvoir vérifier

J'ai regardé le code de ton évènement double click sur ta listbox1:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'On Error Resume Next
ReDim TbListbox(1 To ListBox1.ColumnCount)
For x = 1 To ListBox1.ColumnCount
  TbListbox(x) = ListBox1.Column(x - 1)
Next x
MODIF_QUOTE.Show

End Sub

Pour ton redim, pas de soucis, tu fais 1 to column.count et tu enlèves 1 à x plus tard.

En revanche là où à mon avis ça plante, c'est la ligne :

  TbListbox(x) = ListBox1.Column(x - 1)

Parce que tu n'appelles pas la liste correctement, tu veux appeler la propriété column de la liste, à laquelle tu veux donner une valeur x-1.

Une liste c'est comme un tableau à deux dimensions, il faut lui donner la ligne et la colonne, ici c'est pareil, et pour utiliser ton tableau il faut utiliser ListBox1.List(Ligne,Colonne).

Dans ton cas il va falloir savoir quelle ligne est sélectionnée dans ta liste, il faut pour cela utiliser la propriété ListBox1.ListIndex.

ça devrait donner:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'On Error Resume Next
ReDim TbListbox(1 To ListBox1.ColumnCount)
ligne = ListBox1.ListIndex
For x = 1 To ListBox1.ColumnCount
  TbListbox(x) = ListBox1.List(ligne, x - 1)
Next x
MODIF_QUOTE.Show

End Sub

Tu me diras si c'est bon avec ça

Après, je ne pense pas qu'enregistrer ton tableau ici soit une bonne idée, quand tu vas arriver à EndSub, il va se vider, à moins que tu le déclares en Public:

Public TbListbox as variant

Tout en haut de ta feuille, ça le rendra accessible de partout, et surtout ça gardera sa valeur après la fin de la procédure, tu pourras ainsi l'appeler dans l'initialisation de ton formulaire de modification.

C'est tout ce que je peux t'expliquer pour le moment

Ausecours,

Merci de ton retour, encore déolé je comprends pas pourquoi cela donne ça quand tu l'utilise

J'ai modifié la ligne incriminé par ton code, lors de l'exécution j'ai une erreur variable non définis ....et lorsque je la définis j'ai de nouveau une erreur objet requis sur "MODIF_QUOTE.Show"

a te lire

Pipin54000

Re

Je ne suis pas sûr que le problème vienne de MODIF_QUOTE.show, parce que quand je mets le nom, ça me propose bien .Show en méthodes, ce qui veut dire que l'objet est reconnu.

As-tu essayé de jeter un oeil du côté de l'initialisation du formulaire pour voir si toutes les lignes se lisent normalement?

Parfois la méthode .show d'un formulaire renvoie une erreur car tu as un soucis à l'initialisation, ce qui te fais penser que c'est la méthode .show qui débloque, alors que c'est souvent autre chose...

Mets un point d'arrêt sur l'instruction .Show et regarde si ça arrive à aller dans l'évènement Userform_Initialize, puis fais moi un retour

Re Ausecour,

Alors j'ai mis un point d'arrêt sur la ligne "MODIF_QUOTE.SHOW" et il semble que ça arrive à aller sur UserForm_Initialize

Mauvaise nouvelle ?

Option Explicit

Public TbListbox As Variant

Private Sub CommandButton1_Click()
    Unload Me
End Sub

Private Sub UserForm_Initialize()

    With Sheets("QUOTATION").Range("A8")
        ListBox1.RowSource = Range(.Cells, .End(xlDown)(1, 17)).Address(External:=True)
    End With
        ListBox1.ListIndex = -1

  ListBox1.ColumnWidths = 50 & ";" & 40 & ";" & 190 & ";" & 35 & ";" & 35 & ";" & 20 & ";" & 25 & ";" & 20 & ";" & 25 & ";" & 35 & ";" & 25 & ";" & 0 & ";" & 40 & ";" & 85 & ";" & 70 & ";" & 40 & ";" & 200
        Sheets("QUOTATION").Activate

    'INDICATEUR "TOTAL" QUOTE
        Me.TextBox1 = Range("E2").Value ' Total Nombre de Quotation
        TextBox2.Value = Format(Range("E3").Value, "00.00 %") ' Total Pourcentage de Quotation

    'INDICATEUR "OBTENUE" QUOTE
        Me.TextBox3 = Range("F2").Value
        TextBox4.Value = Format(Range("F3").Value, "00.00 %")

    'INDICATEUR "MANQUEE" QUOTE
        Me.TextBox6 = Range("G2").Value
        TextBox5.Value = Format(Range("G3").Value, "00.00 %")

    'INDICATEUR "NON FERME" QUOTE
        Me.TextBox8 = Range("H2").Value
        TextBox7.Value = Format(Range("H3").Value, "00.00 %")

    'INDICATEUR "RELANCE" QUOTE
        Me.TextBox10 = Range("I2").Value
        TextBox9.Value = Format(Range("I3").Value, "00.00 %")

    'INDICATEUR "RESEAU" QUOTE
        Me.TextBox12 = Range("S5").Value
        TextBox11.Value = Format(Range("S6").Value, "00.00 %")

    'INDICATEUR "SEA GLOBAL" QUOTE
        Me.TextBox14 = Range("AE3").Value
        TextBox13.Value = Format(Range("AF3").Value, "00.00 %")

    'INDICATEUR "AIR GLOBAL" QUOTE
        Me.TextBox16 = Range("AE2").Value
        TextBox15.Value = Format(Range("AF2").Value, "00.00 %")

    'INDICATEUR "ROAD GLOBAL" QUOTE
        Me.TextBox18 = Range("AE4").Value
        TextBox17.Value = Format(Range("AF4").Value, "00.00 %")

     'CODE REMPLISSAGE TEXTBOX AVEC DATE DU JOUR
        TextBox19.Value = Format(Now, "dd/mm/yyyy")

        Sheets("ACCUEIL").Activate
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'On Error Resume Next
ReDim TbListbox(1 To ListBox1.ColumnCount)
Dim ligne As String
ligne = ListBox1.ListIndex
For x = 1 To ListBox1.ColumnCount
  TbListbox(x) = ListBox1.List(ligne, x - 1)
Next x
MODIF_QUOTE.Show

End Sub

A te lire

Pipin54000

Bonjour,

Je crois que je viens de trouver ce qui m'embête dans tes programmes : Option Explicit, qui du coup m'embête dès que tu as oublié de déclarer une variable, ou que tu appelles Format sans écrire Strings.Format, je déteste travailler avec Option Explicit...

Une erreur que montre Option Explicit : TextBox7 n'est pas déclarée, autrement dit, tu n'as pas Textbox qui s'appelle Textbox7 dans le formulaire que tu initialises, c'est pourquoi tu as un message d'erreur de type "pas d'objet" quand tu initialises ton formulaire, la date est Textbox4.

J'ai corrigé ça et je n'ai plus de message d'erreur à présent.

Voici le fichier corrigé:

Ausecours,

Ca fonctionne ta solution, c'est juste impeccable !

Je vais pouvoir contiuer ce projet grâce à toi !

Un grand merci !!

A te lire

Pipin54000

Re

De rien!

Bonne continuation de projet alors

Merci d'avoir passé le sujet en résolu

Rechercher des sujets similaires à "listbox double clic"