Test sur condition

Bonjour tout le monde,

Dans la macro du fichier attaché, à partir de la table principale, je fais différents tests expliqué dans le fichier attaché. Actuellement , je suis capable d'écrire dans l'onglet B mais pas l'onglet C .

A partir de ces test, je pourrais grandir ma table dans l'onglet A.

Un grand merci

Bonjour,

La condition ’'Si la date en colonne M est égale à la date d'aujourd'hui + 20 jours’' devrait se traduire par la ligne de code

If Date + 20 = .Cells(i, 13) Then

(et non pas Date = .Cells(i, 13) + 20)

De plus, dans ton code on trouve une condition que tu n’as pas indiquée dans ton commentaire, à savoir ’'Si la cellule en colonne U est colorée en rouge''

Cells(i, 21).Interior.ColorIndex = 3

A+

Bonjour Frangy et tout le forum,

J'ai corrigé l'inversion et éliminé la condition cellule rouge.

Merci


Bonjour tout le monde,

J'ai crée une base de données (avec l'aide du forum) et une condition de date qui me permet d'extraire dans le deuxième onglet les lignes qui correspondent a cette date.

Cet deuxième onglet me sert a remplir une base de donnée dans un autre fichier. Tout cela fonctionne bien.

Lorsque la ligne est transférée, je demande de l'aide pour trouver un moyen qui empêche la recopie une deuxième fois .

Si quelqu'un avait une idée. J'ai ajouté le fichier.

Merci beaucoup

Bonjour,

La plage de données de la feuille "facture" est systématiquement effacée avant d'effectuer la copie.

(Sheets("facture").Range("A6:Y" & Rows.Count).Clear)

Tu n'auras donc jamais une seconde copie.

Veux-tu supprimer cet effacement et n'effectuer que la copie des nouvelles lignes ?

A+

Bonjour Frangy et le forum,

Dans l'onglet page principale , lorsque une ligne a été transférée dans l'onglet facture (car elle correspond a la condition de date et que j'ai appuyé sur check date ), ce serait bien d'avoir une condition qui empêche de traiter cette ligne a nouveau . (genre colorier la ligne numéro de facture).

Dans page principale, Si colonne 1 est coloriée en vert , pas de traitement lorsque j'appuie sur check date.

Si je pouvais une piste de solution é

Un grand merci

Je t'ai bien compris mais dans ce cas, si la cellule de la colonne 1 est coloriée en vert, la ligne correspondante n'apparaitra plus dans la feuille "facture" puisque la plage de données de cette feuille est systématiquement effacée avant d'effectuer la copie.

C'est bien ce que tu souhaites ?

A+

Bonjour Frangy et le forum,

Oui tu as raison car au fur et mesure que je rentre des lignes dans page principale, je peux cliquer sur check date pour envoyer les lignes dans l'onglet facture et je ne veux pas perdre les infos.

J'ai un autre fichier qui génère les factures et c'est dans lui que je devrais travailler pour empêcher la création d'une deuxième facture.

Pour le moment , oublions cette condtion de coloriage, juste se concentrer sur écrire ''Env " dans la colonne P et colorier en vert clair si la ligne a été transféré dans l'onglet facture.

Tu m'aides beaucoup, merci

Dans le classeur joint, les conditions suivantes sont respectées :

Si Date Fact (Col C) <= Aujourd'hui () et si le numéro de facture n'est pas présent dans la feuille facture, alors :

Recopier la ligne correspondante dans l'onglet facture

Écrire Date Fact + 20jours dans Date de rappel 1 (col K) dans l'onglet fichier principal

Écrire " ENV " et colorier en "vert clair" Facture envoyée (col P) dans l'onglet fichier principal

A+

Re bonjour Frangy et le forum,

A date, avec les simulation que je viens de faire c'est parfait sauf que :

Si je force la date de facturation manuellement au delà de la date d'aujourd'hui dans la page principale, la ligne dans l'onglet facture ne s'efface pas. ( donc pas d'effet de l'ancien clearcontent de la table dans l'onglet facture).

C'est le seul petit bug.

Je vais adapter pour créer un onglet rappel1 et rappel2 et colorier les colonnes K et L.

J'aurais un bouton pour check rappel1 et check rappel2 a moins que tout puisse se faire a partir du même bouton clic.

Grand merci pour ton aide précieuse

Le problème est de savoir si tu veux un "rafraichissement" complet de la feuille facture qui prenne en compte l'ensemble des modifications de la feuille principale ou simplement une "mise à jour" qui concerne les lignes non encore enregistrées dans la feuille facture.

Dans le premier cas, tu autorises toutes sortes de modifications. Il faut pour cela effacer l'intégralité des données de la feuille facture et supprimer la condition "si le numéro de facture n'est pas présent dans la feuille facture".

Dans le second cas, tu satisfais la condition que tu avais posée qui consistait à empêcher de traiter cette ligne alors qu'elle a déjà été copiée.

Pour ce qui est de forcer la date de facturation manuellement au delà de la date d'aujourd'hui, il est évident que la copie ne se fera pas puisque la condition première est justement Date Fact (Col C) <= Aujourd'hui ()

Je te laisse le soin de décanter tout cela afin de ne conserver que la partie claire

A+

Bonjour Frangy,

Tes reflexions sont pertinentes et me permettent d'envisager tous les cas.

Je préfere garder la condition sur le numéro de facture et donc une mise a jour de l'onglet facture.

Le ''Env en vert'' est pratique car c'est très visuel de voir quelles factures ont bien été envoyés dans mon fichier principal et pourront servir de statistiques plus tard.

Si je veux recopier une ligne du fichier principal dans facture ( pour quelque raison que ce soit), je peux simplement la supprimer manuellement dans l'onglet facture et réappuyer sur check. ''Env en vert'' me fera penser qu'elle a deja été traitée.

Peut-être plus tard, au niveau de l'effacement, ce serait bien d'automatiser cette opération avec pop-up qui demanderai le numéro de facture a effacer pour confirmer.

Pour ce fichier ici, je crois que le travail est magnifique et je t'en remercie grandement.

Je posterai l'autre fichier sous peu en espérant que tu viennes encore a mon secours.

Bien sincèrement

Guy55

Bonjour Frangy et le forum

Voici l'autre fichier qui génère les factures en fonction d'un masque.

Tu reconnaitras les données, elles viennent du fichier précédent qui faisait les test de conditions.

Chaque onglet est une facture et il me reste deux choses a faire :

1) Imprimer les factures (cela semble être sur le bon chemin ... )

2) trouver un système d'archivage facile, soit dans ce fichier (ce que j'aimerais moins) ou alors un autre fichier sur le meme principe. (sauvegarder les factures en ajoutant les lignes les unes a la suite des autres et avoir un pop=up message formulaire qui irait chercher le numéro de facture pour intégrer les données dans un masque. (fichier archivage annuel)

Aurais-tu une piste de solution pour l'effacement des onglets et le système de sauvegarde.

J'attache le fichier.

Un grand merci

10genererfacturev2.xlsm (106.86 Ko)

Bonjour,

Pourquoi créer un onglet par facture ?

Tu pourrais organiser ton classeur de la manière suivante :

  • une feuille "Factures" avec les données de facturation .
  • un masque d'édition
Avec ces deux éléments, tu peux effectuer l'édition de toutes tes factures.

Ensuite, tu peux créer une feuille pour archivage des données de facturation après traitement. Cette feuille peut se trouver dans ce même fichier.

Enfin, tu réalises une sauvegarde de ces données archivées. Il s'agit alors d'effectuer périodiquement une copie des données sur un autre support (paliatif à la perte des données sur le premier support), le plus simple étant d'effectuer une copie de l'intégralité du fichier.

Je te conseillerais aussi de créer un Userform pour gérer l'ensemble des traitements.

Tout cela n'étant jamais qu'un avis personnel, indique-moi la suite que tu souhaites donner.

A+

Bonjour Frangy, bonjour le forum,

Un onglet par facture (avec le masque) ... pour moi et avec mes connaissances, c'était la solution la plus simple et facile pour générer les données à la bonne place. Tout est visuel.

Comment tu me le décris, c'est une feuille qui contient toutes les données facture, une deuxième feuille qui contient le masque et une boucle qui remplit les factures avec le masque. Je me demandais ou seront stockées les factures finales pour visualisation et impression ?

Pour l'archivage, j'aime beaucoup l'idée de sauvegarder la table traitée dans un autre fichier qui serait sur un autre support (sécurité). Pour le userform ( même si je suis pas familier) cela serait très visuel, surtout pour la recherche sur numéro de facture.

Reste aussi l'enjeu du traitement unique ...

Regarde Frangy, si tu as le temps et si ça te tente, j'aimerais bénéficier de ton expérience.

Pourrais-tu m'écrire un petit exemple qui serait pour moi une base de départ . Tu peux employer le fichier qui contient déjà les données et le masque.

Un grand merci pour ton aide.

Bonjour Guy55,

Fais le test avec le classeur joint et dis-moi si cela correspond à tes attentes.

Le classeur se compose de 4 feuilles :

  • Accueil
  • Factures
  • Masque
  • Archivage

A+

Bonjour Frangy et le forum

Je suis très content du résultat.

1) Les conditions sont gérées dans le fichier de base

