Rapport de message :*
 

Re: Aide sur userform

Titre du sujet : Re: Aide sur userform
par myDearFriend! le 13/02/2023 15:19:36

Bonjour tactic6, le Forum,

 

Je n'ai pas tout repris dans ton code (et je ne le ferai pas, hein ?! wink), mais tu trouveras en pièce jointe des façons de t'en sortir je pense...

 

Citation :

tactic6 a écrit :

Sur la feuille SAISIE

1 Dblclick sur une cellule entre B15: B52 déclenche l'USF

apres recherche je voudrais que les infos sur l'usf soit recopiée sur la feuille SAISIE

 

Concernant le lancement du USF par double-clic, ton code était correct (mais ton USF se nomme "Recherche_Pièces", aussi l'instruction "Pièces.Show" méritait aussi une modification du nom correspondant pour fonctionner)

 

Ensuite, je n'ai pas compris pourquoi ce choix de colonne H de la FEUIL1 pour la source de données de la ComboBox des Quantités... Voir mon interprétation de ce point dans le fichier.

 

Concernant la recopie des données dans la feuille SAISIE, tu y étais presque! Il ne te manquait que la ligne ci-dessous en rouge pour déposer les données au bon endroit :

Private Sub BtnImporter_Click()
Dim x$
Dim Lig As Long
    x = "SAISIE"
    
    With Sheets(x)
        Lig = .Cells(52, 2).End(xlUp).Row + 1       ' = 1ère ligne libre dans la facture
        .Cells(Lig, 2).Value = TextBox1.Value
        .Cells(Lig, 3).Value = TextBox2.Value
        .Cells(Lig, 11).Value = TextBox3.Value * 1
        .Cells(Lig, 9).Value = TextBox4.Value * 1
        .Cells(Lig, 8).Value = ComboQuantite.Value * 1
        .Cells(Lig, 10).Value = (ComboQuantite.Value * 1) * (TextBox4.Value * 1)
    End With
    Unload Me
End Sub

 

Citation :

tactic6 a écrit :

J'aimerais aussi que les colonnes de ma ListBox soient remaniées afin que les noms des colonnes soient alignées avec les colonnes

 

Tu as 2 solutions pour ce faire :

  1.  Tu positionnes les labels d'entête à la main dans ton USF (c'est ce qu'il y a de plus simple à faire, et c'est la solution que je te conseille...)
  2.  Tu peux intégrer directement les ENTETES de colonnes sur une ligne figée dans la ListBox elle-même en faisant comme ceci :
            With Feuil1
                Set Plage = .Range("A2:D" & .Cells(.Rows.Count, 2).End(xlUp).Row)
                ListeArticles.ColumnHeads = True
                ListeArticles.RowSource = "'" & .Name & "'!" & Plage.Address
            End With
    
    MAIS ATTENTION ! Si ça te permet d'avoir les titres bien alignés proprement dans les colonnes, en contrepartie, ça interdit l'utilisation de certaines méthodes ou propriétés de la ListBox classique dans la suite de ton code...
    Par exemple, impossible ensuite d'utiliser la méthode "ListeArticles.Clear" notamment!

 

Pour conclure, je te conseille très fortement de renommer les objets de tes formulaires (comme je l'ai fait pour certains ici) afin de clarifier un peu ce que tu fais... Par exemple, "BtnImporter", c'est quand même un peu plus clair que "CommandButton3" ou autre...

 

Je te laisse observer le code en pièce jointe, en espérant que ça t'aidera un peu.

 

Par ailleurs, tu peux aussi essayer de t'inspirer d'un autre projet similaire que j'avais déjà remanié  un peu pour l'ami Antonio dans CE FIL DE DISCUSSIONS (voir le fichier joint à mon post en fin de discussion).

 

Je te souhaite bon courage pour la suite.

Bien cordialement,