Userform - Problème de validation de saisie et ordre alpha

C'est reconstitué et testé sur une copie... Pas d'incident !

Complément à ce que j'ai dit hier :

Une procédure Workbook_Open intervient : si le numéro de version d'Excel est supérieur ou égal à 12 (=Excel 2007), elle compare la dimension du Tableau Excel et de la plage nommée. Si le tableau a une taille inférieure elle l'agrandit à la dimension de la plage.

Ainsi les ajouts opérés sous 2003 seront incorporés au tableau en passant sous 2007 ou ultérieur.

Dans la procédure d'inscription (ajout ou modification), après affectation de l'enregistrement, un test de version est également opéré : si la version est inférieure à 12, une formule est insérée en colonne G sur la ligne (Pour 2007 et ultérieur, la formule se met automatiquement [fonctionnalités de Tableau] mais pas sous 2003).

Outre cet aspect, j'ai opéré quelques petits ajustements :

- opérer la vérification de saisie avant celle du numéro de facture pour Ajout, c'est un détail mais cela gagne du temps (je ne m'en était aperçu qu'en l'écrivant dans le post d'hier)...

Les autres concernent les contrôles sur dates et acomptes, en partant du principe que pour qu'un enregistrement soit ajouté 4 données sont nécessaires : nom, facture, date1, acompte1. On ne peut en principe pas valider un enregistrement si l'une de ces données manque.

Restait qu'il ne fallait pas qu'on puisse modifier Acompte1 par exemple en laissant demeurer un Acompte2 déjà servi, donc au niveau des contrôles Date et Acompte, en sortie de saisie :

•Date1 : si vide => on efface Date2

•Acompte1 : si vide => on efface Date2

•Date2 : si Date1 vide ou Acompte1 vide => on efface Date2 et Acompte2

si Date2 vide => on efface Acompte2

On devrait ainsi éviter des modifications entrainant des incohérences...

A l'inverse : si Date2 est validée, Acompte2 est servi automatiquement (et si non validée, Acompte2 effacé au cas où)

Tu pourras tester mieux que moi si tout est conforme aux spécifications...

Je te laisse le temps de t'approprier tout ça... Pour la suite, je vais commencer par étudier tes formules sur l'autre feuille, mais cela ne me donnera pas toutes les infos nécessaires sur la procédure suivie pour vérifier.

Deux axpects sont ensuite nécessaires :

  • si la balance n'est pas établie : quelles erreurs sont à rechercher et comment...
  • si la balance est établie : on peut en principe épurer, mais comment délimiter ce qui peut et doit être épuré.
Tout cela est encore nébuleux pour moi (mais rien ne presse).

Cordialement.


Ouf ! Bonne nouvelle que tu aies pu récupérer

Ça me semble bien mais sans fichier pour voir ce que cela donne c'est difficile

Pour le grand livre, on saisie la donnée en date de fin de mois et on compare au total des acomptes actifs à cette date ce qui devrait amener une variation à 0

Pour ce qui est de l'épuration, je me disais que le plus simple serait de pouvoir demander de supprimer les enregistrements jusqu'à une date x, normalement une fin de mois

Ainsi, si nous avons pu ajuster les mois de novembre, décembre on peut aisément se passer des enregistrements de octobre 2016 et avant qui sont à 0 $

C'est la théorie mais en pratique... actuellement octobre, novembre décembre ne balancent pas

Trop d'erreurs dans le fichier excel qui est utilisé et dont je ne suis pas l'auteur

Je ne sais pas si c'est plus clair

Oh ! Le fichier n'est pas passé ! Excuse-moi, je le remets !

Je ne l'avais pas zippé et pas passé parce que trop gros....

36acompte-test2.zip (180.45 Ko)

Bonjour,

ce semble super bien... il y a juste la recherche qui m'agace un peu...

Je voulais avoir la possibilité de saisir des lettres et que la liste s'ajuste en conséquence

