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 :

Créer bouton pour transfert d'une ligne selon texte


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Assistante Administrative
    Inscrit en
    Août 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Assistante Administrative
    Secteur : Santé

    Informations forums :
    Inscription : Août 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Créer bouton pour transfert d'une ligne selon texte
    Bonjour,

    Je suis nouvelle sur ce site, et j'aurai besoin d'aide. Mon excel n'a pas de version de noté, nous utilisons le pack Microsoft office 365, si ça peut aider.
    Alors voila :
    J'ai un tableau avec un suivi patient (avec des données personnels, je ne donc peux pas communiquer ce tableau).
    Ce tableau a une colonne sur le statut du dossier du patient (s'il est actif, inactif, hospi, interrompu, en attente). Pour nous, tout est considéré actif (hospi-interrompu-en attente-actif) tant qu'il n'est pas mis en inactif (dossier clos, donc on ne l'ouvrira plus).
    J'ai créer 2 nouveaux tableaux (2 fichiers différents). 1 pour les actifs, l'autre pour les inactifs.
    Chaque lignes = un patient avec ses données.
    Le statut du dossier du patient se trouve en colonne C et cette même colonne a une liste déroulante avec les termes cité plus tôt.
    J'aimerai créer un bouton qui dès lors que l'on appuie dessus, cela transfère le/les patient(s) qui sont en statut inactif dans le second tableau.
    Nous pourrions simplement faire un couper-coller, mais cela enlèverai toujours nos formules et ainsi que les bordures etc et tout le monde ne comprend pas tout cela d'excel, c'est pourquoi j'aimerai simplifier cela par la création d'un bouton.
    Je voulais savoir si cela pourrait m'être accessible de faire cela ? Et le temps nécessaire ? Ou si quelqu'un pouvait me proposer une solution ?

    Je ne sais pas si c'est très clair, je n'ai AUCUN termes de VBA/Macro dans mon vocabulaire Si vous avez besoin de plus d'informations, n'hésitez pas !
    Dans l'attente de vous lire !

    Merci d'avoir pris le temps de me lire

  2. #2
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Bonjour,

    Récupérer les données et les formules d'un classeur à un autre est tout à fait faisable. Cependant tu ne donnes pas assez d'éléments.
    Ce serait beaucoup plus simple si tu mettais un fichier anonymisé.

    Je te joins quand même une démo de ta demande.

    A savoir que je ne me suis pas intéressé volontairement au quadrillage du tableau de sortie.

    Tu as 2 fichiers. Le premier est une liste de patients fictifs ("liste patients") et le second est le fichier qui récupère les inactifs ("recup inactifs").
    Il te suffit de récupérer les 2 fichiers et de cliquer sur le bouton "Go" du fichier "recup inactifs" puis aller sélectionner le fichier à traiter (ici "liste patients"). Attention; le fichier "liste patients" ne doit pas être ouvert quand tu cliques sur le bouton).

    "Jouer" avec les données de 2 fichiers Excel n'est pas du code de "débutant" (je ne veux pas te dénigrer). A ce que je crois comprendre dans ton post tu n'as pas beaucoup d'expérience dans ce domaine.

    Tu vas avoir du mal à adapter mon code à tes fichiers réels.
    Fichiers attachés Fichiers attachés
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par RawnTrunks Voir le message
    J'ai créer 2 nouveaux tableaux (2 fichiers différents). 1 pour les actifs, l'autre pour les inactifs.
    Chaque lignes = un patient avec ses données.
    Le statut du dossier du patient se trouve en colonne C et cette même colonne a une liste déroulante avec les termes cité plus tôt.
    J'aimerai créer un bouton qui dès lors que l'on appuie dessus, cela transfère le/les patient(s) qui sont en statut inactif dans le second tableau.
    Nous pourrions simplement faire un couper-coller
    Cette méthode de travail est fortement déconseillée : séparer des données semblables en plusieurs tableaux (ou, pire, plusieurs fichiers) uniquement parce qu'un critère change, c'est multiplier le travail à réaliser et les risques d'erreur.
    Il est toujours préférable de laisser les données groupées. Excel dispose de nombreux outils permettant des traitements qui favorisent cette façon de travailler.

    Pour ton cas, il y a une solution BEAUCOUP plus simple : tu fais UN SEUL tableau et tu y places un filtre.

    Une fois que tu as mis toutes tes données dans le même tableau (peu importe l'ordre pour l'instant),
    Tu sélectionnes toutes tes colonnes de données > Ruban Données > Icone Filtrer.

    Des boutons apparaissent dans tes entêtes.
    Tu cliques sur celui le ta colonne Status et tu décoches "actif" ou "inactif" suivant ce que tu veux garder affiché.
    Les autres lignes seront masquées. J'ai bien dit MASQUEES et non supprimées.
    Pour faire afficher l'ensemble de tes données, il suffira de faire pareil en cochant "Sélectionner tout".

    Un filtre pourra te rendre beaucoup d'autres services comme faire un tri par date ou par nom de patient ou par n° de dossier, en 2 clics.

    Perso, je ne fais quasiment jamais une liste sans mettre un filtre dessus.
    Etant donné que ça se met en place en deux secondes et que ça peut rendre d'immenses services, il n'y a pas de raison de s'en priver.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Candidat au Club
    Femme Profil pro
    Assistante Administrative
    Inscrit en
    Août 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Assistante Administrative
    Secteur : Santé

    Informations forums :
    Inscription : Août 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Alex020181 Voir le message
    Hello ! Merci à toi pour cet exemple, c'est ce qu'il me faudrait oui ! Je peux te transmettre mes 2 tableaux (totalement les mêmes) avec les formules et mises en formes déjà mise dessus. Je les ai vidés de toutes informations confidentielles ! Je les joints à ce message.
    Est-ce qu'il serait possible que ce ne soit pas un copier-coller mais un couper-coller ? Oui mon niveau est bas, j'aimerai vraiment comprendre le codage, j'essaie de m'instruire sur le net comme je le peu

    Bonne journée à toi !
    Et merci encore !!!


    Suivi patient actifs.xlsm Suivi patient inactifs.xlsm

    Citation Envoyé par Menhir Voir le message

    Hello !
    Oui je sais que les tris et filtres existent. Mais nous fonctionnons comme ceci est parfois les données se mélanges. Nous souhaitons les séparés car les inactifs ne serait qu'archives et non plus des dossiers vraiment important. Le seul point important pourrait être les informations que nous notons sur le patient si il revient à avoir besoin de notre matériel. Et encore, il est rare que nous le consultions déjà à l'heure actuelle

    Grouper les données ne nous sert à rien a part avoir un fichier lourd et rempli avec des risques d'écrire des informations dans la mauvaise ligne (car parfois nous avons plusieurs dossiers pour 1 personnes, il peut y en avoir 5 dont 1 seul d'actif et parfois des personnes se nomment pareil et seul la pharmacie diffère etc etc..). Je ne suis pas la seule à bosser sur ce fichier, et malgré mes petits skills sur excel, je suis la plus expérimentée de ceux qui utilisent ce tableau..
    Si tu es tout de même curieux.se, j'ai joint mes fichiers sans informations dans la réponse d'Alex020181 !

    Merci de ta réponse !! Bonne journée à toi !

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je vais un peu insister lourdement avec ma solution à base de filtre mais elle me semble vraiment adaptée à ton problème.
    D'autant plus si on tient compte du fait que tu ne connais pas du tout le VBA et donc que tu ne seras pas en mesure de contrôler une telle solution même si elle t'était livrée clé en main.

    Le filtre est une solution qui, je pense, répond à ton problème mais aurait l'immense avantage de pouvoir se mettre en place en moins d'une minute et pourrait rester totalement maitrisable par une personne n'ayant pas des connaissances très poussées en Excel.

    Citation Envoyé par RawnTrunks Voir le message
    Oui je sais que les tris et filtres existent.
    Attention, je parle de filtre et non de tri.
    L'avantage d'un filtre, c'est qu'une fois bien placé sur les données, on est sûr que les actions vont s'appliquer à toutes les colonnes, ce qui évite les risques.
    De plus, une fois le filtre mis en place, à peu près n'importe qui peut apprendre à se servir des ses notions de base en quelques secondes (j'ai fait l'expérience autour de moi avec des personnes qui n'étaient vraiment pas portée sur l'informatique).

    Grouper les données ne nous sert à rien a part avoir un fichier lourd et rempli avec des risques d'écrire des informations dans la mauvaise ligne (car parfois nous avons plusieurs dossiers pour 1 personnes, il peut y en avoir 5 dont 1 seul d'actif
    Justement, un filtre te permettra de n'afficher les données que d'un seul patient, par exemple, ce qui te permettra de connaitre ses antécédents.

    Mais, comme je le disais dans ma première réponse, tu peux demander au filtre de n'afficher que les patients actifs.
    Dans ce cas, ta liste aura exactement l'aspect que tu souhaites obtenir avec ta séparation de fichier (sauf que les autres données seront accessibles si tu le souhaites).

    Tu pourrais même ajouter une petite mise en forme conditionnelle très simple qui affiche les actifs et les inactifs avec des couleurs différentes : verts pour les actifs et rouge pour les inactifs.
    Ils serait alors possible de les distinguer par une information visuelle forte diminuant grandement les risques de confusion.

    et parfois des personnes se nomment pareil et seul la pharmacie diffère etc etc..).
    Cette remarque est un peu inquiétante. Faire confiance au nom de la pharmacie pour distinguer deux personnes me semble risqué.
    Vous n'utilisez pas un code unique (le n° de sécurité sociale ou de carte d'identité) pour être sûr de distinguer deux patients homonymes ?

    A ta place, je rajouterais au moins un code interne unique pour désigner les patients et une petite mise en forme conditionnelle pour contrôler la présence de doublons.

    Si tu es tout de même curieux.se, j'ai joint mes fichiers sans informations dans la réponse d'Alex020181 !
    Comme beaucoup de participants à ce forum, je n'ouvre pas les fichiers joints.
    Lire ça : https://www.developpez.net/forums/d8...s-discussions/
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    OK je regarderai ça demain.

    Une question cependant.

    Tu dis
    J'ai un tableau avec un suivi patient
    puis
    J'ai créer 2 nouveaux tableaux (2 fichiers différents). 1 pour les actifs, l'autre pour les inactifs.
    et enfin
    Est-ce qu'il serait possible que ce ne soit pas un copier-coller mais un couper-coller ?
    .

    Donc tu as un premier fichier de réservoir de patients (disons fichier A) tout status confondus dans lequel on va récupérer les données pour les insérer à la suite des données déjà existantes dans les 2 autres fichiers (les "actifs" (fichier B) et les "inactifs" (fichier C)). Jusque là, je parle uniquement au niveau code je te laisse maitre de la logique, pas de souci.
    Là où je me pose une question c'est que, si j'ai bien compris, tu souhaites supprimer les données de A au fur et à mesure que tu lances la macro (tu demandes un "couper coller").
    Ce qui sous-entend qu'après chaque exécution de la macro ton fichier de réservoir A sera vidé. Es-tu sûr de ça ?
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  7. #7
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Voici le fichier qui déplacent les données des "inactifs" à partir de "liste patients".

    Des remarques cependant;
    - comme demandé les données des "inactifs" sont complètement supprimées de "liste patients" et sont positionnées à la suite des données existantes dans "suivi patients inactifs"
    - ton fichier "liste patients" a une extension xlsm alors qu'il ne contient pas de macros. Ça ne dérange pas le code de transfert de données mais ce n'est pas logique. Son extension devrait être xlsx
    - je t'ai refais certaines formules pour ne pas qu'apparaissent les erreurs #N/A ou les mois à 1 et les années à 1900 si tu ne saisis pas de valeur dans les dates et pour te concaténer les adresses 1, 2 et 3 des pharmacies (l'adresse est maintenant complète). Si ces corrections te conviennent il te suffit de recopier ces formules dans ton vrai fichier de patients. Sinon ce n'est pas grave, la macro de transfert de données fonctionnera quand même

    Enfin je peux te faire la même chose pour les statuts <> "inactifs" mais d'abord il faut que tu répondes à la questions précédemment posée; "Le fait de DÉPLACER les données des inactifs et des autres te donnera un fichier liste patients vierge de données. Est-ce bien ce que tu veux ?"
    Fichiers attachés Fichiers attachés
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  8. #8
    Candidat au Club
    Femme Profil pro
    Assistante Administrative
    Inscrit en
    Août 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Assistante Administrative
    Secteur : Santé

    Informations forums :
    Inscription : Août 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bonjour !!
    Merci beaucoup pour tes réponses et tes corrections !

    Si on part du principe que :
    tableau actuel :fichier A
    nouveau tableau actif : fichier B
    nouveau tableau inactif : fichier C

    J'ai un tableau actuel (fichier A), sur lequel on travail. Je ne pense pas supprimer celui-ci au cas où nous avons un soucis X ou Y avec les 2 nouveaux tableaux (B et C) (qui contiendront les mêmes données mais avec une séparation des actifs fichiers B et inactifs fichier C).
    Le "couper-coller" se fera du tableau actif (fichier B) vers le tableau des inactifs (fichier C) uniquement, le tableau initiale que nous avons (fichier A) ne sera plus de mise dans ce nouveau processus de suivi de patient !

    Citation Envoyé par Alex020181 Voir le message
    Voici le fichier qui déplacent les données des "inactifs" à partir de "liste patients".

    Des remarques cependant;
    - comme demandé les données des "inactifs" sont complètement supprimées de "liste patients" et sont positionnées à la suite des données existantes dans "suivi patients inactifs"
    - ton fichier "liste patients" a une extension xlsm alors qu'il ne contient pas de macros. Ça ne dérange pas le code de transfert de données mais ce n'est pas logique. Son extension devrait être xlsx
    - je t'ai refais certaines formules pour ne pas qu'apparaissent les erreurs #N/A ou les mois à 1 et les années à 1900 si tu ne saisis pas de valeur dans les dates et pour te concaténer les adresses 1, 2 et 3 des pharmacies (l'adresse est maintenant complète). Si ces corrections te conviennent il te suffit de recopier ces formules dans ton vrai fichier de patients. Sinon ce n'est pas grave, la macro de transfert de données fonctionnera quand même

    Enfin je peux te faire la même chose pour les statuts <> "inactifs" mais d'abord il faut que tu répondes à la questions précédemment posée; "Le fait de DÉPLACER les données des inactifs et des autres te donnera un fichier liste patients vierge de données. Est-ce bien ce que tu veux ?"

    Pour tes remarques (je les reprend dans le même ordres) :
    - Oui c'est bien ce que je souhaitais
    - Oui j'ai clairement fait ça par ignorance duquel des fichiers devait contenir une macro. Je pensais qu'étant donné que les 2 étaient en lien sur la macro, je me disais que les deux devaient pouvoir supporter les macros (peut que cela ne fonctionne pas).
    - Les erreurs #N/A ne me dérangeaient pas étant donné que je les vois constamment sur mon tableau actuel. Mais justement une question, en faisant ce transfère de ligne du fichier B vers le C, les cellules contenant des formules sont déplacer aussi ou bien il transfère que la valeur écrite due la cellule ? Car cette formule, j'en aurais besoin par la suite pour le prochain patient que je noterai sur cette même ligne J'ai vu le changement effectué sur les cellules contenant normalement #N/A, peux-tu me l'expliquer cette formule ?

    Et merci pour ta proposition de séparer les autres statuts mais justement j'ai besoin qu'ils soient tous regroupé excepté les inactifs

    Petite question : Puis-je tout simplement copier-coller cette longue macro (que je ne comprend pas dans son entièreté) ? Y a-t-il des éléments que je dois changer ? Je te joins une erreur qui s'est afficher lorsque j'ai essayer les deux tableaux que tu m'a envoyé

    Merci pour ton super travail !!!
    Images attachées Images attachées  

  9. #9
    Candidat au Club
    Femme Profil pro
    Assistante Administrative
    Inscrit en
    Août 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Assistante Administrative
    Secteur : Santé

    Informations forums :
    Inscription : Août 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Je vais un peu insister lourdement avec ma solution à base de filtre mais elle me semble vraiment adaptée à ton problème.
    D'autant plus si on tient compte du fait que tu ne connais pas du tout le VBA et donc que tu ne seras pas en mesure de contrôler une telle solution même si elle t'était livrée clé en main.
    Je souhaiterait vivement être formé sur la VBA pour justement pouvoir tout comprendre. Si jamais vous connaissez des centres de formation ou que vous l'êtes vous-même, je suis preneuse
    Je sais que cela ne me sera pas accessible, mais j'aimerai bien quelque chose d'accessible.

    Citation Envoyé par Menhir Voir le message
    Le filtre est une solution qui, je pense, répond à ton problème mais aurait l'immense avantage de pouvoir se mettre en place en moins d'une minute et pourrait rester totalement maitrisable par une personne n'ayant pas des connaissances très poussées en Excel.

    Attention, je parle de filtre et non de tri.
    L'avantage d'un filtre, c'est qu'une fois bien placé sur les données, on est sûr que les actions vont s'appliquer à toutes les colonnes, ce qui évite les risques.
    De plus, une fois le filtre mis en place, à peu près n'importe qui peut apprendre à se servir des ses notions de base en quelques secondes (j'ai fait l'expérience autour de moi avec des personnes qui n'étaient vraiment pas portée sur l'informatique).

    Justement, un filtre te permettra de n'afficher les données que d'un seul patient, par exemple, ce qui te permettra de connaitre ses antécédents.

    Mais, comme je le disais dans ma première réponse, tu peux demander au filtre de n'afficher que les patients actifs.
    Dans ce cas, ta liste aura exactement l'aspect que tu souhaites obtenir avec ta séparation de fichier (sauf que les autres données seront accessibles si tu le souhaites).

    Tu pourrais même ajouter une petite mise en forme conditionnelle très simple qui affiche les actifs et les inactifs avec des couleurs différentes : verts pour les actifs et rouge pour les inactifs.
    Ils serait alors possible de les distinguer par une information visuelle forte diminuant grandement les risques de confusion.
    Je sais qu'il y a d'autre possibilité, je souhaite tout de même le bouton afin de les séparer.

    Citation Envoyé par Menhir Voir le message
    Cette remarque est un peu inquiétante. Faire confiance au nom de la pharmacie pour distinguer deux personnes me semble risqué.
    Vous n'utilisez pas un code unique (le n° de sécurité sociale ou de carte d'identité) pour être sûr de distinguer deux patients homonymes ?
    Pas d'inquiétude, nous avons beaucoup de manière de les distinguer, je ne me suis juste pas attarder à décrire comment nous le faisons.

    Merci pour ta réponse

  10. #10
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    D'accord. Tu copies tout vers actifs puis tu coupes/colles d'actifs vers inactifs.

    Pourquoi ne pas copier directement de A vers B et C ?

    Nom : schema.png
