Autres Condition dans listbox

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
 

cp4

XLDnaute Barbatruc
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+
 

cp4

XLDnaute Barbatruc
Bonjour,

Il faudrait que tu passes par
Sans explication, toujours pas compris d'où viennent les 2400 de textbox5
Textbox3 et 4 ok

Bon week-end.
 

Pièces jointes

  • Condition dans listbox (Matricules triées).xlsm
    46.8 KB · Affichages: 17

cp4

XLDnaute Barbatruc
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.
 

saddoud w

XLDnaute Nouveau
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
 

cathodique

XLDnaute Barbatruc
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.
 

cp4

XLDnaute Barbatruc
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).
 

saddoud w

XLDnaute Nouveau
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
 

cp4

XLDnaute Barbatruc
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:

Discussions similaires

Réponses
17
Affichages
909
  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
188