EXEL VALEUR DU T2 SI LE T1 deja note etc...
Résolu/Fermé
Blackmath1
Messages postés
1
Date d'inscription
vendredi 8 juin 2012
Statut
Membre
Dernière intervention
8 juin 2012
-
8 juin 2012 à 11:42
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 14 mars 2024 - 19 juin 2012 à 07:36
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 14 mars 2024 - 19 juin 2012 à 07:36
A voir également:
- EXEL VALEUR DU T2 SI LE T1 deja note etc...
- Formule exel - Guide
- Si valeur comprise entre x et y alors ✓ - Forum Excel
- Exel 2013 - Télécharger - Tableur
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Note sur 14 sur 20 ✓ - Forum Loisirs / Divertissements
16 réponses
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
9 juin 2012 à 02:07
9 juin 2012 à 02:07
Bonsoir,
et trop de conditions pour télécharger ton fichier.
si tu peux utiliser cjoint.com...
eric
et trop de conditions pour télécharger ton fichier.
si tu peux utiliser cjoint.com...
eric
Raymond PENTIER
Messages postés
58328
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
28 mars 2024
17 088
8 juin 2012 à 22:20
8 juin 2012 à 22:20
"Ce que je souhaite, c'est que ma recherche soit automatique, c'est a dire dans la colonne ref toute les refs avec le t1 correspondant, Si le T1 est déjà noté dans la table, noté le T2 avec le prix correspondant, si le T1 et T2 sont déjà noté, mettre le T3 avec le rpix correspondant, et si le T1,T2 et T3 sont déjà noté mettre le T4 avec le prix correspondant. Et les informations sont à aller chercher dans la table economique" Donc VBA est incontournable !
Bonjour,
http://cjoint.com/?BFljxPG3F2w
Je vous remercie de jeté un oeil ;), c'est sympa et j'avoue être bloqué la, sinon j'envisagé au pire de consacrer 100 lignes par T? , à voir, mais ça me ferait manipuler la page génération des tarifs ventes pour éviter des message d'erreur DIVALTO.
Merci ;)
Jérôme
http://cjoint.com/?BFljxPG3F2w
Je vous remercie de jeté un oeil ;), c'est sympa et j'avoue être bloqué la, sinon j'envisagé au pire de consacrer 100 lignes par T? , à voir, mais ça me ferait manipuler la page génération des tarifs ventes pour éviter des message d'erreur DIVALTO.
Merci ;)
Jérôme
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
11 juin 2012 à 10:01
11 juin 2012 à 10:01
Bonjour,
Si le T1 est déjà noté dans la table, noté le T2 avec le prix correspondant, si le T1 et T2 sont déjà noté, mettre le T3 avec le rpix correspondant, et si le T1,T2 et T3 sont déjà noté mettre le T4 avec le prix correspondant.
Je ne comprend pas le fonctionnement voulu.
Tu veux dire : si seulement T1 et T2 en colonne E on ne rempli que ceux-là car parfois il n'y a pas 4 tarifs ?
Ou tu parles qu'il peut déjà y avoir des valeurs saisie en V et systématiquement on n'en ramène qu'une seule ?
Pour moi le plus logique serait de ramener tout les T d'une ref mais ça ne correspond pas à ton explication (?)
eric
Si le T1 est déjà noté dans la table, noté le T2 avec le prix correspondant, si le T1 et T2 sont déjà noté, mettre le T3 avec le rpix correspondant, et si le T1,T2 et T3 sont déjà noté mettre le T4 avec le prix correspondant.
Je ne comprend pas le fonctionnement voulu.
Tu veux dire : si seulement T1 et T2 en colonne E on ne rempli que ceux-là car parfois il n'y a pas 4 tarifs ?
Ou tu parles qu'il peut déjà y avoir des valeurs saisie en V et systématiquement on n'en ramène qu'une seule ?
Pour moi le plus logique serait de ramener tout les T d'une ref mais ça ne correspond pas à ton explication (?)
eric
Bonjour,
Je me suis surement mal exprimé.
En gros je dois intégré des descentes de prix qui sont T1, T2, T3 et T4 pour chaque articles, il est vrai qu'il est possible qu'il n'y est pas 4 tarifs mais 3 voir même 1 seul, dans ce cas rare il faut qu'EXEL ne plante pas. donc ce qu'il faut c'est que pour chaque référence Article, l'onglet génération des tarifs vente se remplisse avec les 4 prix correspondant(ou moins). Les informations viennent et dépendent de la table économique puisque sans le prix d'achat et les marges, la descente de prix (T1,T2,T3,T4) ne se calcul pas.
Donc pour bien, il faut que mon onglet génération des tarifs vente se remplisse au furs et à mesure avec les 4 tarifs articles par articles.
Jérôme
Je me suis surement mal exprimé.
En gros je dois intégré des descentes de prix qui sont T1, T2, T3 et T4 pour chaque articles, il est vrai qu'il est possible qu'il n'y est pas 4 tarifs mais 3 voir même 1 seul, dans ce cas rare il faut qu'EXEL ne plante pas. donc ce qu'il faut c'est que pour chaque référence Article, l'onglet génération des tarifs vente se remplisse avec les 4 prix correspondant(ou moins). Les informations viennent et dépendent de la table économique puisque sans le prix d'achat et les marges, la descente de prix (T1,T2,T3,T4) ne se calcul pas.
Donc pour bien, il faut que mon onglet génération des tarifs vente se remplisse au furs et à mesure avec les 4 tarifs articles par articles.
Jérôme
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
Modifié par eriiic le 11/06/2012 à 11:38
Modifié par eriiic le 11/06/2012 à 11:38
Et ta feuille GENERATION DES TARIFS VENTES sera déjà remplie avec les ref et 4 lignes T ou il faut ramener toutes les ref de TABLE ECONOMIQUE et créer 4 lignes T1 à T4 ( ou seulement celles renseignées en G, I, K et L).
S'il n'y a que 2 tarifs faut-il quand même 4 lignes T (avec 2 vides donc) ?
S'il faut créer, à part les tarifs, quels champs ramener de quel colonne vers quelle colonne. Par exemple U.V(col 3) vers Unité(col 8)
Dans TABLE ECONOMIQUE tu as des lignes avec 0 en ref. Est-ce que avoir 9 car en ref est suffisant pour dire que c'est une ref valide à traiter ?
Il est important d'être complet et précis.
eric
S'il n'y a que 2 tarifs faut-il quand même 4 lignes T (avec 2 vides donc) ?
S'il faut créer, à part les tarifs, quels champs ramener de quel colonne vers quelle colonne. Par exemple U.V(col 3) vers Unité(col 8)
Dans TABLE ECONOMIQUE tu as des lignes avec 0 en ref. Est-ce que avoir 9 car en ref est suffisant pour dire que c'est une ref valide à traiter ?
Il est important d'être complet et précis.
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
Effectivement, il est important d'amener des précisions.
Et ta feuille GENERATION DES TARIFS VENTES sera déjà remplie avec les ref et 4 lignes T ou il faut ramener toutes les ref de TABLE ECONOMIQUE et créer 4 lignes T1 à T4 ( ou seulement celles renseignées en G, I, K et L).
non elle ne sera pas rempli, justement je souhaite qu'elle se remplisse seul, en fait presque qu'exel analyse si les champs sont renseigné et si oui les transferts ou un truc du genre, si c'est possible.
En fait, tout démarre de l'onglet formule, la référence (B) ainsi que la désignation(E), l'U.V ( L ),
- Vers la table économique référence (A), Désignation (B) et U.V ( C)
- de la table économique référence (A), désignation (B), T1(G1), T2(I1),T3(K1), T4(M1), et les prix correspondant
- vers la génération des tarifs vente référence (A), T* (E), U.V (H) et le prix correspondant (V).
Donc pour l'instant quand je rempli certain champs de l'onglet formule ça rempli aussi celle économique puis celle génération achat et vente par un simple =FORMULES!B4 (exemple), mais ça je présume qu'il va falloir le changer dans la génération des tarifs ventes pour que les informations soit incrémenté de façon plus complexe.
Ce que je souhaite, c'est que ma table génération des tarifs vente soit incrémenté en fonction des entrées dans la table économique, s'il est indiqué 0 ne rien mettre.
S'il n'y a que 2 tarifs faut-il quand même 4 lignes T (avec 2 vides donc) ? Non, seulement celle renseigné différente de 0
S'il faut créer, à part les tarifs, quels champs ramener de quel colonne vers quelle colonne. Par exemple U.V(col 3) vers Unité(col 8)
Voir ci dessus
Dans TABLE ECONOMIQUE tu as des lignes avec 0 en ref. Est-ce que avoir 9 car en ref est suffisant pour dire que c'est une ref valide à traiter ?
les lignes avec les 0 sont les champs non rempli dans l'onglet formule, en gros j'utilise la RECHERCHE EV et s'il ne trouve pas de valeur, il note 0, les cases qui notent 0 se colorent normalement pour mettre en evidence sur de lourd fichier que des informations manquent ( prix, U.V, etc...) dans tous les cas, une case vide ou = à 0 ne doit pas être tranferer.
1000 Merci, j'espére que toute ces informations suffisent, j'avoue que c'est compliqué.
Jérôme
Effectivement, il est important d'amener des précisions.
Et ta feuille GENERATION DES TARIFS VENTES sera déjà remplie avec les ref et 4 lignes T ou il faut ramener toutes les ref de TABLE ECONOMIQUE et créer 4 lignes T1 à T4 ( ou seulement celles renseignées en G, I, K et L).
non elle ne sera pas rempli, justement je souhaite qu'elle se remplisse seul, en fait presque qu'exel analyse si les champs sont renseigné et si oui les transferts ou un truc du genre, si c'est possible.
En fait, tout démarre de l'onglet formule, la référence (B) ainsi que la désignation(E), l'U.V ( L ),
- Vers la table économique référence (A), Désignation (B) et U.V ( C)
- de la table économique référence (A), désignation (B), T1(G1), T2(I1),T3(K1), T4(M1), et les prix correspondant
- vers la génération des tarifs vente référence (A), T* (E), U.V (H) et le prix correspondant (V).
Donc pour l'instant quand je rempli certain champs de l'onglet formule ça rempli aussi celle économique puis celle génération achat et vente par un simple =FORMULES!B4 (exemple), mais ça je présume qu'il va falloir le changer dans la génération des tarifs ventes pour que les informations soit incrémenté de façon plus complexe.
Ce que je souhaite, c'est que ma table génération des tarifs vente soit incrémenté en fonction des entrées dans la table économique, s'il est indiqué 0 ne rien mettre.
S'il n'y a que 2 tarifs faut-il quand même 4 lignes T (avec 2 vides donc) ? Non, seulement celle renseigné différente de 0
S'il faut créer, à part les tarifs, quels champs ramener de quel colonne vers quelle colonne. Par exemple U.V(col 3) vers Unité(col 8)
Voir ci dessus
Dans TABLE ECONOMIQUE tu as des lignes avec 0 en ref. Est-ce que avoir 9 car en ref est suffisant pour dire que c'est une ref valide à traiter ?
les lignes avec les 0 sont les champs non rempli dans l'onglet formule, en gros j'utilise la RECHERCHE EV et s'il ne trouve pas de valeur, il note 0, les cases qui notent 0 se colorent normalement pour mettre en evidence sur de lourd fichier que des informations manquent ( prix, U.V, etc...) dans tous les cas, une case vide ou = à 0 ne doit pas être tranferer.
1000 Merci, j'espére que toute ces informations suffisent, j'avoue que c'est compliqué.
Jérôme
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
11 juin 2012 à 21:36
11 juin 2012 à 21:36
Dernière confirmation stp :
- de la table économique référence (A), désignation (B), T1(G1), T2(I1),T3(K1), T4(M1), et les prix correspondant
et
- vers la génération des tarifs vente référence (A), T* (E), U.V (H) et le prix correspondant (V).
Si tous les tarifs sont à 0 on ne génère donc pas de ligne.
Si un des autres champs est vide on fait quoi ?
- on ne contrôle pas ?
- on rempli ?
- on alerte en arretant la macro ?
- on met la cellule en rouge ?
- autre chose ?
eric
- de la table économique référence (A), désignation (B), T1(G1), T2(I1),T3(K1), T4(M1), et les prix correspondant
et
- vers la génération des tarifs vente référence (A), T* (E), U.V (H) et le prix correspondant (V).
Si tous les tarifs sont à 0 on ne génère donc pas de ligne.
Si un des autres champs est vide on fait quoi ?
- on ne contrôle pas ?
- on rempli ?
- on alerte en arretant la macro ?
- on met la cellule en rouge ?
- autre chose ?
eric
Bonjour,
Si tous les tarifs sont à 0 on ne génère donc pas de ligne.
Oui tout a fait.
Si un des autres champs est vide on fait quoi ?
Les champs nommé et rempli dans l'exemple sont obligatoire pour l'intégration, donc si on peut colorer en rouge, ça serait bien. En gros la condittion minimum pour qu'une ligne soit généré
une réf + minimum un prix = une ligne
puis une ligne par prix
- on ne contrôle pas ?
Le contrôle se fait au niveau de la table économique qui se colore en rouge et de l'onglet formule qui se colore également en cas de champs obligatoire non rempli, nous avons malheureusement parfois des difficultés à avoir la totalité des tarifs, et l'intégration des nouveaux tarifs ou articles et bien souvent urgente.
- on rempli ?
Seulement s'il y a au moins une ref et un prix.
- on alerte en arretant la macro ?
On peut l'envisager, ça ferait une sécurité supplémentaire, mais plus comme une information si possible, pas un arrêt de la macro.
- on met la cellule en rouge ?
Oui
- autre chose ?
En gros les seuls tarifs par articles qui doivent être reporté, ce sont ceux qui sont présent dans la table économique.
En tout cas, je te remercie encore 1000 fois pour ton investissement !
N'hésite pas je jete un oeil réguliérment dans la journée.
Jérôme
Si tous les tarifs sont à 0 on ne génère donc pas de ligne.
Oui tout a fait.
Si un des autres champs est vide on fait quoi ?
Les champs nommé et rempli dans l'exemple sont obligatoire pour l'intégration, donc si on peut colorer en rouge, ça serait bien. En gros la condittion minimum pour qu'une ligne soit généré
une réf + minimum un prix = une ligne
puis une ligne par prix
- on ne contrôle pas ?
Le contrôle se fait au niveau de la table économique qui se colore en rouge et de l'onglet formule qui se colore également en cas de champs obligatoire non rempli, nous avons malheureusement parfois des difficultés à avoir la totalité des tarifs, et l'intégration des nouveaux tarifs ou articles et bien souvent urgente.
- on rempli ?
Seulement s'il y a au moins une ref et un prix.
- on alerte en arretant la macro ?
On peut l'envisager, ça ferait une sécurité supplémentaire, mais plus comme une information si possible, pas un arrêt de la macro.
- on met la cellule en rouge ?
Oui
- autre chose ?
En gros les seuls tarifs par articles qui doivent être reporté, ce sont ceux qui sont présent dans la table économique.
En tout cas, je te remercie encore 1000 fois pour ton investissement !
N'hésite pas je jete un oeil réguliérment dans la journée.
Jérôme
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
Modifié par eriiic le 12/06/2012 à 11:59
Modifié par eriiic le 12/06/2012 à 11:59
Bonjour,
j'ai démarré mais qu'as-tu prévu dans GENERATION DES TARIFS VENTES!K:U ?
Je dois nettoyer la feuille avant de mettre à jour et si tu y as prévu des formules elles vont sauter...
Dans un 2ème temps s'il le faut on pourra prévoir de remplir avec la macro.
eric
EDIT: si tu veux tester ce premier avec plus de données.
Pour l'instant pas de contrôle d'anomalie, juste génération de la table.
Il faut accepter les macros, tu as un bouton dans GENERATION DES TARIFS VENTES
https://www.cjoint.com/?BFml4Qjnizg
eric
j'ai démarré mais qu'as-tu prévu dans GENERATION DES TARIFS VENTES!K:U ?
Je dois nettoyer la feuille avant de mettre à jour et si tu y as prévu des formules elles vont sauter...
Dans un 2ème temps s'il le faut on pourra prévoir de remplir avec la macro.
eric
EDIT: si tu veux tester ce premier avec plus de données.
Pour l'instant pas de contrôle d'anomalie, juste génération de la table.
Il faut accepter les macros, tu as un bouton dans GENERATION DES TARIFS VENTES
https://www.cjoint.com/?BFml4Qjnizg
eric
Re,
j'ai démarré mais qu'as-tu prévu dans GENERATION DES TARIFS VENTES!K:U ?
Déjà chapeau pour ton travail et ton investissement, ce que tu as fait est super !
Le K est la quantité seuil et est utilisé trés rarement, je compléterai le moment venu à la mano, je dois avouer que ça ne m'est jamais arrivé pour l'instant.
De L à U, c'est pour les extraction de tarifs, est quand je change les tarifs par le biais de l'intégration ( V6;AE6), je me dois de les changer pour l'intégralité de leurs produits( prix 2011, prix 2012) donc en gros je pars du principe que je ne ferai jamais d'extraction tarifs vente.
Je dois nettoyer la feuille avant de mettre à jour et si tu y as prévu des formules elles vont sauter...
Dans un 2ème temps s'il le faut on pourra prévoir de remplir avec la macro.
Par contre je ne sais pas si tu peux le voir, mais la personne qui m'a formé à l'intégration m'a indiqué qu'il ne fallait pas toucher à la zone compris dans A6;AE6, je ne suis pas parvenu à voir s'il y a un code qui permet l'intégration, mais il est sans doute préférable soit de créer de nouvelle ligne dans cette zone pour ne pas l'éffacer, soit placer les info ailleurs. Sans ça, Divalto risque de ne pas réussir à digerer les infos.
La colonne F doit indiquer EUR et la colonne J la date du jour, j'avais fait =AUJOURDHUI(), mais tu as peux être une autre façon, si possible que je puisse modifier manuellement en cas de besoin.
Je peux avoir des précisions sur ce que tu as fait ? en gros c'est du VBA ? ça m'intéressse et j'envisage sérieusement de demander une formation à mon employeur, faut'il des notions ?des bonnes bases en EXEl ? est ce trés compliqué ? en tout cas ça m'intérrésse énormément !
Merci
Jérôme
j'ai démarré mais qu'as-tu prévu dans GENERATION DES TARIFS VENTES!K:U ?
Déjà chapeau pour ton travail et ton investissement, ce que tu as fait est super !
Le K est la quantité seuil et est utilisé trés rarement, je compléterai le moment venu à la mano, je dois avouer que ça ne m'est jamais arrivé pour l'instant.
De L à U, c'est pour les extraction de tarifs, est quand je change les tarifs par le biais de l'intégration ( V6;AE6), je me dois de les changer pour l'intégralité de leurs produits( prix 2011, prix 2012) donc en gros je pars du principe que je ne ferai jamais d'extraction tarifs vente.
Je dois nettoyer la feuille avant de mettre à jour et si tu y as prévu des formules elles vont sauter...
Dans un 2ème temps s'il le faut on pourra prévoir de remplir avec la macro.
Par contre je ne sais pas si tu peux le voir, mais la personne qui m'a formé à l'intégration m'a indiqué qu'il ne fallait pas toucher à la zone compris dans A6;AE6, je ne suis pas parvenu à voir s'il y a un code qui permet l'intégration, mais il est sans doute préférable soit de créer de nouvelle ligne dans cette zone pour ne pas l'éffacer, soit placer les info ailleurs. Sans ça, Divalto risque de ne pas réussir à digerer les infos.
La colonne F doit indiquer EUR et la colonne J la date du jour, j'avais fait =AUJOURDHUI(), mais tu as peux être une autre façon, si possible que je puisse modifier manuellement en cas de besoin.
Je peux avoir des précisions sur ce que tu as fait ? en gros c'est du VBA ? ça m'intéressse et j'envisage sérieusement de demander une formation à mon employeur, faut'il des notions ?des bonnes bases en EXEl ? est ce trés compliqué ? en tout cas ça m'intérrésse énormément !
Merci
Jérôme
Si un jour, j'ai un probléme, je pourrai débloquer la situation ? je vais garder une copie de ce jolie classeur, mais on ne sais jamais.
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
Modifié par eriiic le 12/06/2012 à 14:32
Modifié par eriiic le 12/06/2012 à 14:32
Re,
il ne fallait pas toucher à la zone compris dans A6;AE6, je ne suis pas parvenu à voir s'il y a un code qui permet l'intégration, mais il est sans doute préférable soit de créer de nouvelle ligne dans cette zone pour ne pas l'éffacer, soit placer les info ailleurs
Il n'y a pas le choix.
Si tu avais 200 lignes et que génères un nouveau tarif avec 50 lignes, tu auras 150 lignes présentes à tort et un tableau totalement faux.
Actuellement ces cellules sont vides de données et de formules.
La colonne F doit indiquer EUR et la colonne J la date du jour
je complèterais
en gros c'est du VBA ?
oui, c'est un basic orienté objet évolué et puissant.
Alt+F11 pour ouvrir l'éditeur.
Tu as du code dans Feuil6 et le programme principal dans le module 1.
Une façon de découvrir les macros est d'utiliser l'enregistreur de macro (ajouter le ruban 'développeur').
Tu démarres l'enregistreur, tu fais qcq actions sur ta feuille, tu arretes l'enregistreur et tu vas voir le code enregistré.
Il n'est pas du tout optimisé mais te permet de découvrir comment se traduisent tes actions.
Si tu relances la macro elle refait exactement ce que tu as fait.
Après il faut enlever les lignes inutiles (scrooling d'écran), modifier pour accélérer le code, le compléter pour qu'il traite plusieurs lignes au bon endroit et correctement, etc
est ce trés compliqué ?
oui et non.
Un peu abscons au début puis les déclics se font...
Tu as des sites d'initiation mais le mieux est de prendre un bouquin comme 'le guide complet vba pour excel' pour démarrer.
Si un jour, j'ai un probléme, je pourrai débloquer la situation ?
Demain peut-être pas, après demain peut-être ;-)
Une des régles à appliquer si une feuille a des macros : ne jamais insérer de colonnes, ou alors adapter la macro.
Si la macro incrit qcq chose en colonne U, ça sera toujours ici (à moins de le prévoir au départ mais c'est beaucoup de boulot). Si tu décales les champs ton tableau ne correspond plus.
Pareil pour les lignes. Actuellement elles doivent démarrer en ligne 6. Si demain tes en-têtes sont en ligne 10 les lignes 6 à 10 seront écrasées...
les bases : https://openclassrooms.com/fr/courses/825502-analysez-des-donnees-avec-excel#part_200942
exemple de site (très bien) initiation et approfondissement : https://excel.developpez.com/cours/?page=prog
autre source ++ sur excel : http://boisgontierjacques.free.fr/
eric
EDIT :
ajout EUR et date : https://www.cjoint.com/?BFmoDBqiLiR
Contrôle : en fait le seul champ qui resterait à contrôler dans GENERATION DES TARIFS VENTES serait Unité non vide. Est-ce que ça vaut vraiment le coup ? Autant compléter tes contrôles dans TABLE ECONOMIQUE
eric
il ne fallait pas toucher à la zone compris dans A6;AE6, je ne suis pas parvenu à voir s'il y a un code qui permet l'intégration, mais il est sans doute préférable soit de créer de nouvelle ligne dans cette zone pour ne pas l'éffacer, soit placer les info ailleurs
Il n'y a pas le choix.
Si tu avais 200 lignes et que génères un nouveau tarif avec 50 lignes, tu auras 150 lignes présentes à tort et un tableau totalement faux.
Actuellement ces cellules sont vides de données et de formules.
La colonne F doit indiquer EUR et la colonne J la date du jour
je complèterais
en gros c'est du VBA ?
oui, c'est un basic orienté objet évolué et puissant.
Alt+F11 pour ouvrir l'éditeur.
Tu as du code dans Feuil6 et le programme principal dans le module 1.
Une façon de découvrir les macros est d'utiliser l'enregistreur de macro (ajouter le ruban 'développeur').
Tu démarres l'enregistreur, tu fais qcq actions sur ta feuille, tu arretes l'enregistreur et tu vas voir le code enregistré.
Il n'est pas du tout optimisé mais te permet de découvrir comment se traduisent tes actions.
Si tu relances la macro elle refait exactement ce que tu as fait.
Après il faut enlever les lignes inutiles (scrooling d'écran), modifier pour accélérer le code, le compléter pour qu'il traite plusieurs lignes au bon endroit et correctement, etc
est ce trés compliqué ?
oui et non.
Un peu abscons au début puis les déclics se font...
Tu as des sites d'initiation mais le mieux est de prendre un bouquin comme 'le guide complet vba pour excel' pour démarrer.
Si un jour, j'ai un probléme, je pourrai débloquer la situation ?
Demain peut-être pas, après demain peut-être ;-)
Une des régles à appliquer si une feuille a des macros : ne jamais insérer de colonnes, ou alors adapter la macro.
Si la macro incrit qcq chose en colonne U, ça sera toujours ici (à moins de le prévoir au départ mais c'est beaucoup de boulot). Si tu décales les champs ton tableau ne correspond plus.
Pareil pour les lignes. Actuellement elles doivent démarrer en ligne 6. Si demain tes en-têtes sont en ligne 10 les lignes 6 à 10 seront écrasées...
les bases : https://openclassrooms.com/fr/courses/825502-analysez-des-donnees-avec-excel#part_200942
exemple de site (très bien) initiation et approfondissement : https://excel.developpez.com/cours/?page=prog
autre source ++ sur excel : http://boisgontierjacques.free.fr/
eric
EDIT :
ajout EUR et date : https://www.cjoint.com/?BFmoDBqiLiR
Contrôle : en fait le seul champ qui resterait à contrôler dans GENERATION DES TARIFS VENTES serait Unité non vide. Est-ce que ça vaut vraiment le coup ? Autant compléter tes contrôles dans TABLE ECONOMIQUE
eric
re,
ne jamais insérer de colonnes, ou alors adapter la macro.
Oh ! tu fais bien de me le signaler !! si c'est possible il faudrait inserer disons 10 colonnes entre la D et la E sur la table économique ( je prévois large) et descendre de 10 lignes la table économique au cas ou j'ai des notes à mettre ( pareil je vois large)? je suis désolé si c'est long je ne savais pas que le VBA ne se décalé pas en fonction du décalage des colonne ou ligne. il est aussi possible que ma table économique soit beaucoup plus grande que cela ! il est possible que j'ajoute des lignes, je ne sais pas si on peut dire 200 lignes ?
Merci pour tes liens, je vais y jeter un oeil, ET UN GROS §
Jérôme
ne jamais insérer de colonnes, ou alors adapter la macro.
Oh ! tu fais bien de me le signaler !! si c'est possible il faudrait inserer disons 10 colonnes entre la D et la E sur la table économique ( je prévois large) et descendre de 10 lignes la table économique au cas ou j'ai des notes à mettre ( pareil je vois large)? je suis désolé si c'est long je ne savais pas que le VBA ne se décalé pas en fonction du décalage des colonne ou ligne. il est aussi possible que ma table économique soit beaucoup plus grande que cela ! il est possible que j'ajoute des lignes, je ne sais pas si on peut dire 200 lignes ?
Merci pour tes liens, je vais y jeter un oeil, ET UN GROS §
Jérôme
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
Modifié par eriiic le 12/06/2012 à 14:45
Modifié par eriiic le 12/06/2012 à 14:45
on s'est croisé, tu peux aller lire l'EDIT sur le précédent post.
si c'est possible il faudrait inserer disons 10 colonnes
Sur le code en gras les n° de colonne sur la feuille destination à adapter si tu les décales
shDest.Cells(ligD, 1) = shSource.Cells(ligS, 1) ' Ref
shDest.Cells(ligD, 5) = shSource.Cells(1, colS_T) ' Tx
shDest.Cells(ligD, 6) = "EUR" ' EUR
shDest.Cells(ligD, 8) = shSource.Cells(ligS, 3) ' U.V
shDest.Cells(ligD, 10) = Date ' Date
shDest.Cells(ligD, 22) = shSource.Cells(ligS, colS_T) ' prix Tx
Voilà, ça te fera ton 1er exercice ;-)
et descendre de 10 lignes la table économique au cas ou j'ai des notes à mettre
Ici l'analyse commence à la ligne 2 :
For ligS = 2 To shSource.Cells(Rows.Count, 1).End(xlUp).Row
On pourrait aussi mettre une constante comme pour :
Const colT1 As Long = 7 ' colonne tarif T1 dans TABLE ECONOMIQUE
en haut du module1.
Cette constante sera à adapter aussi si tu décales cette colonne.
il est aussi possible que ma table économique soit beaucoup plus grande que cela
Ca je m'en doutais, la macro se base sur la dernière cellule remplie de la colonne A pour déterminer la plage à analyser.
eric
si c'est possible il faudrait inserer disons 10 colonnes
Sur le code en gras les n° de colonne sur la feuille destination à adapter si tu les décales
shDest.Cells(ligD, 1) = shSource.Cells(ligS, 1) ' Ref
shDest.Cells(ligD, 5) = shSource.Cells(1, colS_T) ' Tx
shDest.Cells(ligD, 6) = "EUR" ' EUR
shDest.Cells(ligD, 8) = shSource.Cells(ligS, 3) ' U.V
shDest.Cells(ligD, 10) = Date ' Date
shDest.Cells(ligD, 22) = shSource.Cells(ligS, colS_T) ' prix Tx
Voilà, ça te fera ton 1er exercice ;-)
et descendre de 10 lignes la table économique au cas ou j'ai des notes à mettre
Ici l'analyse commence à la ligne 2 :
For ligS = 2 To shSource.Cells(Rows.Count, 1).End(xlUp).Row
On pourrait aussi mettre une constante comme pour :
Const colT1 As Long = 7 ' colonne tarif T1 dans TABLE ECONOMIQUE
en haut du module1.
Cette constante sera à adapter aussi si tu décales cette colonne.
il est aussi possible que ma table économique soit beaucoup plus grande que cela
Ca je m'en doutais, la macro se base sur la dernière cellule remplie de la colonne A pour déterminer la plage à analyser.
eric
J'ai bien l'impression que les modifications que tu m'as indiqué sont pour augmenter le nombre de ligne et de colonne sur l'onglet génération des tarifs ventes, alors que c'est l'onglet Table économique (donc la source) que je souhaite modifier et sur laquelle j'aimerai ajouter des lignes et colonnes.
J'ai l'impression que c'est la dedans que je dois modifier des infos non ?
' analyse des lignes source
For ligS = 2 To shSource.Cells(Rows.Count, 1).End(xlUp).Row
If Len(shSource.Cells(ligS, 1)) > 3 Then
For colS_T = colT1 To colT1 + 6 Step 2
If shSource.Cells(ligS, colS_T) <> 0 Then
Mais j'avoue que c'est du chinois, je n'ai aucun repére en therme de colonne ou ligne ou je ne regarde pas au bon endroit :).
jérôme
J'ai l'impression que c'est la dedans que je dois modifier des infos non ?
' analyse des lignes source
For ligS = 2 To shSource.Cells(Rows.Count, 1).End(xlUp).Row
If Len(shSource.Cells(ligS, 1)) > 3 Then
For colS_T = colT1 To colT1 + 6 Step 2
If shSource.Cells(ligS, colS_T) <> 0 Then
Mais j'avoue que c'est du chinois, je n'ai aucun repére en therme de colonne ou ligne ou je ne regarde pas au bon endroit :).
jérôme
Re,
Je viens de me rendre compte d'un petit souci, si ma référence ne contient pas des chiffres et des lettres elle n'est pas prise en compte dans la table génération des tarifs de ventes.
Je vais mis croire à toucher dans le VBA là !! lol si j'y arrive ;)
jérôme
Je viens de me rendre compte d'un petit souci, si ma référence ne contient pas des chiffres et des lettres elle n'est pas prise en compte dans la table génération des tarifs de ventes.
Je vais mis croire à toucher dans le VBA là !! lol si j'y arrive ;)
jérôme
Je pense avoir trouvé !
Voici les modifications apporté
Option Explicit
Const colT1 As Long = 12 ' colonne tarif T1 dans TABLE ECONOMIQUE
Sub maj()
Dim shSource As Worksheet, ligS As Long, colS_T
Dim shDest As Worksheet, ligD As Long
Set shSource = Worksheets("TABLE ECONOMIQUE")
Set shDest = Worksheets("GENERATION DES TARIFS VENTES")
'
Application.ScreenUpdating = False
'nettoyer destination
shDest.Rows(7).Resize(Rows.Count - 6).ClearContents
shDest.Rows(7).Resize(Rows.Count - 6).Interior.ColorIndex = xlNone
'
' analyse des lignes source
For ligS = 6 To shSource.Cells(Rows.Count, 1).End(xlUp).Row
If Len(shSource.Cells(ligS, 1)) > 3 Then
For colS_T = colT1 To colT1 + 6 Step 2
If shSource.Cells(ligS, colS_T) <> 0 Then
' copier ref
ligD = shDest.Cells(Rows.Count, 1).End(xlUp).Row + 1
shDest.Cells(ligD, 1) = shSource.Cells(ligS, 1) ' Ref
shDest.Cells(ligD, 5) = shSource.Cells(1, colS_T) ' Tx
shDest.Cells(ligD, 6) = "EUR" ' EUR
shDest.Cells(ligD, 8) = shSource.Cells(ligS, 3) ' U.V
shDest.Cells(ligD, 10) = Date ' Date
shDest.Cells(ligD, 22) = shSource.Cells(ligS, colS_T) ' prix Tx
End If
Next colS_T
End If
Next ligS
Application.ScreenUpdating = True
End Sub
et ça fonctionne !!!! Sauf que les T1,T2,T3 ET T4 :(
Encore 1000 merci à toi,
Jérôme
Voici les modifications apporté
Option Explicit
Const colT1 As Long = 12 ' colonne tarif T1 dans TABLE ECONOMIQUE
Sub maj()
Dim shSource As Worksheet, ligS As Long, colS_T
Dim shDest As Worksheet, ligD As Long
Set shSource = Worksheets("TABLE ECONOMIQUE")
Set shDest = Worksheets("GENERATION DES TARIFS VENTES")
'
Application.ScreenUpdating = False
'nettoyer destination
shDest.Rows(7).Resize(Rows.Count - 6).ClearContents
shDest.Rows(7).Resize(Rows.Count - 6).Interior.ColorIndex = xlNone
'
' analyse des lignes source
For ligS = 6 To shSource.Cells(Rows.Count, 1).End(xlUp).Row
If Len(shSource.Cells(ligS, 1)) > 3 Then
For colS_T = colT1 To colT1 + 6 Step 2
If shSource.Cells(ligS, colS_T) <> 0 Then
' copier ref
ligD = shDest.Cells(Rows.Count, 1).End(xlUp).Row + 1
shDest.Cells(ligD, 1) = shSource.Cells(ligS, 1) ' Ref
shDest.Cells(ligD, 5) = shSource.Cells(1, colS_T) ' Tx
shDest.Cells(ligD, 6) = "EUR" ' EUR
shDest.Cells(ligD, 8) = shSource.Cells(ligS, 3) ' U.V
shDest.Cells(ligD, 10) = Date ' Date
shDest.Cells(ligD, 22) = shSource.Cells(ligS, colS_T) ' prix Tx
End If
Next colS_T
End If
Next ligS
Application.ScreenUpdating = True
End Sub
et ça fonctionne !!!! Sauf que les T1,T2,T3 ET T4 :(
Encore 1000 merci à toi,
Jérôme
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
Modifié par eriiic le 12/06/2012 à 16:43
Modifié par eriiic le 12/06/2012 à 16:43
Re,
Je vais mis croire à toucher dans le VBA là !! lol si j'y arrive ;)
c'est comme ça qu'on apprend, il ne faut surtout pas hésiter :-)
C'est très intéressant et on est content quand on arrive à faire un petit truc ;-)
J'ai bien l'impression que les modifications que tu m'as indiqué sont pour augmenter le nombre de ligne et de colonne sur l'onglet génération des tarifs ventes, alors que c'est l'onglet Table économique (donc la source) que je souhaite modifier et sur laquelle j'aimerai ajouter des lignes et colonnes.
Pour la ligne je parlais bien ajout sur la feuille Table économique (source).
Pour les colonnes effectivement j'avais compris pour l'autre feuille, donc apparement tu commences à comprendre ;-)
Il faudra donc agir sur shSource et non sur shDest.
Je t'explique pour 1 ligne :
shDest.Cells(ligD, 1) = shSource.Cells(ligS, 1) ' Ref
shDest : équivalent à worksheets("nom_de_la_feuille_destination") pour éviter d'avoir à la nommer tout le temps et avoir un code plus lisible.
La définition de cette variable est au début du code :
Set shDest = Worksheets("GENERATION DES TARIFS VENTES")
shSource : idem
.Cells : l'ensemble des cellule de la feuille
shDest.Cells(ligD, 1) : la cellule ligne ligD, colonne 1 (donc A)
shSource.Cells(ligS, 1) : même principe.
La ligne de code veut donc dire :
la cellule (ligD, 1) de la feuille dest doit être égale à la cellule (ligS, 1) de la feuille source.
ligS : variable n° ligne fichier source en cours d'analyse. Une boucle pour parcourir les lignes :
For ligS = 2 To shSource.Cells(Rows.Count, 1).End(xlUp).Row ' de la ligne 2 à la dernière ligne avec donnée en A
....
next ligS
ligD : variable n° colonne tarif Tx
Une boucle mais avec un incrément de 2 :
For colS_T = colT1 To colT1 + 6 Step 2
qui démarre en colT1, la constante (que je t'ai dit qu'il fallait mettre à jour si tu décalais tes données) désignant la position de T1 dans la feuille source.
Je viens de me rendre compte d'un petit souci, si ma référence ne contient pas des chiffres et des lettres elle n'est pas prise en compte dans la table génération des tarifs de ventes.
si ma référence ne contient pas des chiffres et des lettres ? heuuu que des espaces et des %$! ?
J'avais proposé 9 car pour considérer une ref valide mais je n'ai pas eu de réponse.
Sans consigne, j'ai unilatéralement décidé de ne prendre en compte une ref que si elle a 3 caractères mini.
eric
Je vais mis croire à toucher dans le VBA là !! lol si j'y arrive ;)
c'est comme ça qu'on apprend, il ne faut surtout pas hésiter :-)
C'est très intéressant et on est content quand on arrive à faire un petit truc ;-)
J'ai bien l'impression que les modifications que tu m'as indiqué sont pour augmenter le nombre de ligne et de colonne sur l'onglet génération des tarifs ventes, alors que c'est l'onglet Table économique (donc la source) que je souhaite modifier et sur laquelle j'aimerai ajouter des lignes et colonnes.
Pour la ligne je parlais bien ajout sur la feuille Table économique (source).
Pour les colonnes effectivement j'avais compris pour l'autre feuille, donc apparement tu commences à comprendre ;-)
Il faudra donc agir sur shSource et non sur shDest.
Je t'explique pour 1 ligne :
shDest.Cells(ligD, 1) = shSource.Cells(ligS, 1) ' Ref
shDest : équivalent à worksheets("nom_de_la_feuille_destination") pour éviter d'avoir à la nommer tout le temps et avoir un code plus lisible.
La définition de cette variable est au début du code :
Set shDest = Worksheets("GENERATION DES TARIFS VENTES")
shSource : idem
.Cells : l'ensemble des cellule de la feuille
shDest.Cells(ligD, 1) : la cellule ligne ligD, colonne 1 (donc A)
shSource.Cells(ligS, 1) : même principe.
La ligne de code veut donc dire :
la cellule (ligD, 1) de la feuille dest doit être égale à la cellule (ligS, 1) de la feuille source.
ligS : variable n° ligne fichier source en cours d'analyse. Une boucle pour parcourir les lignes :
For ligS = 2 To shSource.Cells(Rows.Count, 1).End(xlUp).Row ' de la ligne 2 à la dernière ligne avec donnée en A
....
next ligS
ligD : variable n° colonne tarif Tx
Une boucle mais avec un incrément de 2 :
For colS_T = colT1 To colT1 + 6 Step 2
qui démarre en colT1, la constante (que je t'ai dit qu'il fallait mettre à jour si tu décalais tes données) désignant la position de T1 dans la feuille source.
Je viens de me rendre compte d'un petit souci, si ma référence ne contient pas des chiffres et des lettres elle n'est pas prise en compte dans la table génération des tarifs de ventes.
si ma référence ne contient pas des chiffres et des lettres ? heuuu que des espaces et des %$! ?
J'avais proposé 9 car pour considérer une ref valide mais je n'ai pas eu de réponse.
Sans consigne, j'ai unilatéralement décidé de ne prendre en compte une ref que si elle a 3 caractères mini.
eric
Bonjour,
si ma référence ne contient pas des chiffres et des lettres ? heuuu que des espaces et des %$! ?
Non en gros il faut qu'elle contienne des chiffres et des lettres sinon la référence n'est pas prise en compte par la génération tarif vente.
Je suis encore en train de chercher pour l'incrémentation de T1, T2, T3 et T4 ( pas le prix l'intitulé à mettre en colonne 5, je comprend de mieux en mieux les codes mais j'avoue que c'est quand même du lourd, faut s'accrocher !!! mais tu explique trés bien ;).
Jérôme
si ma référence ne contient pas des chiffres et des lettres ? heuuu que des espaces et des %$! ?
Non en gros il faut qu'elle contienne des chiffres et des lettres sinon la référence n'est pas prise en compte par la génération tarif vente.
Je suis encore en train de chercher pour l'incrémentation de T1, T2, T3 et T4 ( pas le prix l'intitulé à mettre en colonne 5, je comprend de mieux en mieux les codes mais j'avoue que c'est quand même du lourd, faut s'accrocher !!! mais tu explique trés bien ;).
Jérôme
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
Modifié par eriiic le 13/06/2012 à 16:08
Modifié par eriiic le 13/06/2012 à 16:08
Bonjour,
si ma référence ne contient pas des chiffres et des lettres elle n'est pas prise en compte dans la table génération des tarifs de ventes.
Elle n'est pas ou elle ne doit pas ?
Tant que tu ne donneras pas les règles pour dire qu'une ref est valide je ne vois pas quoi faire...
Je suis encore en train de chercher pour l'incrémentation de T1, T2, T3 et T4
colS_T : variable n° colonne tarif Tx
Une boucle mais avec un incrément de 2 :
For colS_T = colT1 To colT1 + 6 Step 2
qui démarre en colT1, la constante (que je t'ai dit qu'il fallait mettre à jour si tu décalais tes données) désignant la position de T1 dans la feuille source.
eric
edit: autre site très intéressant pour débuter (et plus) : http://excelabo.net/pasapas/vba
si ma référence ne contient pas des chiffres et des lettres elle n'est pas prise en compte dans la table génération des tarifs de ventes.
Elle n'est pas ou elle ne doit pas ?
Tant que tu ne donneras pas les règles pour dire qu'une ref est valide je ne vois pas quoi faire...
Je suis encore en train de chercher pour l'incrémentation de T1, T2, T3 et T4
colS_T : variable n° colonne tarif Tx
Une boucle mais avec un incrément de 2 :
For colS_T = colT1 To colT1 + 6 Step 2
qui démarre en colT1, la constante (que je t'ai dit qu'il fallait mettre à jour si tu décalais tes données) désignant la position de T1 dans la feuille source.
shDest.Cells(ligD, 5) = shSource.Cells(1, colS_T)
libellé Tx récupéré en ligne 1, colonne colS_T
eric
edit: autre site très intéressant pour débuter (et plus) : http://excelabo.net/pasapas/vba
Bonjour,
J'avais fini par trouver pour:
Je suis encore en train de chercher pour l'incrémentation de T1, T2, T3 et T4
shDest.Cells(ligD, 5) = shSource.Cells(5, colS_T) ' Tx
à priorie tout fonctionne nikel !
Elle n'est pas ou elle ne doit pas ?
Elle n'est pas ! en gros une réf genre EVD ou 3012 ne va pas s'inscrire dans la génération des tarifs ventes.
Il faut que la référence contienne les 2 ex: EVD3012
Je ne sais pas pourquoi ça fait ça, y a t'il une restriction ?alors qu'Une référence peut trés bien ne contenir que des chiffres où, que des lettres où, un mélange des deux.
Désolé de ne pas avoir répondu avant, j'ai du prendre une journée de congé vendredi ma femme était bloqué du dos.
Je prend note de tous tes liens est vais, si j'y parviens m'auto- formé .
mille merci,
jérôme
J'avais fini par trouver pour:
Je suis encore en train de chercher pour l'incrémentation de T1, T2, T3 et T4
shDest.Cells(ligD, 5) = shSource.Cells(5, colS_T) ' Tx
à priorie tout fonctionne nikel !
Elle n'est pas ou elle ne doit pas ?
Elle n'est pas ! en gros une réf genre EVD ou 3012 ne va pas s'inscrire dans la génération des tarifs ventes.
Il faut que la référence contienne les 2 ex: EVD3012
Je ne sais pas pourquoi ça fait ça, y a t'il une restriction ?alors qu'Une référence peut trés bien ne contenir que des chiffres où, que des lettres où, un mélange des deux.
Désolé de ne pas avoir répondu avant, j'ai du prendre une journée de congé vendredi ma femme était bloqué du dos.
Je prend note de tous tes liens est vais, si j'y parviens m'auto- formé .
mille merci,
jérôme
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
18 juin 2012 à 13:49
18 juin 2012 à 13:49
Bonjour,
Trop de jours ont passé, je ne me rappelle plus de tout...
en gros une réf genre EVD ou 3012 ne va pas s'inscrire dans la génération des tarifs ventes.
Il faut que la référence contienne les 2 ex: EVD3012
J'ai du mal à comprendre la ref est soit EVD, soit 3012, soit EVD3012, la macro ne fabrique pas de référence (?)
Il faudrait un classeur exemple où tu m'expliques le pb.
eric
Trop de jours ont passé, je ne me rappelle plus de tout...
en gros une réf genre EVD ou 3012 ne va pas s'inscrire dans la génération des tarifs ventes.
Il faut que la référence contienne les 2 ex: EVD3012
J'ai du mal à comprendre la ref est soit EVD, soit 3012, soit EVD3012, la macro ne fabrique pas de référence (?)
Il faudrait un classeur exemple où tu m'expliques le pb.
eric
re,
je viens de me rendre compte qu'en réalité il faut 4 CARACTERE minimum dans la réf pour qu'elle soit prise en compte.
Je retire donc ce que j'ai dit tout fonctionne nikel ;).
Merci,
jérôme
je viens de me rendre compte qu'en réalité il faut 4 CARACTERE minimum dans la réf pour qu'elle soit prise en compte.
Je retire donc ce que j'ai dit tout fonctionne nikel ;).
Merci,
jérôme
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 210
19 juin 2012 à 07:36
19 juin 2012 à 07:36
Bonjour,
ok, je met en résolu pour toi.
Bonne continuation :-)
eric
ok, je met en résolu pour toi.
Bonne continuation :-)
eric