Affichages : 167
Taille : 12,1 Ko

    Autre question du coup; comment veux-tu gérer les historiques d'import ?

    Je m'explique; tu fais tourner le code la première fois. OK tout roule.
    Mais quand tu referas tourner le code, étant donné que pour le moment les données se mettent à la suite des données existantes dans B et C, tu vas avoir plusieurs lignes identiques et même plusieurs lignes concernant le même patient (avec des données mises à jour).

    2 solutions selon moi;
    - soit à chaque fois on supprime les anciennes données dans B et C (et donc tu auras 2 fichiers "neufs")
    - soit à chaque fois on insère la date et heure d'import dans B et C dans une colonne tout à droite (ainsi tu auras des doublons de lignes mais tu pourras les différencier avec la colonne ajoutée)
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  11. #11
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Je vois que tu souhaites aussi une explication des fonctions dans les formules que j'ai utilisées.
    Pas tout de suite mais je te ferai ça.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  12. #12
    Candidat au Club
    Femme Profil pro
    Assistante Administrative
    Inscrit en
    Août 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Assistante Administrative
    Secteur : Santé

    Informations forums :
    Inscription : Août 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Alex020181 Voir le message
    D'accord. Tu copies tout vers actifs puis tu coupes/colles d'actifs vers inactifs.

    Pourquoi ne pas copier directement de A vers B et C ?

    Pièce jointe 576996

    Autre question du coup; comment veux-tu gérer les historiques d'import ?

    Je m'explique; tu fais tourner le code la première fois. OK tout roule.
    Mais quand tu referas tourner le code, étant donné que pour le moment les données se mettent à la suite des données existantes dans B et C, tu vas avoir plusieurs lignes identiques et même plusieurs lignes concernant le même patient (avec des données mises à jour).

    2 solutions selon moi;
    - soit à chaque fois on supprime les anciennes données dans B et C (et donc tu auras 2 fichiers "neufs")
    - soit à chaque fois on insère la date et heure d'import dans B et C dans une colonne tout à droite (ainsi tu auras des doublons de lignes mais tu pourras les différencier avec la colonne ajoutée)

    Alors tout A sera copier dans B puis je ferai justement le bouton d'import des inactifs (qui iront dans C). Actif contient "hospi" "interrompu" "en attente" "annulé" et "actif".
    Je n'ai pas compris ce que tu m'explique par rapport au données en double. Si elles sont coupées de B pour être collées dans C, quand je ferais importer les patients grâce au bouton, elles ne seront plus présentes dans B donc ne seront pas importées dans C, si ?


    Pour l'explication des fonctions, pas de souci, merci beaucoup déjà, c'est très gentil de ta part pour tout le temps pris pour moi

  13. #13
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Alors tout A sera copier dans B puis je ferai justement le bouton d'import des inactifs (qui iront dans C). Actif contient "hospi" "interrompu" "en attente" "annulé" et "actif".
    Non, seuls les actifs de A iront en C (le code copiera les valeurs sans les couper) ET seuls tout les non actifs de A iront en B (le code copiera les valeurs sans les couper).

    Aucune intervention manuelle de votre part si ce n'est que d'appuyer sur un bouton qui fera les 2 fichiers.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  14. #14
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Je n'ai pas compris ce que tu m'explique par rapport au données en double. Si elles sont coupées de B pour être collées dans C, quand je ferais importer les patients grâce au bouton, elles ne seront plus présentes dans B donc ne seront pas importées dans C, si ?
    Ton fichier A de départ contient les données complètes.
    Mettons que le 11/08/2020 tu fasses tourner la macro. Tu auras ces données en A, B et C une première fois sans doublons.
    Ensuite mettons que le mois prochain tu refasses tourner la macro pour avoir une sauvegarde de l'évolution. Donc le 11/09/2020 tu refais tourner le code. Oui mais tes données en date du 11/08/2020 sont déjà dans B et C. En refaisant tourner la macro tu vas de nouveau reprendre tes inactifs de A et les mettre dans C. Tu auras donc tout les inactifs en date du 11/08/2020 et tout les inactifs en date du 11/09/2020.
    Donc si un patient était inactif le 01/08/2020 tu copies ses données une fois le 11/08/2020 ET une autre fois le 11/09/2020. Donc tu auras un doublon.
    Même principe pour les non inactifs.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  15. #15
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Oups. Mon schéma est faux. Je le refais.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  16. #16
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Citation Envoyé par Alex020181 Voir le message
    Oups. Mon schéma est faux. Je le refais.
    Schéma refait. Désolé.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  17. #17
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Bien. Je propose de reprendre car mon schéma était faux.

    Nom : schema.png