Exemple : mon.... je tombe sur la liste des nom correspondant ma mon... donc tous les monsieurs

Est-ce possible ?

Merci

Pour le grand livre, on saisie la donnée en date de fin de mois et on compare au total des acomptes actifs à cette date ce qui devrait amener une variation à 0

Tu dis que le montant est toujours négatif en GL. Ton écart lui, est toujours positif ou nul.

Quelle composition de la données GL en fin de mois ?

La compta n'est pas ma spécialité !

Pour ce qui est de l'épuration, je me disais que le plus simple serait de pouvoir demander de supprimer les enregistrements jusqu'à une date x, normalement une fin de mois

Sur le principe, ça me paraît logique. Pratiquement il faut qu'on puisse parfaitement délimiter l'ensemble à supprimer.

C'est la théorie mais en pratique... actuellement octobre, novembre décembre ne balancent pas

Effectivement ! Quelle est la méthode actuelle pour retrouver la source des écarts...

On y reviendra. Je te laisse voir la question des saisies et constitution des données...

Deux petits point encore sur lesquels j'ai dû passer :

- J'ai rétabli le Userform en modal (il est indispensable qu'on ne puisse pas intervenir sur la feuille tant qu'on est sur le formulaire).

Et il serait mieux qu'on ne passe que par le formulaire...

- Je pense que tu devrais supprimer l'alignement à droite pour toutes les colonnes : les données se cadreront à gauche pour du texte et à droite pour des nombres.

Tes données Facture sont des valeurs numériques, les dates sont aussi des valeurs numériques, les montants aussi bien sûr.

En ne forçant pas l'alignement, tu vois tout de suite s'il apparaît une anomalie dans ton tableau.

Bonne soirée.

J'essaie de trouver le bon équilibre !

Procède aux modifications suivantes :

D'abord dans la fenêtre de propriétés (cboNom sélectionné) :

  • propriété MatchRequired : la mettre sur True
  • propriété TextColumn : la remettre sur -1

Au niveau des procédures :

-changer la procédure Change en BeforeUpdate :

Private Sub cboNom_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    Dim tx, n%, i%
    tx = Split("Nom Facture Date1 Acompte1 Date2 Acompte2")
    n = cboNom.ListIndex + 1
    If n > 0 Then
        With [BAcpt]
            For i = 0 To UBound(tx)
                Controls("txt" & tx(i)).Value = .Cells(n, i + 1).Text
            Next i
        End With
    Else
        EffaceTxt
    End If
End Sub

-ajouter une procédure Enter :

Private Sub cboNom_Enter()
    cboNom.DropDown
End Sub

