Mise en forme d'une ligne dans un userform avec ListBox

Bonjour,

je gère la facturation de mes commandes. A ce titre j’utilise un fichier dans lequel on retrouve :
col A=>numéro de commande
col B=>montant TTC commande
de col C à col AX=>les éventuelles factures détaillées par mois tel que :
date facture
Numéro facture
Montant TTC facture
MIGO(qui est un code de mandatement de la facture)

Col AY=>le montant TTC total facturé
Col AZ=>le montant TTC maximum restant à facturer…qui n’est autre qu’une soustraction entre 2 colonnes

Mon souhait :

en me positionnant sur une cellule (pas obligatoirement une cellule de la colonne A), je voudrais alimenter ma userform « Userform1 » (déjà créée) à l’aide de ma VB « Facturation_Recap() »

Par exemple si je suis sur la ligne 20 de ma feuille, peut importe la colonne :
numéro de commande : Textbox1=A20
montant TTC : Textbox2=B20
montant TTC déjà facturé : Textbox3=AY20
Montant TTC maximum restant à facturer : textbox4=AZ20

Alimenter ma ListBox1 avec les éventuelles factures trouvées pour la ligne 20
Je ne souhaite pas de ligne vide si un mois il n’y a pas de factures
Si aucune facture, afficher dans ma listbox1 « PAS ENCORE DE FACTURATION » en gras et rouge

Je me chargerai de la mise en page qui est assez spartiate pour le moment.
Voici mon fichier
Facturation.xlsm (69,5 Ko)

Par avance je vous remercie.

Bonjour,
A tester par double clic sur une des cellules qui ne contient pas de lien hypertext
Facturation.xlsm (78,7 Ko)

Il me semble que la police en gras et les couleurs ne sont pas possibles sur listbox, il faut utiliser une listview

Bonjour Mimimathy,

Merci pour ton travail.
ça fonctionne, sauf pour la ligne 131 qui contient plusieurs numéros de factures dans la même cellules. Et malheureusement je ne peux pas faire autrement.
Mais ce cas est vraiment extrêmement rare.

A Bientôt

…et autre chose.

Peut-on ajuster la taille et le positionnement des données qu’on affiche dans la ListBox ?
Comment faire pour mettre cette macro dans un bouton plutôt qu’un double clique sur une cellule ?

MERCI++

Re,

Ajuster ou positionner comment?

Pourquoi, un bouton?
Tu vas choisir une cellule et ensuite cliquer sur un bouton?
Double manipulation, ou alors j’ai pas compris la demande

Ajuster car par exemple le champ « Date » est trop long. Je pensais à un affichage tel que :
image

et oui, je pensais à un bouton, car mon tableau va grandement évoluer et très rapidement se retrouver avec un grand nombre de colonnes supplémentaires avant la colonne A car je compte rajouter la partie demande du besoin, devis, budget etc…

…ou sinon dis moi comment modifier quand je rajoute des colonnes (paramètre ‹ Col = 50 › ?)

Re,
Ok, pour la largeur des colonne, depuis VBA, sur l’userform, clic sur la Listbox et dans ses propriétés du donne les données comme sur l’image jointe
A toi de mettre les bonnes dimensions et de faire des tests pour arriver à ton envie
(tu n’es pas obligé de mettre les ‹ pt ›, ils se mettront automatiquement
pour mon exemple → 100;100;100;100)
image

Et pour le Nb de colonne, modifie dans la macro en Feuil1

au lieu de
Col=50
par

Col = Ws.Cells(1, Columns.Count).End(xlToLeft).Column

Ok on est vraiment vraiment pas mal là !
juste 2 dernières choses pour peaufiner :

dans la ListBox1, peut-on afficher les données de la colonnes 3 (Montant TTC) sous la forme « #,##0.00 € » identique au TexTbox. Car actuellement si le montant est 125,00 est affiché 125 dans la ListBox (exemple ligne 12).

Je ne me souviens plus comment adapter la hauteur de la ListBox en fonction du nombre de ligne affichée à l’intérieur. est-ce possible ? de manière à ne pas avoir trop de blanc si une seule facture ?

MERCI+++

Re,
Pour le format monaitaire, remplacer par cette ligne

UserForm1.ListBox1.Column(2, j) = Format(.Cells(Target.Row, i + 2), "#,##0.00 €")

pour la hauteur, insérer cette ligne après le End IF et avant Userform.Show

  End If
  UserForm1.ListBox1.Height = (j + 1) * 11
  UserForm1.Show

Ecoutes c’est top désormais et ça répond parfaitement à mon attente
MERCI+++

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.