Affichages : 165
Taille : 12,1 Ko

    Seuls les non inactifs de A iront en B (le code copiera les valeurs sans les couper) ET seuls tout les inactifs de A iront en C (le code copiera les valeurs sans les couper).

    Aucune intervention manuelle de votre part si ce n'est que d'appuyer sur un bouton qui fera les 2 fichiers.

    Autre question du coup; comment veux-tu gérer les historiques d'import ?

    Je m'explique; tu fais tourner le code la première fois. OK tout roule.
    Mais quand tu referas tourner le code, étant donné que pour le moment les données se mettent à la suite des données existantes dans B et C, tu vas avoir plusieurs lignes identiques et même plusieurs lignes concernant le même patient (avec des données mises à jour).

    2 solutions selon moi;
    - soit à chaque fois on supprime les anciennes données dans B et C (et donc tu auras 2 fichiers "neufs")
    - soit à chaque fois on insère la date et heure d'import dans B et C dans une colonne tout à droite (ainsi tu auras des doublons de lignes mais tu pourras les différencier avec la colonne ajoutée)

    Ton fichier A de départ contient les données complètes.
    Mettons que le 11/08/2020 tu fasses tourner la macro. Tu auras ces données en A, B et C une première fois sans doublons.
    Ensuite mettons que le mois prochain tu refasses tourner la macro pour avoir une sauvegarde de l'évolution. Donc le 11/09/2020 tu refais tourner le code. Oui mais tes données en date du 11/08/2020 sont déjà dans B et C. En refaisant tourner la macro tu vas de nouveau reprendre tes inactifs de A et les mettre dans C. Tu auras donc tout les inactifs en date du 11/08/2020 et tout les inactifs en date du 11/09/2020.
    Donc si un patient était inactif le 01/08/2020 tu copies ses données une fois le 11/08/2020 ET une autre fois le 11/09/2020. Donc tu auras un doublon.
    Même principe pour les non inactifs.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  18. #18
    Candidat au Club
    Femme Profil pro
    Assistante Administrative
    Inscrit en
    Août 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Assistante Administrative
    Secteur : Santé

    Informations forums :
    Inscription : Août 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Alex020181 Voir le message
    Ton fichier A de départ contient les données complètes.
    Mettons que le 11/08/2020 tu fasses tourner la macro. Tu auras ces données en A, B et C une première fois sans doublons.
    Ensuite mettons que le mois prochain tu refasses tourner la macro pour avoir une sauvegarde de l'évolution. Donc le 11/09/2020 tu refais tourner le code. Oui mais tes données en date du 11/08/2020 sont déjà dans B et C. En refaisant tourner la macro tu vas de nouveau reprendre tes inactifs de A et les mettre dans C. Tu auras donc tout les inactifs en date du 11/08/2020 et tout les inactifs en date du 11/09/2020.
    Donc si un patient était inactif le 01/08/2020 tu copies ses données une fois le 11/08/2020 ET une autre fois le 11/09/2020. Donc tu auras un doublon.
    Même principe pour les non inactifs.
    Ah oui mais non, je souhaitais plus utiliser le fichier A à la fin Il n'y aura pas d'historique d'import du coup, j'aurais toutes mes données simplement réparties sur 2 tableaux distincts et le fichier A ne sera plus utilisé après la mise en place de ces tableaux

  19. #19
    Membre éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Ah oui mais non, je souhaitais plus utiliser le fichier A à la fin
    OK compris. Faut tout me dire sinon moi pas deviner.

    Je te fais ça.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  20. #20
    Candidat au Club
    Femme Profil pro
    Assistante Administrative
    Inscrit en
    Août 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Assistante Administrative
    Secteur : Santé

    Informations forums :
    Inscription : Août 2020
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Alex020181 Voir le message
    OK compris. Faut tout me dire sinon moi pas deviner.

    Je te fais ça.
    Ah pardon je pensais que je l'avais dit >.< Autant pour moi, mes excuses :'(

Discussions similaires

  1. Macro pour supprimer une ligne selon le contenu d'une cellule
    Par niboTD dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/01/2019, 14h26
  2. Macro pour supprimer une ligne selon le début de texte d'une cellule
    Par niboTD dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/01/2019, 18h55
  3. [XL-MAC 2011] Macro pour transfert d'une feuille dans un nbr de feuille inconnu selon un critère
    Par Annyie dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 19/09/2015, 20h11
  4. Réponses: 6
    Dernier message: 27/11/2014, 15h31
  5. créer bouton pour enregistrer BDD sur une page
    Par guimauve dans le forum Access
    Réponses: 3
    Dernier message: 11/07/2006, 11h01

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