Copier des cellules dans une autre feuille sous condition

Bonjour,

Je me permets de vous solliciter, car je débute en VBA moi aussi et j'essaye d'adapter les solutions que vous avez proposé à mon problème, mais je ni arrive pas. Je dois réaliser un fichier sous EXCEL (Bon de Livraison), jusqu'ici tout va bien. Là ou ça se complique, c'est que je souhaiterai que la feuille "SORTIES" se remplissent automatiquement. Je vous joins un exemple, en espérant que quelqu'un arrive à m'aider sur ce mon problème. L'idée c'est que sur la feuille "BL", je tape une référence, dans la colonne "B27" ex: "ref102" grâce a la formule rechercheV que j'ai mis en place le libellé s'affiche. Ensuite je saisie la quantité livré , se copie directement dans la colonne correspondant à la référence saisie sur la feuille "SORTIES"

41test-bl.xlsx (13.19 Ko)

Bonjour Yannick971,

As-tu envisagé l'utilisation de formulaires de saisie?

Pour ma part même sur ce petit exemple j'ai déjà du mal à voir ce que tu veux. En effet dans ta page BL, tu ne saisies quasiment aucune information, et dans ta page sorties, plein d'informations sont apparues.

De plus ta référence apparaît comme un titre de colonne, es-ce ce que tu souhaites?

Es-ce que à une ligne dans la feuille SORTIE est associée une seule référence ou plusieurs?

Où sont saisies les quantités? Colonne I?

La feuille SORTIE est une sorte d'historique?

Il y a plein de points d'ombre dans ta demande! En somme, peux-tu faire un exemple un peu plus fourni?

Bonjour d3d9x,

Tout d'abord, merci de ta réponse. Je te joins mon fichier.

Donc je saisie les informations du client dans la partie "Delivery adress" et le tout est copié dans "Customer" automatiquement.

Ensuite je saisie une référence dans "B28", et le libellé s'affiche dans "produites" (C28). Ensuite, je remplis la quantité dans la colonne livré (G28). C'est la que je bloque, car je souhaite que la quantité saisie dans "livré" sur la feuille "BL" se reporte dans la colonne de la référence saisie sur la feuille "SORTIES".

Pour être plus clair je donne un exemple:

Je saisie 13413-00 dans "B28" automatiquement le libellé "produit 36" dans la colonne "C28". Ensuite, en G28 je saisie une quantité "110" par exemple. et automatiquement 110 est reporté dans la colonne 13413-00 sur la feuille "SORTIES".

42bl-steevetest.xlsm (46.58 Ko)

D'accord je comprend beaucoup mieux ta demande.

Problème:

Maintenant en prenant tout ça en considération il y a un petit problème:

A quel moment doit-on inscrire les sorties dans la feuille "SORTIE"?

En effet si tu le fais au moment de la saisie, tu pourrais écrire x fois l'informations, et créer x lignes de sorties alors qu'en réalité il n'y en a qu'une.

Proposition:

