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 :

Récupération de données dans un autre classeur


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'exploitation
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'exploitation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Récupération de données dans un autre classeur
    Bonjour

    Je souhaiterais automatiser la récupération de données lors de la conception d'un nouveau fichiers de relevés.

    Dans l'idéal, à partir d'un tableau vierge de donnée, l'opérateur dans le premier onglet et dans une cellule, met le nom du fichier sans l'extension dans une cellule, puis la valeur de cette cellule est récupérée dans l'onglet suivant pour remplir automatiquement le formulaire avec les données de l'ancien classeur.

    Pour faire plus clair peut être, l'ancien fichier, Hebdo Usine 2019.xlsm, le nom qui doit être saisi dans le premier onglet du nouveau fichier Hebdo Usine 2020, Hebdo Usine 2019, afin de récupérer les données de l'onglet de la semaine 53 de 2019 ou de l'onglet de la semaine 52 si la 53 est vide, un petit plus au passage.

    Déjà est-ce possible et si oui merci par avance au personnes qui m'aideront parce que j'avoue là je bloque.

    Cordialement

    Jean-Luc

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    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 : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    A partir où les fichiers "source" et "cible" sont ouverts, c'est d'une simplicité déconcertante

    Exemple simple de la copie de la plage de cellules A2:H2 provenant de la feuille nommée Semaine 52 du classeur Hebdo Usine 2019.xlsm vers la cellule A10 de la feuille nommée Semaine 1 du classeur Hebdo Usine 2020.xlsm
    Dans cet exemple les deux classeurs concernés sont déjà ouvert.
    Il y a bien entendu un tas d'autres possibilités pour copier une ou plusieurs lignes

    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
    Sub t()
      ' Déclaration
      Dim wkbSource As Workbook
      Dim wkbTarget As Workbook
      Dim shtSource As Worksheet
      Dim shtTarget As Worksheet
      ' Assignation
      Set wkbSource = Workbooks("Hebdo Usine 2019.xlsm")
      Set wkbTarget = Workbooks("Hebdo Usine 2020.xlsm")  ' ou ThisWorkbook (Classeur où se trouve le code VBA)
      Set shtSource = wkbSource.Worksheets("Semaine 52")
      Set shtTarget = wkbTarget.Worksheets("Semaine 1")
      ' Copie d'une ligne
      shtSource.Range("A2:H2").Copy shtTarget.Range("A10")
      '
      ' Fin de programme
      Set wkbSource = Nothing: Set wkbTarget = Nothing: Set shtSource = Nothing: Set shtTarget = Nothing
    End Sub
    J'en profite pour signaler qu'avoir une feuille par semaine est une mauvaise idée.
    Il y a certainement moyen d'avoir une feuille contenant toutes les semaines voire même toutes les semaines de plusieurs années dans une seule feuille.
    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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'exploitation
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'exploitation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse ultra rapide Philippe, mais ce n'est pas ce que je recherche, je veux juste copier la valeur d'une cellule du fichier n-1 dans sa jumelle du fichier n nouvellement créé à partir d'un fichier n vierge.

    La structure du fichier n ne peut pas être changer pour des raisons de facilité de saisie par les opérateurs, tout est bloqué et a été construit comme la feuille de tournée papier sur laquelle ils font les relevés, ce qui fait que les onglets ne sont pas agencés comme un "simple tableau", il y a plein de ligne de texte en légende et des minis tableaux "éparpillés".

    C'est pour cela que je souhaitais une formule et non pas un code vba.

    Dans le fichier n vierge, dans une cellule du premier onglet nommé "Début", on va dire A1 pour être plus clair, il est demandé de mettre le nom du fichier n-1 SANS l'extension et d'enregistrer sous le nouveau nom n.
    Dans l'onglet Sem-1 se trouvent des cellules ayant pour légende "Semaine précédente" et dans lesquelles on doit retrouver les valeurs de l'onglet Sem-53 du fichier dont une partie du nom se trouve dans la cellule A1 du premier onglet ou de l'onglet Sem-52 si le 53 n'a pas de valeur.

    Si je créé ma formule en direct cela me donne de mémoire quelque chose comme ça :

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    =si(estvide(Début!A1);"";si(estvide('[n-1.xlsm]Sem-53!B10');'[n-1.xlsm]Sem-52!B10';'[n-1.xlsm]Sem-53!B10'))

    Mais là, le nom de fichier entre les crochets est fixe et je voudrais qu'il soit récupéré dans la cellule Début!A1, c'est ce que je n'arrive pas à faire, parce qu'en soit le reste de la formule est simple.

    Jean-Luc

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    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 : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour Jean-Luc,
    C'est pour cela que je souhaitais une formule et non pas un code vba.
    Désolé, je n'avais pas fait attention que le message avait été déposé dans la rubrique Excel
    D'après vos explications, il faudrait utiliser la fonction INDIRECT mais je n'ai pas le temps pour l'instant de m'y pencher.
    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

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    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 : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut Liaison entre deux classeurs ouverts à l'aide de la fonction INDIRECT
    Bonjour,
    J'ai retrouvé un classeur que j'avais créé il y a huit ans qui m'avait servi de test pour écrire un article sur les fonctions travaillant sur des classeurs liés et qui est donc proche du sujet qui nous occupe

    Dans l'illustration ci-dessous, nous voyons à gauche la feuille d'un classeur dans laquelle dans la cellule A7 il y a une formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDIRECT(CAR(39) & "[" & $B$1 & "]" & $B$2 & CAR(39) & "!" & "C" & MOIS(AUJOURDHUI())+1)
    qui va récupérer une information dans la cellule C2 de la feuille nommée maFeuille d'un classeur nommé CA 2012.xls que l'on visualise à droite

    Explication :
    Cellule B1 - Le nom du classeur lié (on pourrait bien entendu crée le nom dynamiquement en faisant année en cours -1
    Cellule B2 - Le nom de la feuille liée
    Le numéro de la ligne est calculée automatiquement dans la formule "C" & MOIS(AUJOURDHUI())+1)
    CAR(39) est le code ASCII de l'apostrophe

    Comme on le voit dans le message en rouge dans l'illustration, la fonction INDIRECT ne fonctionne pas si le classeur lié est fermé


    Nom : Indirect avec classeur.png
Affichages : 211
Taille : 60,4 Ko
    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

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'exploitation
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'exploitation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Le fait qu'il faille obligatoirement l'ancien fichier ouvert ne convient pas, au moins avec une formule simple (pour moi) du style que j'ai montré, cela demande si l'on veut mettre à jour les liaisons.

    Pour vous montrez et pour une meilleure compréhension, j'aurais dû commencer par là, voilà une capture des écrans.

    L'onglet où les agent doivent mettre l'ancien nom :

    Nom : 1.jpg
Affichages : 216
Taille : 243,6 Ko

    Et la feuille de saisie :

    Nom : 2.jpg
Affichages : 195
Taille : 189,0 Ko

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'exploitation
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'exploitation

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Personne d'autre pour m'aider ??

    Jean-Luc

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/01/2015, 14h42
  2. [XL-2013] Importer des données dans un autre classeur
    Par titoupoulpe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2014, 14h11
  3. [XL-2010] Copier les données dans un autre classeur
    Par idhmida dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/12/2013, 15h17
  4. [XL-2007] exportation de données dans un autre classeur
    Par blackstrange dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/07/2012, 16h28
  5. [XL-2003] Formule Somme.si allant chercher des données dans un autre classeur
    Par spoutnikk dans le forum Excel
    Réponses: 4
    Dernier message: 24/04/2010, 18h56

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