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

Excel Discussion :

Chercher une cellule d'un autre fichier quelque soit le lieu où il se trouve. [XL-2019]


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut Chercher une cellule d'un autre fichier quelque soit le lieu où il se trouve.
    Bonjour à toutes et à tous,


    J'essaie, avec ce confinement, de proposer un petit programme pour faire le point des élèves qui travaillent de ceux qui ne travaillent pas. En effet, je suis enseignant dans un lycée professionnel et des collègues me demandent si je peux trouver un programme excel qui récapitule les retours/ Non-retours de ces élèves.


    Voilà ce que j'ai fait dans un premier temps :
    1) J'ai créé autant de fichiers excel qu'il y a de profs,
    2) Dans chacun de ces fichiers créés, le prof voit toutes ses classes ( une par onglet ),
    3) Dans une feuille il y a :
    Colonne A --> nom de "élève" à partir de la ligne 2 car la ligne 1 sert de légende.
    Colonne B --> prénom de "élève"

    Un prof doit donc faire une croix dans la colonne "C" ( en face du nom et prénom de l'élève qui a travaillé ).

    Jusque là c'est simple.....


    Voilà où je bloque :
    En plus des fichiers "profs", j'ai créé des fichiers "classe" ( exemple classe "2MRC1" ).
    Pour un classe donnée, : une seule feuille ( c'est la feuille dont l'onglet s'appelle "synthèse" )

    Sur cette feuille, les 2 premières colonnes servent toujours à écrire les noms et prénoms des élèves.
    Colonne C --> elle correspond au prof de math ( par exemple )
    Colonne D --> elle correspond au prof de Français

    etc.....

    La cellule C2, doit donc être la recopie exacte de la cellule C2 de la feuille "2MRC1" du fichier comportant le nom de la cellule C1 ( la cellule C1 correspond au nom du prof de math, D1 au nom du prof de français... ) ceci est un premier problème

    Comme tout sera sur mon ordinateur dans un premier temps, je pense qu'il n'y aura pas trop de souci de cheminement. Par contre, si un collègue ( ou moi-même )décide de déplacer son ( ou ses ) fichier(s) dans un répertoire quelconque, notre petit programme ne trouvera sans doute pas le nouveau chemin. Comment faire pour que ce petit programme le retrouve facilement ?

    Ceci est mon second et dernier problème.


    Merci d'avance.


    Novice72

  2. #2
    Expert éminent 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
    Par défaut
    Citation Envoyé par Novice72 Voir le message
    faire le point des élèves qui travaillent de ceux qui ne travaillent pas.
    Si nous faisions une telle stigmatisation sur ce forum, toi-même tu serait dans la catégorie de "ceux qui ne travaillent pas".
    Tes statistiques sont éloquentes : 55 demandes, 0 aide apportée, balance négative de votes à -9.

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Si nous faisions une telle stigmatisation sur ce forum, toi-même tu serait dans la catégorie de "ceux qui ne travaillent pas".
    Tes statistiques sont éloquentes : 55 demandes, 0 aide apportée, balance négative de votes à -9.
    sans me justifier, c'est un demande du lycée qui m'a demandé si je pouvais faire un tel fichier. A chaque fois ( 3ème programme avec le premier costaud ) je leur disais que c'était surtout grâce à ce forum. Maintenant tu peux penser ce que tu veux " je ne travaille pas " !!!! C'est dommage que le confinement t'empêche de venir voir ce que nous faisons..... au travail, pour le travail et peut-être pour un de tes enfants qui te dit que ses profs ne lui donne rien à faire !

    A chacun ses compétences : Nous, on aide les autres autrement !!!

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,

    Est-ce que tu as déjà un bout de code ? Où est-ce que tu bloques exactement ? Est-ce que tu as des messages d'erreur ? Si oui, lesquels ? Est-ce qu'il y a une fonction sur laquelle tu bloques ?

    Comme tout sera sur mon ordinateur dans un premier temps, je pense qu'il n'y aura pas trop de souci de cheminement. Par contre, si un collègue ( ou moi-même )décide de déplacer son ( ou ses ) fichier(s) dans un répertoire quelconque, notre petit programme ne trouvera sans doute pas le nouveau chemin. Comment faire pour que ce petit programme le retrouve facilement ?
    Ceci est mon second et dernier problème.
    Si vous bougez les fichiers, ça va être compliqué ... Excel ne peut pas deviner où vous mettez les fichiers, même si vous gardez les noms des fichiers.
    Pour faire ce type d'analyse, le mieux c'est d'avoir un seul fichier base de données. Ca éviterait de faire des macros. Y a-t-il vraiment besoin de faire 1 fichier / prof ? Est-ce qu'un fichier partagé ne serait pas mieux ?
    Plus on multiplie les fichiers, surtout avec VBA, plus y a source d'erreur et de bug parce que le fichier n'est pas au bon endroit, on a changé de nom etc ... (avis perso )

    Solution sans VBA

    Je te propose une solution sans VBA, mais qui nécessite que tous les fichiers soient ouverts pour que la fonction donne son résultat. Même remarque que précédemment, ça reste dangereux d'avoir plusieurs fichiers, parce que si tu bouges un fichier, ça va mettre en péril tes fonctions synthèses.
    Nom : forum5.PNG
Affichages : 215
Taille : 57,5 Ko
    A gauche le fichier "prof" (nom du fichier) avec la liste des élèves pour une classe (nom de l'onglet = nom de la classe).
    A droite le fichier synthèse pour une classe.
    Je me suis permise de rajouter une colonne Nom Prénom, pour éviter d'avoir des problèmes d'élèves avec le même NOM ou le même Prénom.

    Regardons le fichier synthèse et la colonne D qui fait la synthèse des croix du prof "prof". La formule comporte 2 fonctions :


    Allons-y pas à pas :
    Le but est d'aller chercher les données dans le fichier "prof". Sachant qu'on a plusieurs profs et qu'on veut pas taper à la main une formule par prof. Sur la ligne 1, on notera donc les noms des fichiers des profs. Dans mon cas, le nom du fichier de gauche est donc prof.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("'[" & D$1 & "]2MRC1'!A1")
    Va me renvoyer la valeur de la cellule A1 de la feuille "2MRC1" du classeur "prof". C'est équivalent à :
    On continue sur cette lancée et on remplace 2MRC1 par la cellule dans laquelle est écrite la classe (H1) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT("'[" & D$1 & "]" & $H$1 & '!A1")
    Or, nous voulons comparer les Nom Prénom avec les croix (voir si pour un Nom Prénom donné, il y a une croix). On va donc regarder les colonnes C et D. D'où :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INDIRECT("'[" & D$1 & ".xlsx]" & $H$1 &"'!$C:$D")
    Le RECHERCHEV nous permettra de retrouver le Nom Prénom de l'élève et de regarder s'il y a une croix en face => d'où la formule.

    Est-ce que c'est clair ? Vois-tu comment l'adapter chez toi ?

    Solution avec VBA

    Si ce n'est pas possible de procéder ainsi (parce qu'il faut ouvrir tous les classeurs), il faudra passer par du VBA.
    On aura besoin d'ouvrir et manipuler des fichiers => à lire : https://laurent-ott.developpez.com/t...a-tome-1/#LXIX
    On pourra utiliser VLOOKUP aussi pour recopier les données (VLOOKUP = RECHERCHEV en anglais, donc en VBA).

    Voici une trame de code non testée, non complète sur un exemple simple avec 2 profs, 3 élèves pour une classe donnée :
    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
    Dim i as Integer
    Dim j As Integer
    Dim WbClasse As Workbook
    Dim WbProf As Workbook
    Dim nomClasse As String
     
    Set WbClasse = ThisWorkbook
    nomClasse = 2CMR1
     
    For i = 4 To 5     'boucle sur les profs
         'ouvrir le fichier du prof i avec Workbooks.Open
         Set WbProf = Workbooks.Open("C:\" &  WbClasse.Sheets("Synthèse").Cells(1, i).Value & ".xlsx")         'à adapter !!!
         For j = 2 to 4     'boucle sur les élèves
              'faire le RECHERCHEV sur l'élève avec Application.Vlookup
              WbClasse.Sheets("Synthèse").Cells(j, i).Value = Application.Vlookup(WbClasse.Sheets("Synthèse").Cells(j, 3).Value, WbProf.Sheets(nomClasse).Range("C:D"),2,0)
         Next j
         'fermer le fichier avec Workbooks.Close
         WbProf.Close
    Next i
    Peux-tu voir si ça correspond à peu près à ce que tu cherches ? Essaie de bidouiller le code en fonction de tes structures de classeur et reviens vers nous pour nous dire où tu bloques.

    A bientôt

  5. #5
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut Pas tout compris
    Bonjour et merci pour le travail que tu fais. Heureusement qu'il y a des gens comme toi que répondent à des questions et dont les réponses sont difficiles à trouver dans les bouquins ou autre........

    Pour en revenir à ce que tu as fais, je t'avoue que ce n'est pas trop clair pour moi. En tout cas, je n'ai pas de "bout de code" à te proposer puisque je ne fais aucune macro ici ( et certains voire beaucoup de mes collègues auraient encore plus de mal à utiliser le(s) fichiers(s) excel qui vont être fait grâce à ton aide.

    Donc j'ai regardé ce que tu as fait sans code VBA.

    Je savais que les fonctions "RechercheV" et "Indirect" existaient mais je ne les ai jamais utilisées car j'ai justement du mal à comprendre leur fonctionnement. J'ai donc regardé la vidéo en lien avec la première de ces 2 fonctions ( pas trop clair non plus ).

    Bref. je réponds à tes premières questions :
    1) Comme je te le disais je n'ai pas de bout de code car pas de VBA ici,
    2) Je ne bloque pas encore mais je sais que le fait d'envoyer 7 fichiers à un collègue par exemple ( le fichier "prof" et ses 6 fichiers "classes" ) ça va bloquer chez lui.
    a) parce qu'il va mettre les fichiers "n'importe où" dans son ordinateur " bureau, répertoire documents, etc..... " et qu'il est difficile ( voire impossible ) d'envoyer un répertoire avec les fichiers dedans par mail....

    3) Non, je n'ai pas de message d'erreur,
    4) Les 2 fonctions où je bloque sont les 2 que tu m'as citées précédemment mais je vais regarder plus attentivement après l'envoi de cette réponse.


    5) tu parles de fichier partagé : Comment fais-tu ? ( En tout cas, vu tes questions, toi tu maîtrises contrairement à moi !!! )

    Je vais donc essayé de faire un fichier unique mais pour cela, il faut que j'y réfléchisse. En effet, Excel est pour moi un tableau à triple entrées ligne/colonne/onglet


    Si en "Onglet" je mets les noms des classes , en lignes les "noms, prénoms des élèves" pour les colonnes A et B ( je dis ligne car les noms et prénoms sont les uns sous les autres ( ligne 2, tel nom et prénom, etc.... ) ) et en colonne les profs où est-ce que je mets la synthèse ???????


    Encore merci,

    Je retourne de ce pas réfléchir et peut-être à tout à l'heure.


    Novice72

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il est inutile de reprendre l'ensemble de la réponse d'un intervenant.
    D'une part cela est parfaitement inutile et d'autre part cela pollue la discussion en la rendant peu agréable à lire

    2) Je ne bloque pas encore mais je sais que le fait d'envoyer 7 fichiers à un collègue par exemple ( le fichier "prof" et ses 6 fichiers "classes" ) ça va bloquer chez lui.
    a) parce qu'il va mettre les fichiers "n'importe où" dans son ordinateur " bureau, répertoire documents, etc..... " et qu'il est difficile ( voire impossible ) d'envoyer un répertoire avec les fichiers dedans par mail....
    Pour ne pas avoir de problème tel qu'évoqué dans ta demande, il faut faire en sorte que l'ensemble des classeurs "source" et de destination se trouvent dans le même répertoire et mieux encore les classeurs de destination dans le répertoire principal et les "source" dans un sous-répertoire.
    Ainsi il te suffit d'envoyer aux personnes concernées le répertoire complet et peu importe l'endroit où il placera le dossier envoyé cela fonctionnera.

    Ceci est valable avec ou sans VBA

    A lire Description de la gestion de la liaison et le stockage dans Excel

    Attention : Certaines fonctions d'excel renvoient une erreur si le classeur source n'est pas ouvert.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Re-bonjour,

    En fait, je réfléchissais en pensant que vous travailliez sur un réseau commun, sur lequel tout le monde se connecte et a accès à tous les documents. Mais vu tes réponses, pour vous partager des documents, vous les envoyez par mail.
    Si tu veux rester sur Excel "classique", il faudra faire des répertoires. Sinon vous allez vous emmêlez les pattes ...

    Mais je te conseillerais bien de passer par un classeur partagé sur OneDrive ou Google. Je ne sais pas si c'est le cas sur OneDrive, mais avec Google, tu peux partager un classeur même avec des personnes qui n'ont pas de compte gmail !
    Cela te permettrai de faire un classeur avec une classe / onglet dans lesquels les enseignant renseigneraient les croix directement comme tu le voudrais dans la synthèse.
    Je pense que ce sera plus facile à gérer pour toi, mais aussi pour les utilisateurs qui n'auront qu'un seul classeur synthétique.
    Nom : forum8.PNG