Je suppose que ta feuille "DELIVERY NOTE" est vouée à être imprimée puis remise à zéro (Oui/Non), que dis-tu d'un bouton de transfert? C'est à dire: Lorsque ta note (feuille "BL") est terminée, tu cliques sur le bouton (qu'il faudra créer). Les informations sont alors transmises à la feuille "SORTIE" (et ce pour toutes les références saisies)

Optimisation:

Cela mis à part, pour la saisie des références, une liste déroulante te conviendrait-elle? Tu cliques en B28 et toutes tes références sont listées automatiquement.

Les sorties doivent en effet s'inscrire dans la feuille "SORTIES" une fois avoir cliqué sur le bouton "enregistrer" que je pense créer.

Effectivement je pense que la liste déroulante pour les références c'est une bonne idée j'y avais pas pensais mais je vais mettre ça à jour. Donc je valide ta proposition.

Voilà une proposition

57bl-steevetest.xlsm (49.72 Ko)

Salut d3d9x,

Merci pour ton aide. Le menu déroulant fonctionne bien en revanche je ne vois rien s'inscrire dans la feuille "SORTIES"? est ce normal?

Oui il y a des trous dans ma macro, en effet sur ta page "BL" les informations du client nécessaires ne sont pas spécifiées. J'ai oublié de t'en parler ( ) En effet je ne comprend absolument pas pourquoi les informations du client sont données sur la page Autre !!!

La feuille "Autre" est ta base de données?

Parce que sur ta page "BL" tu écris l'adresse etc..., et l'adresse est également écrite dans "Autre", j'y perd mon latin.

D'où les vides dans ma macro:

donnees(1) = feuilleColis.Range("F6") 'date
donnees(2) = "" 'enseigne
donnees(3) = "" 'nom magasin
donnees(4) = "" 'adresse
donnees(5) = "" 'CP
donnees(6) = "" 'ville
donnees(7) = "" 'tel
donnees(8) = "" 'contact

Enfaite la page "autre" n'est pas ma base de données,. Je m'en servais, car je devais retravailler des données pour les intégrer dans les colonne qui vont bien sur la feuille "sorties". Maintenant si on peut faire une macro qui remplis les colonne Enseigne, Nom magasin, Adresse CP ... sur la page "sorties ça me va. Je ne sais pas si je suis clair dans mes explications

Voilà ce que ça pourrait donner. Ce n'est pas fini mais regarde la zone de saisie Delivery Address et l'onglet bdd_enseignes.

47bl-steevetest.xlsm (50.45 Ko)

Je sais pas ce qui identifie de manière unique une enseigne, son nom? Son CRM? Autre chose?

On avance c'est cool. Alors oui c'est le CRM qui identifie de manière unique l'enseigne. Une fois la saisie du BL terminé, les colonnes Enseignes, Nom Magasin, ... de la feuille "SORTIES" doivent se remplir. Les colonnes des références utilisées aussi.

Ok on va mettre en pause la partie transfert pour traiter la partie client/enseigne

Etape 1: Complète la base de données client/enseigne en ajoutant les colonnes que j'aurai oublié.

Etape 2: Dans la feuille "BL", met en fond ORANGE la cellule où tu spécifie le CRM, et en jaune toutes les cellules qui en découlent et qui doivent se compléter automatiquement

Etape 3: Pour chaque cellule en fond jaune, précise ce qu'elles doivent afficher. Tu devrais donc avoir une cellule avec écrit "Enseigne", une avec "Nom Magasin", une avec "Adresse" etc...

Voila j'ai rempli quelques lignes

Voilà ton fichier bien amélioré.

26bl-steevetest.xlsm (51.89 Ko)

Par contre gros truc bizarre, le nom d'enseigne est toujours le nom de la ville. Erreur ou choix, ce sera à toi de le déterminer. Toujours est-il que ma macro considère nom de ville = nom d'enseigne.

J'ai effectué un petit remaniement de ton fichier SORTIE (j'ai supprimé les ignominies de cellules fusionnées pour afficher le mois). Au milieu d'un tableau de données, des cellules fusionnées pour séparer des données c'est une méga mauvaise idée.

Bref je te laisse découvrir le fonctionnement du fichier.

Pour les listes déroulantes, voir "validation des données"

Pour les plages nommées, voir formules -> "gestionnaires de noms"

Pour le code -> voir le module VBA

Je n'ai pas vraiment compris. Le nom d'enseigne correspond bien a Castorama ou Intermarché... Nom magasin correspond à la Ville.

Pour ce qui est du code VBA tu fais référence à des feuilles "feuilleColis, feuilleSortie. A quelle feuille font elles allusion.

De plus, quand je clique sur le bouton, j'ai un message d'erreur et il y a un pb a la ligne

"colonneRef = WorksheetFunction.Match(ligne.Cells(1, 1).Value, feuilleSortie.Range("A4:AB4"), 0)"


Petite précision, j'ai une sorte de transfert qui se fait de manière aléatoire, et qui copie le nom enseigne etc en ligne 28 au lieu de ligne 5. Plus incrémentation à chaque fois qu'on que je fais une nouvelle saisie

feuilleColis et feuilleSortie sont des sortes d'objets

Ainsi au lieu d'écrire

ThisWorkbook.Sheets("SORTIES").Range("A5")

J'utilise le code (une fois)

Set feuilleSortie = ThisWorkbook.Sheets("SORTIES")

Et ensuite j'utilise

feuilleSortie.Range("A5")

L'intérêt est pour éviter les erreurs et pour changer ultra facilement le nom de feuille. Si un jour tu décides de renommer ta feuille "Sorties", tu n'as qu'à changer qu'une seule zone du code.

Si cette ligne plante

colonneRef = WorksheetFunction.Match(ligne.Cells(1, 1).Value, feuilleSortie.Range("A4:AB4"), 0)

c'est qu'il n'y a pas de correspondance entre la référence que tu as saisie dans la feuille BL et les références disponibles sur la feuille "SORTIES" (plage J4:AB4). Il te manque donc une référence (ou alors elle est mal saisie) dans ta feuille SORTIES

Ok parfait j'ai compris merci pour ces explications

Bonjour D3d9x,

Je suis désolé pour mon silence, (pas encore internet à la maison). Alors j'ai fais des petites améliorations sur le fichier que tu m'as retravaillé. Bon là n'est pas la question, mon problème c'est qu'au niveau du transfert vers la feuille "SORTIES". Enfaite, lorsque je sélectionne mes références, qui sont bien référencées dans sur la feuille "SORTIES", les quantités, ne sont pas toute reportés et je n'arrive pas a comprendre pourquoi.

De plus, sur le "BL", j'ai la zone "PRODUITES" et "VIERGES". Sur la feuille "SORTIES" tu as des références avec des "P", et "V", il faudrait que les références saisies dans la section "Produites" se mettent dans les références avec un P et V lorsqu'on a une référence sélectionné en section "Vierges"

oups dsl

Rechercher des sujets similaires à "copier feuille condition"