Autres Condition dans listbox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

saddoud w

XLDnaute Nouveau
J’ai un problème de condition dans ma listbox …car j’ai fait une première condition puis j’ai voulu ajouter une autre mais je trouve une difficulté …. Je veux fusionner deux valeur en double (Me.ListBox1.List(I, 3)) et avoir la somme de deux ou plusieurs valeurs de (Me.ListBox1.List(I, 4)) en gardent la condition sur la (Me.ListBox1.List(I, 4))
Merci d’avance pour tout aide
 
Bonjour @saddoud w 🙂, Bienvenue

J'ai consulté ton fichier, bien que n'étant pas un As du codage j'ai relevé plusieurs erreurs dont ces lignes
VB:
Set F = ActiveSheet
Set plage = F.[b4].CurrentRegion ''
Set plage = ActiveSheet.Range("a5:a30000")
Pourrais-tu mettre des entêtes à ton tableau, et nous dire quelles colonnes récupérer dans la listbox.
Pour Alimenter la Listbox, il faut traiter les données au préalable avant d'alimenter cette dernière.
D'où vient le montant à payer?

Peut-être A+
 
bonjour ...
c'est encore moi avec le même programme ... j'ai un problème avec la sortie du donner du listbox ... les valeurs récupéré sont au format texte et non format numérique
merci encore pour l'aide
Bonsoir, je te réponds rapidement car je suis crevé.
Dans un userform toutes les données dans les contrôles sont du texte.
C'est valable pour textbox, combobob, listbox etc...
Je suppose que les données transmises sur la feuille ne sont pas au bon format.
Il faut reformater dans le format souhaité.
exemple range("a1")=cdbl(textbox1).

J'espère que tu vas t'en sortir.
Bonne soirée.
 
j'ai tester ce code :
For x = 0 To .ListCount - 1
For y = 0 To .ColumnCount - 1
If y > 3 Then
ActiveSheet.Range("A11").Offset(x, y) = cdbl (.List(x, y))
Else
ActiveSheet.Range("A11").Offset(x, y) = .List(x, y)
End If
Next y, x

mais il me fait des erreur ... je ne sais pas pourquoi
 
j'ai tester ce code :
For x = 0 To .ListCount - 1
For y = 0 To .ColumnCount - 1
If y > 3 Then
ActiveSheet.Range("A11").Offset(x, y) = cdbl (.List(x, y))
Else
ActiveSheet.Range("A11").Offset(x, y) = .List(x, y)
End If
Next y, x

mais il me fait des erreur ... je ne sais pas pourquoi
Bonjour @saddoud w ,

Apparemment, tu n'as pas consulté la charte du Forum. Je te conseille de la lire.
Normal que ça plante, tu boucles sur toutes les données de la Listbox. Il se trouve que certaines données ne sont pas numériques et ça plante.
Je constate que ce n'est pas vraiment toi qui code. Tu effectues plusieurs fois la même boucle à plusieurs reprises. Sans compter la boucle de la procédure cumul qui est incomplète.

Bonne continuation.
 
Bonsoir Cathodique😉, Saddoud w🙂,

Je rejoins Cathodique.
Je ne comprends pas vraiment ce que tu veux. En effet, Tu formates le visuel (c-à-d listbox, textbox ect..). Ensuite, tu reformates pour transférer les données sur la feuille. Ton défaut, soit que tu ne donnes pas de suite, soit tu réponds à côté aux questions qu'on te pose pour t'aider.
Dans ces conditions, je ne peux plus t'aider.

Bonne soirée.

ps: Aucune forme de politesse dans tous tes messages (je crois que c'est l'une des raisons que Cathodique t'a invité à consulter la charte du forum).
 
Bonjour @saddoud w ,

Apparemment, tu n'as pas consulté la charte du Forum. Je te conseille de la lire.
Normal que ça plante, tu boucles sur toutes les données de la Listbox. Il se trouve que certaines données ne sont pas numériques et ça plante.
Je constate que ce n'est pas vraiment toi qui code. Tu effectues plusieurs fois la même boucle à plusieurs reprises. Sans compter la boucle de la procédure cumul qui est incomplète.

Bonne continuation.


Premièrement : merci infiniment pour votre aide car j’ai anneler de bouclé tout et j’ai réussie avec ce code

If .ListCount - 1 >= 2 Then

Rows("12:" & 11 + .ListCount - 2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

End If

For x = 0 To .ListCount - 1

ActiveSheet.Range("A7").Offset(x, 0) = .List(x, 0)

ActiveSheet.Range("A7").Offset(x, 1) = .List(x, 1)

ActiveSheet.Range("A7").Offset(x, 2) = .List(x, 2)

ActiveSheet.Range("A7").Offset(x, 3) = CDbl(.List(x, 3))

ActiveSheet.Range("A7").Offset(x, 4) = CDbl(.List(x, 4))

ActiveSheet.Range("A7").Offset(x, 5) = CDbl(.List(x, 5))

Next x



Deuxièmes chose que je veux éclaircir c’est que mon programme et un peu grand (6 userform et 4 feuilles) et plain de donnés à remplir et pour ne pas vous faire fatigué j’ai demandé l’aide sur le 6éme userforme (que je viens de le copier pour minimiser la recherche) … je traverse mon chemin pour être plus pratiquant sur Excel et je demande de l’aide à chaque fois que je coince et chaque fois j’essais de adapter les codes pour terminer ce programme (que c’est fait avec votre aide) pour cela que vous trouvez par fois des codes un peu bizarre … merci encore
 
Bonjour,

Tu n'as toujours pas lu la charte. On commence par dire Bonjour (Bonsoir).
Pour ton code pas pratique, tu risques d'avoir de mauvaises surprises. Il est plus judicieux d'utiliser le Name ou l'index de la feuille.
Pour le code il faut le mettre comme ceci (voir animation)

confusion.gif
Tu prends la cellule A1 comme référence pour transférer sur ta feuille. Comment feras-tu à la prochaine utilisation de ton userform.
Pas compris ton approche. tu alimentes un listbox avec un bouton et tu transferts vers une autre feuille sans aucun traitement. Je ne vois aucun interet. Fais un copier/coller.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour