IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Transfert inventaire pour export [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut Transfert inventaire pour export
    Bonjour à tous, confinés ou télétravailleurs!

    Je dispose d'un inventaire de produits chimiques, dont la dangerosité est caractérisée par des mentions de dangers (H200 à H420). Dans l'inventaire de mon entreprise, chaque ligne décrivant les produits chimiques comporte 10 colonnes réservées à ces mentions (un produit pouvant avoir jusqu'à 10 mentions de danger différentes, qui s'incrémentent de droite à gauche, une cellule par mention de danger).

    Je souhaiterai exporter mon inventaire pour le rendre compatible avec un logiciel de calcul SEVESO. Or ce logiciel n'accepte les phrase de dangers que regroupées par type de danger et concaténées. Ci dessous 2 visuels des 2 inventaires:
    celui d'origine:
    Nom : inventaire.jpg
Affichages : 1472
Taille : 156,6 Ko

    celui de destination:
    Nom : inventaire.jpg
Affichages : 1842
Taille : 179,9 Ko

    La logique de regroupement de s mentions de danger du second tableau s'inspire de ce formulaire:
    Nom : formulaire.jpg
Affichages : 1065
Taille : 121,3 Ko

    afin d'exporter mon inventaire de manière lisible pour le logiciel SEVESO, pourriez vous m'aiguiller sur la méthode à suivre?

    j'imagine une logique du genre : "SI je trouve une ou plusieurs mentions de danger "explosible" dans les cellules comprises entre les colonnes K et T...
    (H200 Unst. Expl. / H201 Expl. 1.1/ H202 Expl. 1.2 / H203 Expl. 1.3 / H204 Expl. 1.4 / H205 Expl. 1.5 / Expl. 1.6)
    ... je les regroupe en G en les séparant d'une virgule"

    Auriez vous des suggestions?

    Merci d'avance!!

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Je te reviens avec un maquette.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Volià la maquette.

    Danger.zip

    Le code dans Module1 est assez simple et on peut sans doute faire mieux, notamment pour le parcourt de la feuille référence, mais il fonctionne.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut
    Je te remercie marot-r !

    Une bonne approche qui m'éclaire sur de nouvelles techniques!

    Je pense pouvoir adapter ta solution à mon fichier, elle est suffisamment souple pour cela et je t'en remercie!

    Une question subsidiaire cependant, dans certains cas, il n'existe pas de correspondance entre les 2 référentiels... Si un produit se retrouvait sans mention de danger, il faudrait qu'il ne figure pas dans l'inventaire SEVESO...

    De même, si aucune quantité n'est renseignée (autre colonne ne figurant pas sur mes visuels), les produits concernés ne doivent pas y figurer non plus!

    Comment puis-je y remédier?

    Merci beaucoup!

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Je pense que le plus simple est de tester avant l'export dans la feuille de saisie.
    Tu mets une colonne de service avec une formule où tu vas compter les dangers indiqués pour le produit et vérifier la quantité.
    Un truc du genre colonne N : =ET(NB.SI(B2:L2;"")<>0; M2<>0) qui va te donner VRAI ou FAUX. Où B:L sont les colonnes de danger et M la colonne des quantités.
    Dans le code tu ajoutes juste un test sur cette nouvelle colonne dans le genre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if CelluleProduit.Offset(0, 12)=False then
        'Ajouter le produit à l'export
        ' Ici le code d'ajout du produit.
    end if
    L'avantage de cette technique c'est que tu peux facilement valider quelle ligne est exportée ou pas, et changer les critères sans changer le code.

    Sinon tu peux faire la même chose dans le code avec WorksheetFunction.CountIf() pour l'équivalent du NB.SI().

    Attention il va falloir un compteur pour les lignes d'export, là je récupérai toujours celui de la ligne du produit.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut
    Rebonjour marot_r,


    Ouille, l'adaptation ne se fait pas sans douleur finalement!

    L'inventaire de destination doit respecter un format imposé, avec des colonnes supplémentaires qui viennent s'intercaler entre le nom et les dangers... et démarrant à la ligne 11...

    Je suis parvenu à amener les noms de produits à l'endroit souhaité, mais n'arrive à rien pour ce qui est des mentions de danger !

    Nom : inventaire.png
Affichages : 1245
Taille : 35,8 Ko

    Je constate également une "erreur" :

    Et en remplaçant l'onglet inventaire par mon fichier d'origine, je constate que l'ensemble des mentions de danger se décalent dans l'onglet d'export... reprenant l'adresse des cellules de l'inventaire source sans considérer les entêtes de destination!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Relation récursive pour exporter vers XML
    Par bossun dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/08/2005, 14h17
  2. Standard XML pour exportation du contenu d'une BDD
    Par Fares BELHAOUAS dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 09/07/2005, 16h03
  3. Script sql pour exporter BD de sql server vers access
    Par kayser dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/12/2004, 15h48
  4. aide pour exportation
    Par matt55 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 07/04/2004, 18h22
  5. aide pour exporter une base de donnée
    Par matt55 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 06/04/2004, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo