Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
J'ai un classeur (exemple ci-joint) dans lequel j'ai :
- Saisie : feuille ou les commerciaux saisissent les données et qui vient récupérer un code de facturation issu de la feuille Code Facturation
- Code Facturation : contient les codes de facturation par grossiste
- Facturation : feuille qui récupère les données de la feuille Saisie avec un choisircols et un filtre sur la présence d'un Bon de commande. Cette feuille est destinée à la comptabilité. Dans cette feuille, la comptabilité indique le numéro de facture
J'ai besoin que lorsque ce numéro de facture est renseigné, il soit recopié dans la feuille Saisie
Mon problème est que ce numéro de facture est en dehors du choisircols, du coup si un commercial vient renseigner un bon de commande pour une autre ligne, dans mon onglet Facturation, la référence de facture reste sur la mauvaise ligne.
J'espère que ce sera plus clair avec le fichier joint. C'est un fichier fictif mais il reflète la réalité : tout est dans le même fichier et je ne peux pas demander aux comptables d'aller saisir dans la feuille Saisie.
Si quelqu'un a eu idée pour m'aider ? J'ai bien pensé à une macro qui récupère la données référence de facture à la fermeture du fichier mais le fichier est partagé donc ca ne fonctionnera pas.
Je suis conscient que le fil est un peu mort mais le problème :
pouvoir renseigner une information à coté d'une plage générée par une formule matricielle dynamique et que cette information reste toujours à la même place.
et cela sans macro instruction m'a intéressé.
Mon idée est de générer un horodatage lors de la saisie du N° de bon de commande et, dans la feuille "Facturation, de trier les commandes extraite en fonction de cet horodatage (ordre croissant) ainsi les lignes déjà renseignées seront toujours dans le même ordre et en tête de tableau.
Pour ce faire j'utilise le calcul itératif :
et des formules avec une référence...
un conseil, utilise les tables structurées==> tu peux ainsi utiliser le nom des colonnes dans les formules==> plus besoin de savoir combien de lignes il y a
et tu peux aussi les utiliser pour les listes de validation
voir PJ
PS: je n'ai pas la fonction choisircol dans ma version excel.. j'ai donc juste remplacé les références par le nom des colonnes des tables sans voir ce que ca donne
Dans la PJ, j'ai aussi créé une TS t_Facturation
j'ai fait un copier coller special valeur pour supprimer la fonction choisircol (sinon, j'ai des #noms) qui apparaissent (==> il faudra donc que tu remettes la formule)
et mis une formule recherchex dans la première feuille pour récuprer le numéro de facturation associé au bon de commande
Dans la PJ, j'ai aussi créé une TS t_Facturation
j'ai fait un copier coller special valeur pour supprimer la fonction choisircol (sinon, j'ai des #noms) qui apparaissent (==> il faudra donc que tu remettes la formule)
et mis une formule recherchex dans la première feuille pour récuprer le numéro de facturation associé au bon de commande
Merci à toi mais cela ne fonctionnera pas pour mon entreprise.
feuille saisie : les commerciaux saisissent tout ce qui va arriver en facturation. A ce moment là ils n ont pas forcément le bon de commande. Celui ci dépend des services facturation des clients et le numéro n est pas incremental.
Quand ils ont le bon de commande, ils viennent le saisir.
A partir du moment où il y a un bon de commande ca ajoute une ligne dans la feuille facturation.
Sauf que ça modifie de fait la feuille facturation :
Exemple des lignes 1 à 3 je n ai pas de bon de commande dans la feuille Saisie
Donc dans la facturation j affiche la ligne 4 mais pas les 1 à 3
Si un autre commercial vient saisir un BdC pour la ligne 2 alors dans la facturation vient s ajouter la ligne 2 mais avant la précédente.
Du coup le numéro de facture que la comptable avait renseignée pour la ligne 4 n est plus affecté à la ligne 4 mais à la ligne 2.
Il faudrait que je trouve un moyen d ordonnancer la facturation par ordre d arrivée du bon de commande mais je ne vois pas comment….
Pour les tableaux entièrement d accord avec toi mais mon entreprise les refusent… c est bien dommage.
Merci encore pour tes propositions
je leur avait mis des tableaux ça les a perturbé et en plus à chaque fois certains saisissaient en dehors du tableau donc c était un bazar sans nom, ils ont supprimé les tableaux.
Tes formules fonctionnent le souci c est pas les formules.
Le souci est que pour afficher uniquement les factures à saisir avec uniquement les colonnes utiles j utilise la fonction choisircols et filtre.
Ça me donne un tableau mais dans ce tableau je ne peux pas ajouter une colonne dans laquelle on peut saisir car sinon j ai une erreur de propagation dans mon tableau.
Du coup, ils saisissent le numéro de facture dans une colonne en dehors du tableau.
Sauf que quand le tableau change parce qu un nouveau bon de commande est saisi, mon numéro de facture saisi lui reste sur son numéro de ligne, il ne suit pas la ligne sur laquelle il avait été créé au départ. Je sais c est complexe mon truc
Il faut donc que je trouve un moyen d afficher les lignes qui ont un un bon de commande mais que les nouvelles lignes s incrémentent après.
Du coup choisircols et filtre ne sont sûrement pas adaptées à ce que je veux faire…
Je pourrais faire autrement mais je ne sais pas comment.
Je comprends que ce ne soit pas clair et si tu n as pas les fonctions choisircols et filtre ça rend encore moins clair.
Oui mais donc leur responsable a décider que pas de tableau. En soi c est pas grave jusqu ici je m en sors là je suis juste embêter parce que je n ai aucune donnée qui me permet de savoir quand est saisi un bon de commande. Si j avais la date et l heure de saisie renseigner en automatique je pourrais trier mes données sur cette date et je n aurai plus de souci.
J'ai un classeur (exemple ci-joint) dans lequel j'ai :
- Saisie : feuille ou les commerciaux saisissent les données et qui vient récupérer un code de facturation issu de la feuille Code Facturation
- Code Facturation : contient les codes de facturation par grossiste
- Facturation : feuille qui récupère les données de la feuille Saisie avec un choisircols et un filtre sur la présence d'un Bon de commande. Cette feuille est destinée à la comptabilité. Dans cette feuille, la comptabilité indique le numéro de facture
J'ai besoin que lorsque ce numéro de facture est renseigné, il soit recopié dans la feuille Saisie
Mon problème est que ce numéro de facture est en dehors du choisircols, du coup si un commercial vient renseigner un bon de commande pour une autre ligne, dans mon onglet Facturation, la référence de facture reste sur la mauvaise ligne.
J'espère que ce sera plus clair avec le fichier joint. C'est un fichier fictif mais il reflète la réalité : tout est dans le même fichier et je ne peux pas demander aux comptables d'aller saisir dans la feuille Saisie.
Si quelqu'un a eu idée pour m'aider ? J'ai bien pensé à une macro qui récupère la données référence de facture à la fermeture du fichier mais le fichier est partagé donc ca ne fonctionnera pas.
Merci Gégé, j ai mal exposé mon problème, j aimerai ajouter une colonne en saisie libre mais ce n est pas possible d avoir une colonne en saisie libre avec choisircols.
Je pense que je vais faire beaucoup plus simple mais merci pour cette proposition parce qu elle me servira à un moment. Bonne journee
Cecile
Je suis conscient que le fil est un peu mort mais le problème :
pouvoir renseigner une information à coté d'une plage générée par une formule matricielle dynamique et que cette information reste toujours à la même place.
et cela sans macro instruction m'a intéressé.
Mon idée est de générer un horodatage lors de la saisie du N° de bon de commande et, dans la feuille "Facturation, de trier les commandes extraite en fonction de cet horodatage (ordre croissant) ainsi les lignes déjà renseignées seront toujours dans le même ordre et en tête de tableau.
Pour ce faire j'utilise le calcul itératif :
et des formules avec une référence circulaire.
Si l'horodatage est déjà renseigné on garde cet horodatage (référence circulaire) sinon on met l'horodatage si le N° du bon de commande est saisi. En formule pour la ligne 2 (horodatage en N, bon de commande en E) cela donne :
Pour limiter le risque d'une saisie qui laisserait une ligne vide dans la zone de saisie des commandes, des formats conditionnels et une invite (>>>) incitent fortement à écrire au bon endroit.
De la même façon on peut automatiser la date de saisie par une formule avec une référence circulaire :
Si je suis sur la bonne ligne de saisie et que je renseigne une cellule de la zone de saisie, la date s'affiche puis reste figée. ce qui donne en B2
pour une zone de saisie en C2:G2
Ces formules avec références circulaires sont à tirées vers le bas (moi je l'ai fait sur 500 lignes)
Les autres formules sont des formules matricielles dynamiques qui s'étendent automatiquement en fonction de la plage des saisies effectuées.
Dans la feuille de facturation la formule qui extrait les commandes avec un N° de bon de commande trie par Horodatage croissant, les lignes sont donc toujours présentées dans le même ordre. Une ligne avec un N° de bon de commande intercalé entre des lignes déjà renseignées apparaîtra sous les lignes déjà renseignées.
De même que dans la feuille de commande, des formats conditionnels invitent à faire les saisies au bon endroit.
J'ai utilisé des noms définis :
_LimitesZoneSaisies
=Commande!$A$2:$A$502
Limite de la zone de saisie (pour reduire la plage de formules. Ici 500 lignes)
Entêtes
=Commande!$B$1:$P$1
Entêtes de la feuille "Commande"
LigneVide
={"".""."".""."".""}
Ligne vide d'une commande 6 cellules de saisie Client, Produit, Bon de commande, Prix unitaire, Qté, Forçage de la date de facturation.
Je suis conscient que le fil est un peu mort mais le problème :
pouvoir renseigner une information à coté d'une plage générée par une formule matricielle dynamique et que cette information reste toujours à la même place.
et cela sans macro instruction m'a intéressé.
Mon idée est de générer un horodatage lors de la saisie du N° de bon de commande et, dans la feuille "Facturation, de trier les commandes extraite en fonction de cet horodatage (ordre croissant) ainsi les lignes déjà renseignées seront toujours dans le même ordre et en tête de tableau.
Si l'horodatage est déjà renseigné on garde cet horodatage (référence circulaire) sinon on met l'horodatage si le N° du bon de commande est saisi. En formule pour la ligne 2 (horodatage en N, bon de commande en E) cela donne :
Pour limiter le risque d'une saisie qui laisserait une ligne vide dans la zone de saisie des commandes, des formats conditionnels et une invite (>>>) incitent fortement à écrire au bon endroit. Regarde la pièce jointe 1213596
De la même façon on peut automatiser la date de saisie par une formule avec une référence circulaire :
Si je suis sur la bonne ligne de saisie et que je renseigne une cellule de la zone de saisie, la date s'affiche puis reste figée. ce qui donne en B2
pour une zone de saisie en C2:G2
Ces formules avec références circulaires sont à tirées vers le bas (moi je l'ai fait sur 500 lignes)
Les autres formules sont des formules matricielles dynamiques qui s'étendent automatiquement en fonction de la plage des saisies effectuées.
Dans la feuille de facturation la formule qui extrait les commandes avec un N° de bon de commande trie par Horodatage croissant, les lignes sont donc toujours présentées dans le même ordre. Une ligne avec un N° de bon de commande intercalé entre des lignes déjà renseignées apparaîtra sous les lignes déjà renseignées.
De même que dans la feuille de commande, des formats conditionnels invitent à faire les saisies au bon endroit.
Merci beaucoup AtTheOne pour ce travail et sa documentation très précise. J'ai choisi de ne pas ajouter de colonne en saisie libre et me suis débrouillée autrement pour avoir mon information mais je suis particulièrement touchée par ton travail
Bonne journée
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD