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

Macros et VBA Excel Discussion :

Quelle est la technique pour stocker les données d'un employé ? [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut Quelle est la technique pour stocker les données d'un employé ?
    Bonjour à tous et à toutes,


    Je suis en train de créer un outil Excel permettant de construire une base de donnée des employés. Typiquement, c'est un UserForm permettant d'ajouter un employé à une base existante et de pouvoir éditer, manuellement, différentes caractéristique, informations, etc lui étant relatives... Le classique de chez classique de chez classique.


    Maintenant vient la question à mille points... En pratique, où (comment) stocker les données entrées ? Dans des variables ? Dans des cases de cellules de feuilles (éventuellement cachées) ?


    C'est vraiment du très basique et classique mais la question me ronge et me tue ...


    Merci d'avance de votre aide !

  2. #2
    Membre averti Avatar de LawNasK
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 144
    Points : 391
    Points
    391
    Par défaut
    Bonjour,

    Les RH de mon entreprise utilisent une feuille Excel dédié à ça. Caché ou non, tout dépend de qui doit avoir les informations et qui a les droits d'accès au fichier en question.

    Dans des variables, clairement pas non.
    Tu peux utiliser une base de donnée (voir Access) sinon, mais ça demande de savoir faire du SQL, et ça n'en vaut pas forcément la peine si l'objectif est juste de stocker, de faire des recherches ou éventuellement des opérations simples.

    Tu pourrais aussi mettre ça dans un fichier XML mais je n'en voit pas du tout l'intérêt.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par c.piette Voir le message
    un UserForm permettant d'ajouter un employé à une base existante et de pouvoir éditer, manuellement, différentes caractéristique, informations, etc lui étant relatives.

    En pratique, où (comment) stocker les données entrées ? Dans des variables ? Dans des cases de cellules de feuilles (éventuellement cachées) ?
    Bonjour,
    si tu décides de mettre tes données dans une feuille excel

    si tu as des textbox dans ton userform alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Nom de ta feuille").Range("A1").Value = textbox1.text
    renvoie la valeur du textbox1 dans la cellule A1


    si vous avez une variable alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Nom de ta feuille").Range("A1").Value = Nom_de_ta_variable
    renvoie la valeur de ta variable Nom_de_ta_variable dans la cellule A1

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Bonjour,

    comme déjà répondu sur un autre forum Excel étant une passoire côté sécurité, utiliser Access …



    __________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut Comment stocker intelligemment des données
    Re,


    En fait si je souhaite "cacher" les feuilles Excel, c'est plutôt par soucis d’esthétique. Il y a beaucoup trop de données dans chaque fiche que pour laisser l'utilisateur consulter lui même les feuilles Excel contenant les données.


    En fait mon problème est légèrement plus complexe, je m'explique:


    Chacune de ces fameuses fiches d'agent est composé de:

    D'une feuille, composée de 10 onglets (sous-feuille), chacune composée de 2 onglets (sous-sous feuilles) et chacune de ces sous-sous-feuilles est composé de 6 ListView.

    Donc 120 ListView par fiche d'agent.


    Alors, pour vous rassurer quelque peu, ces ListView sont déjà remplis; le "modèle" est défini ailleurs dans le même outil par l'utilisateur. Chaque ligne est précédé d'une CheckBox et c'est typiquement l'information "Coché" ou "Non coché" qui doit être retenu entre deux utilisations...

    L'élément complexifiant arrive maintenant je dirais:

    Le contenu de ces ListBox doit pouvoir être éditable par l'utilisateur... Par exemple, dans un domaine d'expertise, les formations/stages/séminaires relatifs à ce domaine, changent de temps en temps. Donc, un stage/formation qui n'existe plus, doit pouvoir être supprimé et si un nouveau stage vient à être créé, il doit pouvoir être proposé dans chaque fiche d'agent, y compris les fiches remplies avant la création de la formation/stage.

    Donc ma question... Comment stocker intelligemment des données ? Comment faire pour qu'une donnée soit stockée dans une certaine cellule, pas parce que c'est la cellule "A1" mais parce que c'est la cellule située à coté de la case contenant un certain texte "Nom", "Prénom" par exemple etc ...

    Je pensais typiquement à des tableaux vu que si un ListView contient 5 lignes et que la ligne 3 doit être supprimée, il faudrait que les données se remettent en forme toutes seules ...

    Une idée quelqu'un ?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par c.piette Voir le message
    Donc ma question... Comment stocker intelligemment des données ? Comment faire pour qu'une donnée soit stockée dans une certaine cellule, pas parce que c'est la cellule "A1" mais parce que c'est la cellule située à coté de la case contenant un certain texte "Nom", "Prénom" par exemple etc ...
    si tes Nom sont dans la colonne A et Prénom dans la colonne B
    et que tu veux mettre une donnée selon le nom et prénom dans la colonne C alors

    textbox2 contient le Nom et textbox3 contient le Prénom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For i = 1 To Sheets("Nom de ta feuille").Range("A" & Rows.Count).End(xlUp).Row
     
        If Cells(i, 1) = TextBox1.Text And Cells(i, 2) = textbox2.Text Then
            'on ajoute
            Cells(i, 3) = textbox3.Text
            Exit For
        End If
     
    Next
    cette exemple est avec des textbox mais il peut fonctionner aussi bien avec des listbox

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    Re,


    Oui voilà c'est beaucoup plus cela que je cherche !

    Entre temps j'ai également eu une idée : pour s'affranchir de la contrainte de référence à une cellule, pour chacun des ListView (les 120), est-ce qu'il ne serait pas intéressant de créer 120 tableaux ? La format et le "mode de fonctionnement" des ListView est immuable, mais le contenu peut potentiellement changer...

    Est-ce que cela semble réalisable ? Niveau temps, ce n'est pas un problème, je suis 45h semaines sur le projet. Mais est-ce faisable ?


    Comment rechercher la référence d'une cellule, contenant le même texte qu'une autre cellule, toutes deux contenues dans des tableaux ? A nouveau, les en-tête des tableaux ne changeront pas, seul le contenu des lignes peut.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par c.piette Voir le message
    Entre temps j'ai également eu une idée : pour s'affranchir de la contrainte de référence à une cellule, pour chacun des ListView (les 120), est-ce qu'il ne serait pas intéressant de créer 120 tableaux ? La format et le "mode de fonctionnement" des ListView est immuable, mais le contenu peut potentiellement changer...
    J'ai de la difficulté à comprendre,
    Je pensais que tu chargeais tes listview selon les données d'Excel à l'ouverture de ton userform.
    si c'est le cas, même si les donnée d'Excel change, les listview changeront à l'ouverture du userform.

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

Discussions similaires

  1. Quelle solution pour gérer les données techniques par affaire?
    Par NoemieR dans le forum Autres Solutions d'entreprise
    Réponses: 0
    Dernier message: 16/11/2012, 16h40
  2. Quelle technique pour récupérer mes données
    Par Metalyn dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/08/2012, 19h54
  3. [Jena] Une base de données pour stocker les triplets RDF ?
    Par sarahm dans le forum Frameworks
    Réponses: 6
    Dernier message: 27/04/2012, 15h10
  4. Quelle implementation pour stocker des données
    Par jfouche dans le forum C++
    Réponses: 2
    Dernier message: 11/08/2010, 21h07
  5. Quelle est la technique utilisée pour la création d'inventaire ?
    Par Edarian dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 10/03/2007, 10h49

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