Explications : à partir du moment où tu utilises le clavier, lors d'une même recherche tu vas déclencher plusieurs fois l'évènement Change (au lieu de ne le déclencher qu'à la sélection), donc avec répercussion à chaque fois sur les TextBox...

Donc lorsque tu te positionnes dans la Combo, l'évènement Enter se produit : on affiche la liste déroulante (qui sinon ne s'afficherait qu'en cliquant sur la flèche), tu frappes, le premier élément correspondant se sélectionne dans la liste, tu ajustes pour choisir le bon, et tu appuies sur Entrée pour valider : les TextBox sont servis à ce moment là.

Si le système convient mieux, il implique d'autres modifications :

-la proc. EffaceTxt devient :

Sub EffaceTxt()
    Dim tx, i%
    tx = Split("Nom Facture Date1 Acompte1 Date2 Acompte2")
    For i = 0 To UBound(tx)
        Controls("txt" & tx(i)).Value = ""
    Next i
    cboNom.ListIndex = -1
End Sub

-dans proc. Modification_Click, remplacer : cboNom.ListIndex = -1: Me.Show par :

           EffaceTxt
            Me.Show

-même chose dans Suppression_Click :

        EffaceTxt
        Me.Show

Voilà !

Ça marche bien pour la recherche, je l'ai modifié

Je constate une petite anomalie dans la modification ...

Dans le cas où on se soit trompé de montant sur l'Acompte1 et qu'on le modifie, il faut aller changer la Date2 pour que le changement se fasse sur l'Acompte2, c'est un moindre mal mais cela peut amener des erreurs

- Je pense que tu devrais supprimer l'alignement à droite pour toutes les colonnes : les données se cadreront à gauche pour du texte et à droite pour des nombres.

Je ne vois pas d'alignement forcé dans mes colonnes ?!

Je vais tenter de répondre à tes questions sur le grand livre

Tu dis que le montant est toujours négatif en GL. Ton écart lui, est toujours positif ou nul.

Quelle composition de la données GL en fin de mois ?

La compta n'est pas ma spécialité !

En fait, le solde au grand livre à la fin du mois correspond au montant total des Acompte1 que nous devons aux clients tant que nous ne leur avons pas remis la marchandise... un client peut très bien commander un item et venir le chercher le mois suivant ... il y a des retardataires qui ne viennent pas chercher leur commande après des mois... c'est donc toujours cumulé au Grand livre comme une avance que nous devons jusqu'à la remise de la marchandise

Donc oui c'est toujours négatif et ce serait étonnant que ce soit nul puisqu'il y a toujours des commandes en suspens

Mais si nous devons réviser tout un mois, nous devons prendre la liste de toutes les commandes qui sortent sous deux rapports Acompte1 et Acompte2, il faut tout réécrire si cela a été épuré avant d'être balancé

La limite actuelle d'enregistrement de la feuille excel utilisé est de 270 et par conséquent, ils épurent trop tôt les commandes et c'est quasiment impossible de tenir à jour et vérifier les erreurs sans tout recommencer à saisir les infos comme c'est le cas actuellement pour les mois de octobre, novembre et décembre

C'est pourquoi je tenais à garder un plus grand nombre d'enregistrements et aussi à faire des tris par date pour le calcul avec le grand livre

Au 31 octobre, le grand livre affichait X Montant $ si je fais les tri des enregistrements plus petit ou égal au 31 octobre , je devrais arriver au même montant malgré qu'on ait épuré la base... idem au 30 novembre... au 31 décembre etc....

Le bureau chef demande que chaque mois soit à jour... et c'est actuellement en retard et avec des soldes erronés depuis trois mois

J'espère que c'est un peu plus clair

J'ai l'impression de m'y perdre moi-même

Je ne sais pas trop comment cela pourrait être fait mais si la date de saisie du grand livre et le montant associé apparaissait sur le formulaire avec le calcul instantané des enregistrements incluant cette date, ce serait génial

Merci

Dans le cas où on se soit trompé de montant sur l'Acompte1 et qu'on le modifie, il faut aller changer la Date2 pour que le changement se fasse sur l'Acompte2, c'est un moindre mal mais cela peut amener des erreurs

Pas fait gaffe à ce cas ! Je te fais un correctif : si modif Acompte1, si Date2 servie, on modifie concurremment Acompte2 (demain : à cette heure-ci j'ai arrêté ! )

Je ne vois pas d'alignement forcé dans mes colonnes ?!

Pas dans le fichier que j'ai renvoyé, mais il y en avait à l'origine.

Et je relis demain à tête reposée ton explication sur le GL.

Cordialement.

Voilà toujours pour régler le problème de modif Acompte1 :

Private Sub txtAcompte1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    [...]
    If v > 0 Then
        txtAcompte1.Value = Format(v, "# ##0.00"" $""")
        If txtDate2 <> "" Then txtAcompte2.Value = Format(-v, "# ##0.00"" $""")
    Else
    [...]
End Sub

Un petit ajout utile sur la procédure de lancement du Userform (il est préférable de ne pas trier en mode filtre) :

Sub Lancer_Formulaire()
    With ActiveSheet
        If .FilterMode Then .ShowAllData
    End With
    GestionAcomptes.Show
End Sub

Je te remets un exemplaire à jour à cette heure (à tout hasard).

Pour la suite il y a des extractions mensuelles à prévoir... Ça c'est assez facile, mais pour faire des rapprochements automatiques il faut avoir des documents auxquels rapprocher tes extractions.

A+

Bonsoir,

merci pour cette dernière version

Ce formulaire est dédié à une vingtaine d'utilisateurs et je devrai probablement migrer les données de la feuille excel originale pour certains et d'autres repartiront à zéro selon leur choix respectif

J'ai vidé la base de donnée en laissant la formule de calcul pour l'écart afin de transmette le fichier à mon usager test et là il y a un bug à ce niveau

Private Sub UserForm_Activate()
    Dim TT, n%
    With [BAcpt]
        .Resize(, 7).Sort key1:=.Cells(1, 1), order1:=xlAscending, key2:=.Cells(1, 2), _
         order2:=xlAscending, Header:=xlGuess
        TT = .Resize(, 2).Value
    End With
    cboNom.List = TT
    lblDateDuJour.Caption = Format(Date, "dd mmm yyyy")
End Sub

parce que le champ date est vide

Autre particularité que j'aurais voulu est de verrouiller la feuille pour éviter qu'on ne bidouille les formats mais je vois que cela entre aussi en conflit avec le même code

De plus, si je verrouille le champ calculé, je ne peux pas supprimer une ligne même si je mets l'option dans le verrouillage

Et cela entrera aussi en conflit avec la suppression dans le formulaire deleteRow

J'imagine que c'est pour cela que tu préconises l'utilisation du formulaire modal et le moins de travail possible sur la feuille

D'un autre côté, dans ce cas-ci, cela me permettait d'effectuer des recherches avancées selon le type d'erreurs qu'on peut rencontrer...

Les seuls documents que nous avons sont: la liste des Acompte1 pour un mois X et la liste des Acompte2 pour le même mois avec juste une info... le solde des montants en acompte au grand livre (qui incluent les les Acompte1 qui persistent des mois antérieurs, clients qui ne sont pas venus chercher leur commande)

Nous avons aussi un classeur avec les Acompte1 originaux des clients qui nous permettent de valider si tout s'y trouve en-dehors du mois pour les rapports en cours

Bref, je ne sais pas s'il y a moyen de laisser les avantages du tri sur la feuille et de verrouiller les éventuelles bêtises des usagers

Je travaille sur la manière dont j'aimerais que soit la présentation pour le Grand Livre sur le Formulaire et je vous l'envoie dès que possible

Quant à l'épuration des données, je pense que le plus simple est de supprimer les lignes à 0 $ tout simplement à partir d'une date qu'on fournira à la demande

Merci beaucoup de votre patience et de votre disponibilité

Bonsoir,

je joins à la présente la dernière copie du fichier afin que tu vois en gros ce que j'ai pensé pour le Grand Livre et l'Épuration

En fait, j'ai ajouté un Frame Grand Livre au bas du formulaire dans lequel on retrouve le txtDateGL et le txtMontantGL qui tireraient leur source de la feuille Grand Livre

Peut-être est-il mieux de mettre des label ? Il n'y aurait pas d"ordre de saisie ... tu me diras selon ton expérience

Il y a aussi le lblEcartGL qui lui serait mis à jour automatiquement à chaque affichage... ainsi on verrait notre progression dans la saisie et si nos correctifs nous rapprochent du but

J'ai ajouté un Bouton Epurer et je visualisais un sous-formulaire qui s'ouvre et qui demande la date d'épuration des données ... lorsqu'on inscrit la date et demande de procéder par un bouton ... il y a demande de confirmation avant la suppression et on revient au formulaire de base ensuite

C'est en gros ce que j'ai pensé

Je suis ouverte aux suggestions

Merci

16acompte-test3.zip (185.72 Ko)

Une réponse rapide : le problème vient du fait que la base vidée, la plage nommée n'existe plus, ce qui déclenche une erreur... Généralement, il est tacitement admis qu'une base de données ne doit pas être vide au départ... Cependant le système de suppression fera toujours courir un risque de casser la référence, je revois donc en intégrant l'en-tête dans le nom, ce qui garantira la stabilité de la plage, mais il faut modifier le reste en conséquence... Tu auras ça dans la soirée pour moi.

Sinon, oui, je pense qu'il est toujours plus sage et plus sûr de ne pas intervenir manuellement sur une base de données. Cela évite les fausses manoeuvres en général...

La protection ne figure pas parmi mes techniques préférées de sécurisation, je lui préfère des options plus "douces" :

  • base toujours masquée, jamais visible que par extractions sur demande...
  • ou blocage de toute intervention manuelle en fonctionnement normal, en prévoyant un mode "réparation" qui occulte le blocage pour permettre des interventions sur la structure...
Mais tout cela est à voir selon les utilisateurs et les pratiques en vigueur...

Je réserve la discussion sur le grand livre... Je crois qu'il faut réserver le Userform à la gestion journalière de la base, soit le traitement individuel des enregistrements, c'est simple, et une fois bien en place fiable. Les opérations mensuelles constituent un autre lot qui doit disposer de ses propres procédures... Mais bouclons d'abord le mécanisme journalier...

A+

La protection ne figure pas parmi mes techniques préférées de sécurisation, je lui préfère des options plus "douces" :

  • base toujours masquée, jamais visible que par extractions sur demande...
  • ou blocage de toute intervention manuelle en fonctionnement normal, en prévoyant un mode "réparation" qui occulte le blocage pour permettre des interventions sur la structure...
Mais tout cela est à voir selon les utilisateurs et les pratiques en vigueur...

C'est le seul moyen que je connais... mais s'il y a moyen d'utiliser les tris et la recherche ainsi que d'imprimer la feuille excel selon le tri... moi je suis partante

Pour le Grand Livre, y a-t-il moyen que ce soit sur un deuxième onglet du formulaire ? pour visualiser rapidement !

En ce qui concerne l'écart par ligne d'acompte, est-il possible de préserver la formule même si la ligne est supprimé ?

Tu es un vrai magicien en tous cas...

Merci

Bonjour,

Ça va un peu vite ! Et il faut que je m'occupe de mon intendance de temps en temps... !

Si j'ai à peu près compris le principe, pour la vérification tu en as une sur la feuille à partir du solde à une date donnée : si ok, on peut épurer à cette date (à moins que l'on ne pousse la vérification plus loin pour éviter des erreurs de compensation...).

La partie de vérification qui peut être automatique, consiste à rapprocher des documents : un issu du GL, l'autre une extraction de ta base : on en élimine les éléments qui se correspondent pour retenir ce qui diffère et est donc à vérifier directement.

Les opérations se passent en mémoire. Un support n'intervient que pour montrer un résultat à l'utilisateur. Les choix en la matière peuvent prendre en compte les habitudes de travail... Si un Userform est choisi il est préférable d'en établir un autre pour ne pas mélanger...

En ce qui concerne l'écart par ligne d'acompte, est-il possible de préserver la formule même si la ligne est supprimé ?

Qu'entends-tu par là ? Si une ligne n'existe plus, il ne peut y avoir de formule !

Si tu parles du fait que la suppression du dernier enregistrement de ta base aura du même coup supprimé la formule. C'est vrai !

Mais dans ce cas, elle sera réintroduite en G2 par Workbook_Open (quelle que soit la version). Et dès lors que tu es sous 2007, elle sera dans le tableau donc...

Plusieurs petites modifications, mais vu le nombre, je remets un classeur à jour.

Les modifications touchent :

  • redéfinition de la plage nommée à partir de A1 pour inclure l'en-tête,
  • introduction d'une variable Range niveau module qui sera substituée à la plage nommée pour traiter les opérations,
  • cette variable définira une plage commençant à A2 et comportant une ligne de plus (dans cette nouvelle définition, la ligne d'ajout dans la plage sera désormais .Rows.Count au lieu de .Rows.Count+1),
  • des ajustements touchent donc diverses procédures : MajAcompte, Ajout_Click, cboNom_...,Suppression_Click, Quitter_Click, sans oublier Workbook_Open, et la propriété MatchRequired rétablie à False (posait quelque pb sinon).
La plus importante modification touche Userform_Activate :
Private Sub UserForm_Activate()
    Dim TT, n%
    n = [BAcpt].Rows.Count
    Select Case n
        Case 1: DefBAcpt
        Case 2
            DefBAcpt
            With RgAc
                cboNom.AddItem .Cells(1, 1)
                cboNom.List(0, 1) = .Cells(1, 2)
            End With
        Case Else
            With [BAcpt]
                .Resize(, 7).Sort key1:=.Cells(1, 1), order1:=xlAscending, key2:=.Cells(1, 2), _
                 order2:=xlAscending, Header:=xlYes
            End With
            DefBAcpt
            TT = RgAc.Resize(n - 1, 2).Value
            cboNom.List = TT
    End Select
    lblDateDuJour.Caption = Format(Date, "dd mmm yyyy")
End Sub

qui distingue donc les cas où il n'y a aucun enregistrement dans la base ou un seul (dans les autres cas on revient à la proc. initiale).

L'affectation de la variable Range a été dévolue à une procédure autonome...

Sub DefBAcpt()
    Set RgAc = [BAcpt].Offset(1)
End Sub

...avec l'arrière-pensée que si, en tel ou tel point du programme on détecte un risque d'erreur, lequel aurait pour effet la réinitialisation des variables, on pourra aisément mettre en place une gestion d'erreur renouvelant cette affectation (par appel de cette procédure) pour y pallier...

A plus tard.

Oui c'est très bien, tu as tout compris !

Je dois quitter pour le travail,

je te suivrai dans la journée si j'ai des messages

Merci

Bonjour,

je viens de tester en réel la dernière version et je constate deux problèmes

Comme je le disais, en recopiant les données de la feuille excel, j'ai perdu la formule de calcul écart et le fichier donne une erreur systématique sur l'ajout d'une ligne

De plus, le champ date n'est pas bien converti pour la Date1 lorsqu'on regarde sur la feuille exemple 05-nov-2016 se retrouve sur la feuille 16-nov-05

Je t'envoie la version avec les données pour que tu visualises mieux

Merci

Bonsoir,

en recopiant les données de la feuille excel

Qu'entends-tu par là ?

Bonjour,

j'avais des données qui ont été saisies dans une feuille excel exactement semblable à celle du formulaire

J'ai supprimé toutes les lignes qu'il y avait dans la dernière version à l'exception de la ligne 1 pour préserver la formule de calcul sur l'écart

J'ai effacé les données de la ligne 2 en préservant la formule d'écart sur la dernière colonne

J'ai fait un copier de chacune de colonnes sur le fichier source de données en commençant par A2 jusqu'à F2 toujours pour préserver la formule de calcul

J'ai fait un coller dans le fichier dernière version et curieusement, la formule ne s'est pas préservée lorsque j'ajoutais de nouveaux enregistrements via le formulaire ou encore de la feuille

Cette manipulation a toujours bien fonctionné auparavant et la seule différence qu'il y avait aujourd'hui est que je l'ai effectué à partir d'une version 2003 de excel. C'est peut-être ce qui a cafouillé ? En tous cas j'ai l'impression...

L'autre aspect qui est curieux est que la Date1 et Date2 via le formulaire ne s''enregistrait pas correctement et pourtant le code est rigoureusement correct mais excel ne l'interprète pas correctement lors de l'enregistrement sur la feuille

Exemple 05-nov-16 va devenir sur la feuille 16-nov-05 donc 16 novembre 2005

Je ne comprends vraiment pas ce qui a pu se passer hormis que j'ai opéré la manip avec Excel 2003

Pour ce qui est de la date de saisie du formulaire, j'ai essayé le même fichier que je t'ai envoyé ici sur mon Excel 2013 français et tout fonctionne à merveille (hors le fait que la formule écart ne s'est pas préservée mais je l'ai remise sur ma version 2013 et tout est ok)

Il n'y avait rien à faire aujourd'hui sur la version 2007 pour que la formule se répète et pourtant se devrait être le cas...

Bref, ce n'était pas une très bonne journée

On a quand même saisi plus de 200 enregistrements qui sont réels et je vais essayé de refaire une manipulation demain via un ordi doté de 2007

Voilà

Merci

Si je comprends bien c'est du copier-coller...

Dans la mesure où tu as un tableau, pour que les fonctionnalités de Tableau jouent, il faut que tu opères sur 2007 ou ultérieur.

Là le champ calculé étend automatiquement la formule, mais évidemment il ne la rétablit pas là où elle manque... Dans ces conditions, le seul correctif efficacement est clic droit dans la colonne > sélectionner > choisir colonne de données, elle se sélectionne sauf l'en-tête > effacer et retaper la formule dans la première ligne, elle sera instantanément rétablie dans la colonne.

Cela suppose que toutes les lignes sont bien dans le Tableau, car si collées sous 2003, elles ne le seront pas, et il faut d'abord étendre le tableau...

Je suppose tout de même que les dates ne se sont pas modifiées par collage !

Et cette inversion jour/année (celle-là c'est la première fois que je la vois ! en FR FR, c'est à l'inversion jour /mois qu'il faut veiller)

me paraît curieuse, surtout ne se produisant qu'occasionnellement (et non pas dans tous les cas où cette inversion serait possible).

Il faudrait voir précisément avec quel format de saisie de date on obtient cette inversion, et comparer aux formats figurant dans les paramètres régionaux de Windows.

On convertit systématiquement, ce qui en principe oblige VBA à se référer aux paramètres régionaux...

Je suis très intéressé à élucider ce problème (les problèmes de dates, c'est récurrent), et j'avais trouvé intéressant que ta saisie avec mois littéral était de fait propre à éviter l'inversion mois/jour...

Ça ira mieux demain !

Bonne soirée (moi j'avance vers le matin !)

Bonjour,

curieusement aussi certains enregistrements sont disparus de la base bien qu'on soit certain de les avoir saisis

C'est pourquoi j'aimerais avoir au bas du formulaire à gauche un lblNbEnr qui afficherait le nb d'enregistrements dans la base

Je l'ai réalisé en ajoutant la commande qui suit dans l'initialisation puisque j'ai déjà un champ qui valide cette info sur une feuille

lblNbEnr.Caption = Sheets("Grand Livre").Range("G12").Value

J'imagine qu'il y a moyen d'aller chercher cette info autrement que par un champ existant mais en opérant la formule

=NBVAL(Acomptes!A2:Acomptes!A65536)

Autre chose qui serait utile est qu'après l'ajout d'un enregistrement et le ré-affichage en ordre alpha , nous tombions sur l'enregistrement qui vient d'être inscrit dans la base car nous sommes souvent dérangés et il est utile de connaître le dernier inscrit pour mieux continuer

Je fais des recherches aujourd'hui pour voir ce qui a causé tous mes problèmes d'hier mais je soupçonne le fait que j'ai utilisé excel 2003 pour faire le copier-coller

Merci

Rechercher des sujets similaires à "userform probleme validation saisie ordre alpha"