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

IHM Discussion :

réflexion sur fonctionnement de mes formulaires [AC-2016]


Sujet :

IHM

  1. #1
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut réflexion sur fonctionnement de mes formulaires
    Bonjour,

    J’ai finalisé la majeure partie de mon outil mais avec la mise en place des tests, les premiers défauts apparaissent ☹.

    J’ai un formulaire qui est construit sur une table et sert à la création et au suivi d’une demande.

    Dans le cas d’une création, le formulaire est ouvert en mode Dataentry au moment de la sauvegarde l’enregistrement est créé.

    Dans le cas du suivi, le formulaire est ouvert en mode AllowAddition. On a donc accès aux données et l’on peut saisir les avancées de la demande au fur et à mesure.
    Le souci est que étant en direct sur la table, les champs peuvent par erreur être modifiés (pas sécure).
    J’ai mis en place un blocage des champs à l’ouverture du formulaire dès l’instant ou ils ne sont pas vide mais si il y vraiment nécessité de procéder à une correction j’ai aussi créé un bouton de déverrouillage libérant ainsi certains champs mais l’opération n’est quand même pas sûr.

    Je suis en réflexion sur une V2 et me pose la question sur la création de table temporaire pour remédier à ces soucis d’intégrité des données.
    Mais ma base est scindée en Frontale et Dorsale ce qui fait que la table temporaire serait sur la dorsale.

    Ce qui me fait poser quelques questions est-ce possible de mettre en place des tables temporaires en mode Multi-utilisateurs ?

    Ou

    Dois-je plutôt créer dans mes formulaires des champs indépendants et garder les valeurs en mémoire jusqu’à l’action « validation » qui ajouterait les données dans la table concernée ?

    Dans ce cas de figure étant encore « novice » comment puis-je procéder ?

    Je vous remercie et vous souhaite une bonne journée.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    J’ai mis en place un blocage des champs à l’ouverture du formulaire dès l’instant ou ils ne sont pas vide mais si il y vraiment nécessité de procéder à une correction j’ai aussi créé un bouton de déverrouillage libérant ainsi certains champs mais l’opération n’est quand même pas sûr.
    Même si tu utilises une table ou tableau ou un recordset déconnecté, comment distingueras-tu un modification volontaire d'une modification involontaire ?

    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
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour marot_r,

    j'avoue que pour le moment je n'ai pas la réponse.

    à date j'en suis à bloquer tous les champs déjà complétés car je ne peut pas tracer un historique multiple

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    à date j'en suis à bloquer tous les champs déjà complétés car je ne peut pas tracer un historique multiple
    OK donc tu ne saurais pas si il s'agit d'erreurs ou pas mais tu souhaites savoir quelles modifications ont été faites, c'est cela ?

    Si oui, quel est le mécanisme que tu utilises actuellement pour ton historique ?

    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.

  5. #5
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    OK donc tu ne saurais pas si il s'agit d'erreurs ou pas mais tu souhaites savoir quelles modifications ont été faites, c'est cela ?
    Dans le cas présent oui et ci-dessous le code que j'utilise pour historiser l'intervenant sur l'action au moment de l'enregistrement.
    Ce n'est surement pas parfait mais j'apprends toujours



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Private Sub but_enregistrer_Fdemande_de_carte_Click() ' Action sur le bouton d enregistrement de la demande
     
        If MsgBox("Confirmez vous votre saisie ?", vbYesNo, "Confirmatrion") = vbYes Then
            If Me.txt_nom_effectif & "" = "" Then  'controle que le champs est vide et que le fiche n'est pas vierge
            MsgBox "fiche vierge ou sans nom", , "ATTENTION"
            Exit Sub
            End If
     
                If MsgBox("avez-vous créé le Folder ?", vbYesNo, "Confirmatrion") = vbNo Then ' message pour création du forlder réseau
                Exit Sub
     
                MsgBox "Vous venez de confirmer votre saisie"
     
                End If
     
            'actions d'historisations sur condition pour chacune des dates saisies
            'date saisie
            If Me.txt_date_saisie_demande <> "" _
                And Me.txt_matricule_user_saisie_demande & "" = "" Then  'controle que le champs est vide
                    Me.txt_matricule_user_saisie_demande = LoginConnexion
            End If
            'date envoi
            If Me.txt_date_envoi_doc_client <> "" _
                And Me.txt_matricule_user_envoi_doc_client & "" = "" Then 'controle que le champs est vide
                    Me.txt_matricule_user_envoi_doc_client = LoginConnexion
                    Me.lst_statut_demande = 1
            End If
            'date BDDF
             If Me.txt_date_envoi_BDDF <> "" _
            And Me.txt_matricule_user_envoi_BDDF & "" = "" Then 'controle que le champs est vide
                    Me.txt_matricule_user_envoi_BDDF = LoginConnexion
                    Me.lst_statut_demande = 2
            End If
            'date reception
            If Me.txt_date_carte_recue <> "" _
                And Me.txt_matricule_user_carte_recue & "" = "" Then 'controle que le champs est vide
                    Me.txt_matricule_user_carte_recue = LoginConnexion
                    Me.lst_statut_demande = 3
            End If
            'date remise
            If Me.txt_date_carte_remise <> "" _
                And Me.txt_matricule_user_carte_remise & "" = "" Then 'controle que le champs est vide
                    Me.txt_matricule_user_carte_remise = LoginConnexion
                    Me.lst_statut_demande = 4
            End If
            'date NDF
            'If Me.txt_date_envoi_NDF <> "" _
             '   And Me.txt_matricule_user_envoi_NDF & "" = "" Then 'controle que le champs est vide
              '      Me.txt_matricule_user_envoi_NDF = LoginConnexion
                    'Me.lst_statut_demande = Null    'pas de statut
            'End If
            'date mail
            If Me.txt_date_saisie_mail_sogecarte <> "" _
                And Me.txt_matricule_user_saisie_mail_sogecarte & "" = "" Then 'controle que le champs est vide
                    Me.txt_matricule_user_saisie_mail_sogecarte = LoginConnexion
                    'Me.lst_statut_demande = Null    'pas de statut
            End If
            'date annulation
            If Me.txt_date_annulation_demande <> "" _
                And Me.txt_matricule_user_annulation_demande & "" = "" Then 'controle que le champs est vide
                    Me.txt_matricule_user_annulation_demande = LoginConnexion
                    Me.lst_statut_demande = 5
            End If
        Else
            MsgBox "Vous venez d'annuler votre saisie"
            'DoCmd.Close
            Exit Sub                            '=== EXIT SUB ===
        End If
        'DoCmd.Close
     
    End Sub
    Et je récupère l'identifiant de connexion avec le code ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Load()
    '  Au chargement du formulaire, mémorise le login de connexion pour l historisation des opérations
        LoginConnexion = Application.CurrentUser
        txtLogin = LoginConnexion
        Call StockageDansTempConnexion
     
    End Sub

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    En effet cette structure simple n'est pas adaptée si tu as plusieurs modifications de suite sur le même champ.

    La méthode lourde, est d'avoir une table de suivi de modification.
    Chaque fois qu'un champ est modifié tu enregistres dans cette table la date, la valeur avant et la valeur après avec la date et l'auteur.
    Ça donne un truc du genre :

    • ChampX, 2020-01-01, 2020-12-31, UserCodeXYZ, 2020-02-15
    • ChampX, 2020-12-31, 2021-01-15, UserCodeABC, 2020-06-25
    • ChampY, 2020-06-30, 2021-07-15, UserCodeABC, 2020-06-25


    Je l'ai fait une fois et je pense que je l'avais mis sur l'événement après MAJ de l'enregistrement et j'avais utilisé la propriété OldValue avec du code qui ressemblait à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    dim f as dao.fields
    dim db as dao.database: set db=currentdb
    dim rHisto as dao.recordset: set rHisto = db.openrecordset("tblHisto", dbOpenDynaset)
     
    for each f in me.recordset
     
       if f.value <> f.oldvalue then
            rHisto.AddNew
            rHisto![NomForm]=me.Name
            rHisto![NomChamp]=f.name 'Champs dans la BD histo de type Texte 255 caractères ou voir même Texte long (ou Mémo). Ça permet d'y stocker n'importe quelle valeur.
            rHisto![OldValue]=f.OldValue 'Champs dans la BD histo de type Texte 255 caractères ou voir même Texte long (ou Mémo).
            rHisto![Value]=f.Value
            rHisto![CodeUsager]=Environ$("USERNAME")
            rHisto![DateHeure]=Now()
            rHisto.update
            'Note qu'on peut mettre plus de champs comme le nom de la table et éventuellement le nom du formulaire principal, la clef des données concernées ....
       end if
     
    next f
     
    rHisto.Close: set rHisto=nothing
    db.close: set db=nothing
    Ça marche mais c'est assez pénible à exploiter pour retrouver de l'info et en plus il faut surveiller que l'historique ne sature pas la BD (je recommande fortement de mettre la table histo dans une base à elle.)

    Donc je te conseille d'évaluer à quel point tu as besoin de ce mécanisme. Si les modifications à postériori sont rares, peut-être juste noter le code de l'utilisateur qui fait la modif suffit sur ton champs.

    Dans ton code actuel il suffirait, selon moi, d'enlever la série de condition : And Me.txt_matricule_user_... & "" = "" et cela marcherai direct.

    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.

  7. #7
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour à tous,

    merci marot_r pour toutes ces précisions, je vais voir avec les commanditaires pour voir si le besoin de suivit est si primordial que cela.

    Je suis en réflexion sur une V2 et me pose la question sur la création de table temporaire pour remédier à ces soucis d’intégrité des données.
    Mais ma base est scindée en Frontale et Dorsale ce qui fait que la table temporaire serait sur la dorsale.

    Ce qui me fait poser quelques questions est-ce possible de mettre en place des tables temporaires en mode Multi-utilisateurs ?

    Ou

    Dois-je plutôt créer dans mes formulaires des champs indépendants et garder les valeurs en mémoire jusqu’à l’action « validation » qui ajouterait les données dans la table concernée ?

    Dans ce cas de figure étant encore « novice » comment puis-je procéder ?
    Concernant cette question mise à part l'historisation et pour des questions de sécurisation comment puis-je procéder pour faire en sorte que mon formulaire ne soit pas en direct sur la table.
    Je me dis que faire des champs indépendants serait la meilleure solution.
    Peut on inscrire les données dans les champs de la table par VBA sans passer par une requete ajout et donc table temporaire.

    Très bonne journée à tous

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Concernant cette question mise à part l'historisation et pour des questions de sécurisation comment puis-je procéder pour faire en sorte que mon formulaire ne soit pas en direct sur la table.
    Je me dis que faire des champs indépendants serait la meilleure solution.
    Peut on inscrire les données dans les champs de la table par VBA sans passer par une requete ajout et donc table temporaire.
    Si tu travailles un enregistrement à la fois oui tu peux ajouter les données saisie dans les champs à une table, soit avec du VBA soit avec du SQL sans passer par une table temporaire.
    Tu peux aussi utiliser ce qu'on appelle un recordset déconnecté, une sorte de table temporaire dans le formulaire. Tu lis tes données dans le recordset déconnecté (disconnect recordset), tu les modifies là, c'est un poil pénible, et tu les réécris en gérant toi-même les problèmes de conflits si 2 personnes ont modifié les mêmes données.

    Mais la question est pourquoi veux-tu t'embêter à reprogrammer ce que Access fait déjà très bien pour toi ?
    Si c'est l'enregistrement automatique des modifs qui t'ennuie tu peux simplement ajouter un code de confirmation pour avoir un message du genre "Vous êtes sûr de vos modif ?".

    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.

  9. #9
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    bonjour à tous,

    merci marot_r

    Mais la question est pourquoi veux-tu t'embêter à reprogrammer ce que Access fait déjà très bien pour toi ?
    Si c'est l'enregistrement automatique des modifs qui t'ennuie tu peux simplement ajouter un code de confirmation pour avoir un message du genre "Vous êtes sûr de vos modif ?".
    Dans mes tests, je me suis aperçu que en mode suivi d'une fiche (formulaire en AllowAddition) si je saisi une valeur mais que je quitte le formulaire sans enregistrer et bien cette valeur est belle et bien enregistrée dans ma table.

    Dans mon code je mets "Vous venez d'annuler votre saisie" alors que ce n'est pas le cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub but_sortie_Click()
            MsgBox "Vous venez d'annuler votre saisie"
            DoCmd.Close
            Exit Sub                            '=== EXIT SUB ===
        DoCmd.Close
    End Sub

    C'est cela qui m'ennuie car même si la base en elle même répond bien aux attentes de mes commanditaires, elle n'est point fiable.
    Et quand elle va passer en prod c'est 2 ou 4 personnes qui vont travailler dessus avec les risques sur l'intégrité des données.

    C'est pour cela que j'aurai souhaité faire une V2 de cette base en n'essayant pas de tout casser mais de revoir la façon d'intégrer les éléments de saisie sur une action d'enregistrement plutôt que de l'écrire en direct dans la table.

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjoour.

    Dans mes tests, je me suis aperçu que en mode suivi d'une fiche (formulaire en AllowAddition) si je saisi une valeur mais que je quitte le formulaire sans enregistrer et bien cette valeur est belle et bien enregistrée dans ma table.
    Oui en effet ton code ne gère pas l'annulation de la saisie en cours.

    La méthode consisterai à demander une confirmation de la modif dans l'événement Avant MAJ.
    Il y a plein d'exemple de ce type de code dans le forum.

    Sinon en effet tu es pris à enregistrer toi-même les valeurs saisies.

    Un autre idée jamais explorée, utiliser une transaction mais je ne sais pas si c'est possible avec un formulaire.
    L'idée est que Access garde l'état de la base avant puis ne fait les modifs que quand elles sont confirmées.
    Attention ça peut être gourmand en espace fichier et saturer ta base.

    Enfin à voir il y a peut-être la possibilité d'offrir une option "Sortie sans sauvegarder" en restaurant les valeurs d'origine avec la propriété OldValue des contrôles. Là encore jamais essayé cela.

    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.

  11. #11
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    merci encore pour votre aide,

    Je vais explorer tout cela et voir ce qui est dans mes possibilités
    Ce Forum est une aide précieuse et je vous en remercie sincèrement.

    Passez de bonnes fêtes de fin d'année

  12. #12
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mgascult Voir le message
    bonjour à tous,

    merci marot_r



    Dans mes tests, je me suis aperçu que en mode suivi d'une fiche (formulaire en AllowAddition) si je saisi une valeur mais que je quitte le formulaire sans enregistrer et bien cette valeur est belle et bien enregistrée dans ma table.

    Dans mon code je mets "Vous venez d'annuler votre saisie" alors que ce n'est pas le cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub but_sortie_Click()
            MsgBox "Vous venez d'annuler votre saisie"
            DoCmd.Close
            Exit Sub                            '=== EXIT SUB ===
        DoCmd.Close
    End Sub

    C'est cela qui m'ennuie car même si la base en elle même répond bien aux attentes de mes commanditaires, elle n'est point fiable.
    Et quand elle va passer en prod c'est 2 ou 4 personnes qui vont travailler dessus avec les risques sur l'intégrité des données.

    C'est pour cela que j'aurai souhaité faire une V2 de cette base en n'essayant pas de tout casser mais de revoir la façon d'intégrer les éléments de saisie sur une action d'enregistrement plutôt que de l'écrire en direct dans la table.
    En réalité le contrôle de fait ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub but_sortie_Click()
            If MsgBox("Voulez-vous annuler votre saisie", vbYesNo) = vbNo then
            Exit sub                  '=== EXIT SUB ===
            DoCmd.Close
    End Sub
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  13. #13
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour,

    merci Bertiny.

    Malgré la rectification de ce code, mon souci reste entier.
    Je dois étudier les différentes possibilités accessible à mon niveau pour renforcer l'intégrité des données.
    Paris ne c'est pas fait en un jour et c'est en tombant que l'on apprend à marcher.

    Apprendre et mettre en pratique sont mes maîtres mots pour l'année à venir

    Bonnes fêtes à tous

  14. #14
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    je ferme le post et en ouvrirai un autre quand se sera le moment.

    bonnes fêtes à tous.

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

Discussions similaires

  1. Permettre le fonctionnement d'un formulaire sur Mac (UserForm)
    Par anasecu dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/03/2019, 12h09
  2. Réponses: 1
    Dernier message: 03/01/2017, 14h28
  3. Réponses: 1
    Dernier message: 22/06/2009, 09h16
  4. Réponses: 4
    Dernier message: 10/07/2005, 20h53
  5. [Java 5] Réflexion sur les énumérations type-safe
    Par rozwel dans le forum Langage
    Réponses: 5
    Dernier message: 04/12/2004, 20h34

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