Affichages : 215
Taille : 67,9 Ko

    Rapide tuto pour créer le Google Sheet (= Excel sur Google).
    Dans le Drive, clique sur "+Nouveau", puis Google Sheet.
    Créés ton Google Sheet comme tu l'entends (exemple ci-dessus).
    Pour le partager : clique sur le bouton vert en haut à droite, puis sur "Avancé" en bas à droite. Dans la nouvelle fenêtre dans "Qui a accès...", clique sur "Modifier". Sélectionne, alors "Activé : toutes les personnes ayant un lien" et dans la liste bleu en bas à droite (à côté de "Accès"), sélectionne "Modification". Clique sur enregistrer.
    Dans la fenêtre, tu verras un lien en haut. C'est le lien à envoyer aux personnes qui doivent collaborer au document ("Lien de partage").

  8. #8
    Expert éminent 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
    Par défaut
    Citation Envoyé par Novice72 Voir le message
    2) Je ne bloque pas encore mais je sais que le fait d'envoyer 7 fichiers à un collègue par exemple ( le fichier "prof" et ses 6 fichiers "classes" ) ça va bloquer chez lui.
    a) parce qu'il va mettre les fichiers "n'importe où" dans son ordinateur " bureau, répertoire documents, etc..... " et qu'il est difficile ( voire impossible ) d'envoyer un répertoire avec les fichiers dedans par mail....
    Il est possible de compacter fichiers et répertoires dans un ZIP (ou RAR, TAR, etc.) et de l'envoyer par mail.

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

Discussions similaires

  1. [XL-2003] Faire appel à une cellule d'un autre fichier excel
    Par rafalemirage dans le forum Excel
    Réponses: 2
    Dernier message: 02/12/2009, 10h57
  2. Lire une cellule dans un autre fichier
    Par jurgh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/09/2009, 17h22
  3. Accéder à la valeur d'une cellule d'un autre fichier excel depuis VBA
    Par guillaume7501 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/09/2008, 20h38
  4. [VBA-E]copier une cellule d'un autre fichier excel?
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2007, 09h29
  5. Réponses: 3
    Dernier message: 27/01/2006, 18h35

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