Test de plusieurs variables
Résolu/Fermé
fabien25000
Messages postés
673
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
28 juillet 2022
-
5 mars 2021 à 17:55
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 7 mars 2021 à 16:46
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 7 mars 2021 à 16:46
A voir également:
- Test de plusieurs variables
- Test performance pc - Guide
- Test composant pc - Guide
- Redmi note 13 5g test - Accueil - Téléphones
- Test performance pc gratuit - Accueil - Utilitaires
- Test hdd - Télécharger - Informations & Diagnostic
4 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
7 mars 2021 à 09:08
7 mars 2021 à 09:08
Bonjour,
à tester : https://www.cjoint.com/c/KChiggRie2D
Mais j'écrirais plutôt sous la forme "abattant : 2" ou "abattant (2)" à cause des pluriels.
eric
à tester : https://www.cjoint.com/c/KChiggRie2D
Mais j'écrirais plutôt sous la forme "abattant : 2" ou "abattant (2)" à cause des pluriels.
eric
jee pee
Messages postés
40678
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
14 janvier 2025
9 490
5 mars 2021 à 19:02
5 mars 2021 à 19:02
Bonjour,
L'imbrication avec juste des formules est compliqué, il doit falloir utiliser une macro qui devrait faire le job facilement,
Avec juste des formules, en 3 étapes, avec les données en A1,B1,C1,D1,E1 et F1
en G1 on concatène les 6 champs
en H1 on supprime la virgule de fin
en I1 on remplace la dernière virgule éventuelle par " et "
L'imbrication avec juste des formules est compliqué, il doit falloir utiliser une macro qui devrait faire le job facilement,
Avec juste des formules, en 3 étapes, avec les données en A1,B1,C1,D1,E1 et F1
en G1 on concatène les 6 champs
=SI(A1<>"";A1&",";"")&SI(B1<>"";B1&",";"")&SI(C1<>"";C1&",";"")&SI(D1<>"";D1&",";"")&SI(E1<>"";E1&",";"")&SI(F1<>"";F1&",";"")
en H1 on supprime la virgule de fin
=SI(DROITE(G1;1)=",";GAUCHE(G1;NBCAR(G1)-1);G1)
en I1 on remplace la dernière virgule éventuelle par " et "
=SIERREUR(REMPLACER(H1;(NBCAR(H1)-(NBCAR(H1)-CHERCHE("µ";SUBSTITUE(H1;",";"µ";NBCAR(H1)-NBCAR(SUBSTITUE(H1;",";""))))));1;" et ");H1)
fabien25000
Messages postés
673
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
28 juillet 2022
59
6 mars 2021 à 09:45
6 mars 2021 à 09:45
Bonjour, merci pour ton temps mais ce n'est pas des formules que je recherche, j'ai parlé d'un "select case" je pensais que cela demandait implicitement une solution en vba mais la méthode est toute fois ce que je cherchais effectivement.. merci encore
Raymond PENTIER
Messages postés
58813
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 janvier 2025
17 266
5 mars 2021 à 22:39
5 mars 2021 à 22:39
Bonjour Fabien.
Pour moi, ton exposé est trop vague : je ne vois pas ce que tu veux obtenir ...
Pourrais-tu donner des exemples concrets ?
Pour moi, ton exposé est trop vague : je ne vois pas ce que tu veux obtenir ...
Pourrais-tu donner des exemples concrets ?
dachiasse
Messages postés
1709
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
13 mai 2021
149
>
Tessel75
6 mars 2021 à 01:13
6 mars 2021 à 01:13
Salut,
Si j'ai compris la demande, dans ta phrase : "Des pommes, des poires et des scoubidous bidous" la dernière cellule contient : des scoubidous bidous
Si j'ai compris la demande, dans ta phrase : "Des pommes, des poires et des scoubidous bidous" la dernière cellule contient : des scoubidous bidous
Tessel75
>
dachiasse
Messages postés
1709
Date d'inscription
samedi 12 septembre 2020
Statut
Membre
Dernière intervention
13 mai 2021
6 mars 2021 à 01:32
6 mars 2021 à 01:32
Fabien dira ce qu'il veut faire exactement, mais moi, j'ai compris qu'il voulais faire une sorte de concaténation avec dans la cellule finale le groupe complet "Des pommes, des poires et des scoubidous"
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
Modifié le 6 mars 2021 à 00:17
Modifié le 6 mars 2021 à 00:17
Bonjour à tous,
un essai :
eric
un essai :
Sub test() Dim tabl(1 To 6) As String, ch As String, i As Long For i = 1 To 4: tabl(i) = "item" & i: Next i 'concat For i = 1 To 6 If tabl(i) <> "" Then ch = ch & ", " & tabl(i) Next i ch = Mid(ch, 3) i = InStrRev(ch, ", ") ch = Left(ch, i - 1) & " et " & Mid(ch, i + 2) End Sub
eric
fabien25000
Messages postés
673
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
28 juillet 2022
59
Modifié le 6 mars 2021 à 09:47
Modifié le 6 mars 2021 à 09:47
Bonjour Eric,
un grand merci c'est ce que je cherchais, je m'en veut presque de ne pas y avoir pensé.., si je comprend bien tu regroupes les variables dans tableau et concatènes tout avec une virgule en "séparateur" pour ensuite remplacer la dernière virgule par un " et "?
il va falloir que j'adapte un petit peu parce que mes variables sont déjà des bouts de phrases qui peuvent contenir des virgules mais en utilisant "/" par exemple pour insérer le " et " et ensuite un remplace() pour transformer les "/" en ", " je pense que ça doit jouer..!
juste pour ne pas copier bêtement, je ne comprend pas le Mid(ch, 3)?
un grand merci c'est ce que je cherchais, je m'en veut presque de ne pas y avoir pensé.., si je comprend bien tu regroupes les variables dans tableau et concatènes tout avec une virgule en "séparateur" pour ensuite remplacer la dernière virgule par un " et "?
il va falloir que j'adapte un petit peu parce que mes variables sont déjà des bouts de phrases qui peuvent contenir des virgules mais en utilisant "/" par exemple pour insérer le " et " et ensuite un remplace() pour transformer les "/" en ", " je pense que ça doit jouer..!
juste pour ne pas copier bêtement, je ne comprend pas le Mid(ch, 3)?
fabien25000
Messages postés
673
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
28 juillet 2022
59
6 mars 2021 à 10:34
6 mars 2021 à 10:34
D'avance pardon.. :
je n'étais pas en train de bosser sur mon fichier quand je suis venu poster mon sujet et j'ai oublié une chose importante..
la solution que tu m'as donnée est bonne et je t'en remercie encore .... Mais..
pour reprendre :
je voudrais effectivement écrire "1 pomme, 1 poire, 1 orange et 1 cerise" mais si j'ai "1 pomme, 1 pomme, 1 poire, 1 orange et 1 cerise" j'aimerai que ça écrive "2 pommes, 1 poire, 1 orange et 1 cerise" si et seulement si les pommes se suivent sinon le descriptif restera "1 pomme, 1 poire, 1 pomme, 1 orange et 1 cerise"
donc pour le moment je suis en train d'écrire ce genre de chose (ce que j'aimerai optimiser dans mon code) :
DescroFaceFinal etant la function suivante :
je n'étais pas en train de bosser sur mon fichier quand je suis venu poster mon sujet et j'ai oublié une chose importante..
la solution que tu m'as donnée est bonne et je t'en remercie encore .... Mais..
pour reprendre :
je voudrais effectivement écrire "1 pomme, 1 poire, 1 orange et 1 cerise" mais si j'ai "1 pomme, 1 pomme, 1 poire, 1 orange et 1 cerise" j'aimerai que ça écrive "2 pommes, 1 poire, 1 orange et 1 cerise" si et seulement si les pommes se suivent sinon le descriptif restera "1 pomme, 1 poire, 1 pomme, 1 orange et 1 cerise"
donc pour le moment je suis en train d'écrire ce genre de chose (ce que j'aimerai optimiser dans mon code) :
Case varTmpCompo1 <> "" And varTmpCompo2 <> "" And varTmpCompo2 = varTmpCompo3 And varTmpCompo2 = varTmpCompo4 And varTmpCompo2 = varTmpCompo5 And varTmpCompo6 <> "" varTmpNbreIdem = 4 Facade = varTmpCompo1 & ", " & DescroFaceFinal(varTmpCompo2, varTmpNbreIdem) & " et " & varTmpCompo6
DescroFaceFinal etant la function suivante :
Function DescroFaceFinal(DescroDpart As String, NbrElement As Byte) Select Case True Case DescroDpart Like "1 Pomme*" DescroFaceFinal = Replace(DescroDpart, "1 Pomme", NbrElement & " Pommes")
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
>
fabien25000
Messages postés
673
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
28 juillet 2022
Modifié le 6 mars 2021 à 11:06
Modifié le 6 mars 2021 à 11:06
Bonjour,
Le mieux serait que tu déposes le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.
Ca permettrait de savoir comment se présentent tes données (feuille, plage ?)
eric
PS : je ne comprend pas le Mid(ch, 3)
c'est pour supprimer le séparateur ", " qui se trouve en tête
Le mieux serait que tu déposes le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.
Ca permettrait de savoir comment se présentent tes données (feuille, plage ?)
eric
PS : je ne comprend pas le Mid(ch, 3)
c'est pour supprimer le séparateur ", " qui se trouve en tête
fabien25000
Messages postés
673
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
28 juillet 2022
59
>
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
Modifié le 6 mars 2021 à 11:38
Modifié le 6 mars 2021 à 11:38
je ne peux malheureusement pas partager le fichier, il s'agit d'un "logiciel" de vente qui est déjà en service sur 2 autres produits donc le mettre en ligne est clairement impensable
Ce sont des userform dans lesquels les commerciaux font des choix sur des combobox.
Sur l'evenement "bouton valider" je récupère tous les choix, j'en fait la synthèse, j'en calcul le tarif et j'édite le devis en publipostage sur word (d'ou ma volonté de sortir un descriptif propre et professionnel)
tu m'as déjà vraiment bien aidé avec ta première réponse, je vais creuser la piste du tableau qui récupère les variables et essayer de voir ce que je peux faire avec une (ou plusieurs) boucle(s) pour repérer les variables qui se suivent et qui sont identiques afin d'éviter les répétitions du genre "1 pomme, 1 pomme, 1 pomme".
je vais travailler dessus et je reviendrai si vraiment je coince toujours
Merci encore à toi et tous ceux qui se sont donné la peine de répondre !
PS : est ce que je passe le sujet en résolu tout de suite pour ouvrir un nouveau sujet plus tard si j'ai besoin?
Ce sont des userform dans lesquels les commerciaux font des choix sur des combobox.
Sur l'evenement "bouton valider" je récupère tous les choix, j'en fait la synthèse, j'en calcul le tarif et j'édite le devis en publipostage sur word (d'ou ma volonté de sortir un descriptif propre et professionnel)
tu m'as déjà vraiment bien aidé avec ta première réponse, je vais creuser la piste du tableau qui récupère les variables et essayer de voir ce que je peux faire avec une (ou plusieurs) boucle(s) pour repérer les variables qui se suivent et qui sont identiques afin d'éviter les répétitions du genre "1 pomme, 1 pomme, 1 pomme".
je vais travailler dessus et je reviendrai si vraiment je coince toujours
Merci encore à toi et tous ceux qui se sont donné la peine de répondre !
PS : est ce que je passe le sujet en résolu tout de suite pour ouvrir un nouveau sujet plus tard si j'ai besoin?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
>
fabien25000
Messages postés
673
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
28 juillet 2022
Modifié le 6 mars 2021 à 11:43
Modifié le 6 mars 2021 à 11:43
Tu peux déposer un fichier de travail avec les données sur une feuille et tu adapteras à ton userform.
Là on ne sait même pas si nombres et libellés sont séparés ou pas
Là on ne sait même pas si nombres et libellés sont séparés ou pas
7 mars 2021 à 15:39
Je m'y pencherai plus sérieusement demain pour adapter cela a mon vrai fichier
En tout cas merci x2 (tarif du dimanche ;) ) pour ta disponibilité
7 mars 2021 à 16:46
Le plus simple est de te faire 2 listes et de piocher dans l'autre si pluriel.
Oui, je n'ai pas pensé à tester si un seul item. mais si tu arrives à t'en dépatouiller plus de pb :-)
eric