2) Permettre la modification des champs de facture et l'impression séparées ou totale.

3) Lors de l'archivage, les lignes traitées disparaissent.

Oui ca me convient tout a fait.

Je ne vois pas la macro , j'aimerais avoir accès à la modification des entêtes de champs et mieux comprendre dans mon processus d'apprentissage.

J'aimerais garder le quadrillage et la numérotation ligne-colonne.

Si possible placer le formulaire de ''gestion de facturation'' en haut de la page en longueur et ne jamais l'effacer.

Meilleure gestion de l'archivage ... une chose à la fois.

Parfois, un vrai ''merci '' vaut milles mots.

MERCI

Guy

Je ne vois pas la macro , j'aimerais avoir accès à la modification des entêtes de champs et mieux comprendre dans mon processus d'apprentissage.

Dans l’explorateur de projet, tu dois voir le sous dossier (mal) nommé "Feuilles".

Sous ce dossier, tu vois les formulaires "Accueil" et "Form_Factures".

Tu sélectionnes un formulaire puis avec un clic droit, tu peux choisir de visualiser le "code" ou "afficher l’objet".

Pour modifier la structure du formulaire, tu agiras avec "afficher l’objet".

Pour modifier le traitement, tu agiras sur le "code".

J'aimerais garder le quadrillage et la numérotation ligne-colonne.

Dans l'onglet "Afficher / Masquer", j’ai décoché "Titre", "Quadrillage" et "Barre de formules" de la feuille "Accueil" puisqu'ils ne servent à rien (cette feuille sert de fond d'écran).

Par contre, ils sont conservés dans les 3 autres feuilles.

Si possible placer le formulaire de ''gestion de facturation'' en haut de la page en longueur et ne jamais l'effacer.

J’ai séparé volontairement la partie importation des données de la partie traitement des factures afin de ne pas risquer de créer d’incompatibilité de traitement.

Si tu lances un import alors que la fenêtre de gestion des factures est ouverte, tu vas devoir gérer la mise à jour des données. Ce n’est franchement pas une bonne idée.

A+

EDIT : je t'ai dit une bêtise pour le quadrillage et la numérotation ligne-colonne

Essaie comme cela

A+

Frangy,

1) Je vois toutes les macros, ok pour ''objet'' et ''code'' suivant ce que je veux modifier.

2) Pas de trouble pour le quadrillage,

3)Tu as raison, la page d'accueil est un fond d'écran avec affichage des lignes correspondant aux conditions du fichier principal.

Si possible placer le formulaire de ''gestion de facturation'' en haut de la page en longueur et ne jamais l'effacer.

Si malheureusement je clique sur la croix rouge en haut a droite (fermeture) du menu ''gestion de la facturation'' en page accueil, je suis obligé de fermer le fichier et l'ouvrir a nouveau. C'est pour cela que j'aimerai l'avoir en longueur dans le haut de la page (un peu style bouton de mon ancienne version) et infermable avec la croix rouge.

4) Lorsque je fais ''visualiser/modifier la facture'' et que j'archive les factures une a une , lorsque j'archive la dernière, la macro me dit erreur 380 dans le module '' initialiser''. J'essaie le maximum de possibilités.

5)Si tu pouvais voir à ça quand tu as le temps, de mon côté je vais avoir besoin du temps a consacrer à comprendre tout ce processus qui est nouveau pour moi.

Un grand merci

Guy55

Bonjour,

Tu trouveras en pièce jointe le classeur modifié.

Pour régler le problème de fermeture inopinée, j’ai intégré un code d’inhibition de la croix système.

Pour l’erreur lors de l’archivage de la dernière facture, j’ai placé un test afin de contrôler qu’il reste une facture avant de réinitialiser la liste.

A+

Bonjour Frangy, bonjour le forum.

1) Croix système rouge sur les deux UserForm fonctionne.

2) Archivage fonctionne super bien car plus de possibilités après le dernier archivage.

3) Reste le problème de l'impression.

4) ALT F11 et CTRL R ne fonctionnent pas . Comment faire pour rentrer dans le VBA.

Besoin de ton aide encore ...

Merci

Rechercher des sujets similaires à "test condition"