Signaler

Inserer une liste variable dans une nouvelle feuille [Résolu]

Posez votre question Phivas 3Messages postés samedi 17 juin 2017Date d'inscription 19 juin 2017 Dernière intervention - Dernière réponse le 24 juin 2017 à 21:07 par Phivas
Bonjour, pouvez-vous m'aider s-v-pl.

Pour configurer un produit j'ai listé dans une feuille appelée "specification prix" toutes les options que je sélectionne individuellement en indiquant 1 dans la cellule correspondante.

Ensuite j'insère la liste ainsi sélectionnée dans une feuille 2 appelée "offre".

Mon problème 1) est que puisque le nombre de ligne insérées dans la feuille 2 est variable il faudrait que l'espace d'insertion soit aussi variable pour ne pas effacer ce qu'il y a avant et après... et je ne sais pas comment faire.

Mon problème 2) dans la feuille "spécification prix" il y a plusieurs Colonnes (A,B,C,D,E,D,F) et j'aurais besoin de pouvoir sélectionner seulement certaines (par ex: A, B).
Un grand merci d'avance.
Afficher la suite 
Utile
+0
plus moins
Bonjour,

Bienvenue sur le forum

Ce que tu ne précise pas c'est ta méthode : tu fonctionnes en VBA ou par formule ?
Donnez votre avis
Utile
+0
plus moins
Bonjour gbinforme,

Tout d'abord un grand merci de considérer ma demande.

Vraiment désolé pour le manque de précision, honnêtement je m'y connais pas du tout en programmation VBA donc je ne me suis même pas posé la question. J'ai créé un fichier dans lequel j'utilise un code en VBA que j'ai trouvé sur le net et qui permet de copier (pas insérer) ma sélection dans la feuil2.

Y a t'il moyen de charger mon fichier, c'est peut-être plus parlant?

Merci.
gbinforme 13835Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 23 juin 2017 Dernière intervention - 18 juin 2017 à 18:28
Bonsoir,

Pour communiquer ton classeur tu le télécharges sur http://cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
Cela nous permettra d'adapter ta procédure à ton classeur et à tes souhaits de résultats.
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour gbinforme,

Merci pour l'information, j'ai téléchargé le fichier, voici le lien:

http://www.cjoint.com/c/GFthLoDPlWp

Merci d'avance
gbinforme 13835Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 23 juin 2017 Dernière intervention - 19 juin 2017 à 11:52
Bonjour Phivas,

1) Dans quelle plage de 'Offre' veux-tu mettre tes sélections ?

2) les colonnes ( A, B) ? vont dans quelles colonnes de 'Offre' ?
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour gbinforme,

1) Mes sélections sont à insérer dans "Offre" à partir de la rangée 22 (juste en dessous des titres: Pos, Nr, Description, Qtité)

2) "Spécification prix" colonne A va dans "Offre", colonne B (Nr)
"Spécification prix" colonne B va dans "Offre", colonne C (Description)
"Spécification prix" colonne E va dans "Offre", colonne E (Qtité)

Encore une petite question si vous permettez,
Comment est-ce que je peux insérer le nom du fichier (qui correspond au numéro d'offre) dans une cellule (hors entête et pied de page)? j'ai beau chercher mais je vois pas .

Encore un grand merci pour votre aide.
Donnez votre avis
Utile
+0
plus moins
Bonjour,

Je n'ai pas trop compris tes colonnes E et F car ta formule ne pouvait pas fonctionner : tu me préciseras.
Regardes dans l'offre si cela te conviens.

http://www.cjoint.com/c/GFtuE6PVYml
Donnez votre avis
Utile
+0
plus moins
Bonjour gbinforme,

Super! ca marche! c'est vraiment génial, merci beaucoup pour votre aide.

P.S.: j'avais inversé E et F, désolé!

Une dernière question, je souhaite protéger des zones de la feuille mais cela empêche le rafraîchissement des informations, y a t'il un moyen de la protéger?
gbinforme 13835Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 23 juin 2017 Dernière intervention - 20 juin 2017 à 08:42
Bonjour Phivas,

Voici ton classeur avec ta feuille protégée sans mot de passe
Il faut déverrouiller les lignes modifiables (celles du tableau actuellement),
puis cocher les options nécessaires dans la protection.
Bien entendu le tableau est modifiable : si tu ne veux pas il faut procéder autrement.

http://www.cjoint.com/c/GFugK11ZmCl
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour gbinforme,

Merci beaucoup, je comprend mieux comment fonctionne les cases à cocher dans le menu protection feuilles.

Grâce à vous mon fichier est devenu vraiment fonctionnel présentable.

Si je peux me permettre,

J'ai encore 2 soucis, l'onglet devise ne se rafraîchi pas correctement, je dois actualiser manuellement et je ne suis pas sur de la source.

L'onglet "offre" qui est l'offre de référence est en Euros si je crée un nouvel onglet appelé "offre USD" comment puis-je faire pour avoir la même présentation mais les valeurs converties en USD?

Un grand merci et une bonne journée.
gbinforme 13835Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 23 juin 2017 Dernière intervention - 20 juin 2017 à 18:50
Bonjour Phivas,

Regardes si c'est ce que tu voulais

- je t'ai rajouté ta feuille avec ce que j'ai compris

- j'ai coché l'actualisation en arrière plan

http://www.cjoint.com/c/GFuqYt46MBl
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonsoir gbinforme,

Un grand merci, c'est exactement ce que ce que voulais par contre je n'arrive pas à transposer les dernières adaptations VBA à mon fichier de référence, il y a quelque chose qui coince avec les devises USD.

Je me permet de vous envoyer le lien du fichier de référence, je ne comprend pas pourquoi cela ne fonctionne pas.

http://www.cjoint.com/c/GFuuspsuTPp

Merci d'avance pour votre support
gbinforme 13835Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 23 juin 2017 Dernière intervention - 21 juin 2017 à 08:48
Bonjour Phivas,

Tu as deux petits soucis sur cette ligne
    tau = Sheets("Convertion rate").Range("usd").Value / 1000000

- ta feuille s'appelle "Conversion rate"

- il faut nommer "usd" la cellule C4 ou remplacer par
    tau = Sheets("Conversion rate").Range("C4").Value / 1000000


D'autre part, je crois qu'il te faudrait changer ta colonne sur cette ligne (F par E)
            If IsNumeric(tbd(lgo, 5)) And tbd(lgo, 5) <> "" Then Cells(lgc, "E") = tbd(lgo, 5) * tau


Bonne journée
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour gbinforme,

Merci beaucoup pour vos commentaires.

Erreur de frappe pour "conversion"! sorry.
Je ne savais pas que une cellule pouvait être renommée.

Bonne journée et encore un grand merci.
Donnez votre avis
Utile
+0
plus moins
Re-bonjour gbinforme,

Je viens de tester, ca marche c'est génial. Je ne sais pas programmer en VBA mais grâce à vous j'ai déjà appris plein de choses, un grand merci pour cela.

Est-ce que je peux vous poser encore quelques questions d'amélioration de mon fichier?

A) ajouter les 10 numéros de gauche du nom de fichier dont la longueur est variable dans la cellule E3,E4. soit: 1720061045.

Example nom de fichier: 1720061045_V01_TestFichierCalculDePrix.xml

J'utilise la formule suivante mais je ne sais pas comment extraire les 10 numéros, j'ai essayé mais j'arrive pas:

=STXT(CELLULE("filename");TROUVE("[";CELLULE("filename"))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename"))*{-1;1})-6)

B) J'aimerai ajouter un onglet "Fast Preselection" qui permet de sélectionner parmi plusieurs pré-configuration type et mettrait les "1" au bon endroit dans les cellules "Qtity" de l'onglet "Distributor Price specification".

C) pouvez-vous me dire pourquoi dans certains onglets l'entête est visible et d'autre pas, j'ai pas trouvé parmi les réglages comment afficher l' entête.

D'avance merci et bonne journée.
Phivas- 22 juin 2017 à 12:14
Bonjour gbinforme,

Encore merci pour votre support... j'espère que je ne demande pas trop... au départ il s'agissait d'une question... et maintenant mon fichier à évolué d'une façon que je ne pouvais pas m'imaginer.

A) la formule "nomfic" extrait le nom de fichier sans extension et ensuite la formule dans la cellule ne prend que la partie du nom qui est à gauche du signe "_"

B) C'est pratiquement parfait et c'est déjà génial ainsi!
Je n'ai pas pensé à vous dire (mes excuses) que les préselections peuvent être combinées et afin d'avoir une vue de ce qui à été sélectionné, je pensai à une colonne supplémentaire en "E" ou je peux "activer" avec "0" ou "1". Dans le cas ou tout est à "0" alors ce sont uniquement les sélections "distributors price specification" qui sont prises en compte sinon cela peut-être une combinaison des deux (Distributors price list et Fast préselection). J'espère que mon explication est claire.

C) je m'y prend mal pour copier un onglet, après copie je constate que le format des cellules est différents, l'entête manque et la mise en page est différente.

D) je constate 2 anomalies que je n''arrive pas à résoudre
D-a) "customer offer" position 1 (ligne 19) il y a la ligne de titres qui apparaît
D-b) "customer offer USD" si la sélection est supérieur à 1 elle est ignorée, j'ai ajouté
">" ici: If .Range("D" & lgo) >= 1 Then, ca marche pour "customer offer" mais
pas pour "customer offer USD"

Encore un grand merci et une bonne journée.

Mon fichier: http://www.cjoint.com/c/GFwklU0LSBp
Répondre
gbinforme 13835Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 23 juin 2017 Dernière intervention - 22 juin 2017 à 22:18
Bonjour Phivas,

A) tout à fait !

B) je comprend que c'est plus complexe mais je ne vois pas le fonctionnement que tu souhaites : 'Fast préselection' est utilisé pour les sélections "customer offer" et "customer offer USD" ?

C) Ce ne doit être qu'un souci d'affichage : onglet affichage et choisir 'mise en page'
Pour copier un onglet :
clic droit sur l'onglet puis déplacer ou copier / cocher copier
et changer le nom du nouveau.

D) cela devrait être corrigé

http://www.cjoint.com/c/GFwuoUJ2eSl

Bonne soirée
Répondre
Phivas- 23 juin 2017 à 14:19
Bonjour gbinforme,

Merci beaucoup et désolé si je ne n'étais pas clair dans mes explications.

B) en fait l'idée est la suivante: le vendeur connais parfaitement les produits de sont client (colonne "présélection"), mais il ne sait pas forcément quelles options choisir pour configurer correctement la machine (onglet "distributor price specification) donc l'idée de l'onglet "Fast selection" est de facilité la procédure et d'éviter des erreurs.

- onglet "Fast sélection" => le vendeur à uniquement accès à la colonne (E "SELEC 0/1")
- onglet (C "Numbers") seul moi j'ai peut éditer les valeurs mais elle sont visibles a tous
- plusieurs sélections (E, "SELEC 0/1) peuvent êtres combinées
- si un numéro apparaît plusieurs fois il faut considérer seulement 1x
- Les choix fait dans "fast sélection" agissent sur "Qtity" / "Distributor price list" (ainsi à l'avenir je pourrais ajouter d'autres onglet "customer offer" avec d'autres devises.

C) copie, c'est ainsi que je fait mais qq chose doit m'échapper, je vais tester.
C1) pour que fichier tourne avec des versions de Excel utilisant d'autre langues il faut que Excel (VBA) utilise les instructions en Anglais je pense mais y a t'il autre chose auquel je dois également tenir compte?

D) j'ai testé, cela fonctionne en partie.

Dans "customer offer"
Si je met toutes les valeurs (Qtity) à 0 il y a #REF! dans E20, puis si je change les valeurs dans (Qtity) => le calcul ne se fait pas et il y a un message d'erreur VBA => erreur d'execution '1004': erreur définie par l'application ou par l'objet

Dans "customer offer USD"
idem
et le total (SUM) ne se fait pas correctement, plusieurs cellules sont omises dans le calcul de la somme

Merci et bonne journée
Répondre
gbinforme 13835Messages postés lundi 18 octobre 2004Date d'inscription ContributeurStatut 23 juin 2017 Dernière intervention - 23 juin 2017 à 18:46
Bonjour Phivas,

- onglet (C "Numbers")
Pas vu ?

- si un numéro apparaît plusieurs fois il faut considérer seulement 1x
Quel numéro ? ceux que j'ai introduits ?

- Les choix fait dans "fast sélection" agissent sur..."Distributor price list"
Pas trouvé celui-là !
Ce n'est pas étonnant que je ne comprenne pas puisque tu travailles sur des objets que tu ne m'as pas communiqués ! ;-)

C1) pour que fichier tourne avec des versions de Excel utilisant d'autre langues
Excel utilise les paramètres de la machine et met les formules dans la langue de la machine. Par contre les données du classeurs ne sont pas traduites.

D) Si je met toutes les valeurs (Qtity) à 0 il y a #REF! dans E20
Celle-là elle est vicieuse mais c'est ce qui arrive lorsque tu supprimes toutes les lignes d'un tableau : c'est corrigé.

http://www.cjoint.com/c/GFxqOhhzhkl

Bonne soirée
Répondre
Phivas- 24 juin 2017 à 21:07
Bonjour gbinforme,

Désolé pour la confusion et merci pour votre patience, je me suis mélangé dans mes explications par contre, j'utilise chaque fois le fichier que vous me transmettez.

Dites-moi si ceci est clair pour le fonctionnement de FAST PRESELECTION:
B)
- Dans l'onglet "FAST PRESELECTION" le vendeur à accès uniquement à la colonne "SELEC 0/1" ou il peut activer/désactiver les différentes présélections en indiquant 1 ou 0.
- Les numéros (100,101,990,etc..) dans la colonne "Numbers" sont défini par moi.
- Plusieurs présélections peuvent êtres activées simultanément.
- si un numéro apparait plusieurs fois... oui il s'agit des numéros repris dans la colonne "Numbers" (100,101,104,990,983,etc...) => puisque il est possible avec "SELECT 0/1" d'activer plusieurs Preselection il est possible que les mêmes numéros apparaissent plusieurs fois

D)
- les calculs sont bon. Merci
- par contre maintenant:
-- le format des lignes reprend le format du titre (tout est centré et gras)
-- la devise n'apparaît plus
-- dans l'onglet "CUSTOMER OFFER USD" la colonne SUM => une virgule apparaît
-- actuellement il n'y a pas moyen de désélectionner une présélection

Le classeur: http://www.cjoint.com/c/GFyteAHEVcp

Encore merci et une très bonne soirée
Répondre
Donnez votre avis
Utile
+0
plus moins
J'avais oublié le fichier example!

http://www.cjoint.com/c/GFvjMR0ujHp
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !