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 :

Transfert de données entre 2 fichiers Excel / VBA [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2016
    Messages : 18
    Par défaut Transfert de données entre 2 fichiers Excel / VBA
    Bonjour, Bonsoir, à toutes, à tous!

    J'aurais besoin de vos lumières sur un problème où je stagne depuis quelques jours. Pour synthétiser, j'ai deux fichiers Excel (A et B) qui doivent communiquer entre eux.

    Dans ces deux fichiers, deux plages de données sont quasiment identiques. A titre d'exemple, pour le fichier A, une base de données a été crée avec pour en-tête le nom de plusieurs activités (ligne 1) et pour la colonne A tous les comptes d'une société dont les cellules de la base sont vides. Le fichier B lui reprend dans la colonne A certains comptes de la société (qui figurent obligatoirement dans la base de données du fichier A) et en valeur de ces comptes, dans la colonne B les montants financiers correspondant.

    Mon problème est que je n'arrive pas, essayé mais pas pu, à ce que mon fichier A aille trouver dans le fichier B les comptes utilisés pour que les montants correspondants viennent automatiquement se transposer dans le fichier A aux comptes qui match entre les deux fichiers.

    Le fait est qu'il y a une multitude de données (plusieurs milliers) et que je voudrais que cette Recherche se fasse automatiquement. Malheureusement, je n'ai pas de connaissance en VBA et je voudrais savoir si un code serait applicable pour ce genre de situation.

    Je vous remercie d'ores et déjà à toutes-tous pour votre aide (n'hésitez pas à me dire si vous souhaitez que je joigne des documents exemples pour illustrer mes propos)

    Bien à vous

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Avant de faire du vba, as-tu essayé la fonction RechercheV?

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2016
    Messages : 18
    Par défaut
    Bonjour Halaster,

    Oui j'ai effectué une recherchev, mais le fait est que cette tâche peut être effectuée plusieurs fois donc devenir redondante et l'idée serait de créer un code pour cette tâche répétitive. Notamment un code avec la fonction " Find".

    Je mettrai à disposition en fin de journée des fichiers exemples et un code testé pour avoir votre avis!

    Merci encore d'avoir pris de votre tems

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    La rechercheV se met à jour si les données du fichiers B change, pourquoi refaire plusieurs fois la rechercheV?

    Si tu utilise déjà une rechercherV pour le faire en VBA, tu peux utiliser l'enregistreur de macro, ça te donnera un code tout fait. Il y a sur ce site un tuto sur le sujet.

    Concernant le fichier exemple, des images c'est mieux qu'un fichier a télécharger, et le code posté avec la balise code (#)

  5. #5
    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 Mc Gars Red Voir le message
    Malheureusement, je n'ai pas de connaissance en VBA
    Ca n'a rien d'irrécupérable :
    http://bidou.developpez.com/article/VBA/
    http://silkyroad.developpez.com/VBA/DebuterMacros/
    http://mhubiche.developpez.com/vba/f...yntaxes/bases/

    mon fichier A aille trouver dans le fichier B les comptes utilisés pour que les montants correspondants viennent automatiquement se transposer dans le fichier A aux comptes qui match entre les deux fichiers.
    Il faut que tu fasses une boucle For to de la première à la dernière ligne de la colonne A du fichier B.
    https://msdn.microsoft.com/fr-fr/lib.../gg251601.aspx

    Pour chaque ligne du fichier B, tu chercheras (méthode Find de l'objet Range) dans la colonne A du fichier A la valeur qui se trouve dans la cellule scrutée du fichier B.
    https://msdn.microsoft.com/fr-fr/lib.../ff839746.aspx

    Une fois que la ligne du fichier A est identifiée, tu la recopies dans le fichier B avec la méthode Copy de l'objet Range.
    https://msdn.microsoft.com/fr-fr/lib.../ff837760.aspx

    Citation Envoyé par Mc Gars Red Voir le message
    Je mettrai à disposition en fin de journée des fichiers exemples
    http://www.developpez.net/forums/d84...s-discussions/

  6. #6
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2016
    Messages : 18
    Par défaut
    Je vous remercie pour vos conseils, je vais tester tout ça aujourd'hui et je vous reviendrai pour un feedback!

  7. #7
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2016
    Messages : 18
    Par défaut
    Bonsoir à tous,

    Merci encore pour vos derniers conseils j'ai pu écrire un code (malheureusement pas encore testé, je vais essayer de procéder au test cette semaine).

    Juste pour donner plus détails à mon problème, je vous fait part des quelques lignes qui suivent histoire de vous embêter encore un peu .

    Je vous ai joint en PJ les fichiers en question. L'objectif est que les cellules du fichier A soient automatiquement remplies et correctement remplies quand les données de la colonne A "match" avec les données de la colonne A du fichier B.

    J'ai effectué une RechercheV, mais le problème est que pour les valeurs cherchées non trouvées, le montant inscrit dans la cellule est le même montant de la dernière valeur trouvée. Dans ce pour l'activité 1 nous n'avons pas le compte "1002 Electricité" et dans le fichier A le montant inscrit dans la cellule correspondante "B3" devrait être 0, mais avec la rechercheV effectuée le montant inscrit correspond au montant de 500.

    Comme vous pouvez le constater, il y a plusieurs activités et je voudrais créer un code pour le transfert des montants du fichier B (téléchargé trimestrielemnt depuis un logiciel comptable) puisse correspondre aux cellules adéquates dans le fichier A.

    Par avance je vous remercie encore de partager votre savoir!

    Nom : Fichier A.PNG
Affichages : 1431
Taille : 23,3 KoNom : Fichier B.PNG
Affichages : 1428
Taille : 17,8 Ko

  8. #8
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    J'ai effectué une RechercheV, mais le problème est que pour les valeurs cherchées non trouvées, le montant inscrit dans la cellule est le même montant de la dernière valeur trouvée. Dans ce pour l'activité 1 nous n'avons pas le compte "1002 Electricité" et dans le fichier A le montant inscrit dans la cellule correspondante "B3" devrait être 0, mais avec la rechercheV effectuée le montant inscrit correspond au montant de 500.
    Tu dois mettre le dernier parametre de la rechercheV a 0 ou false pour gérer correctement les absent

    Comme vous pouvez le constater, il y a plusieurs activités et je voudrais créer un code pour le transfert des montants du fichier B (téléchargé trimestrielemnt depuis un logiciel comptable) puisse correspondre aux cellules adéquates dans le fichier A.
    Comment sais tu dans quelle colonne tu copie le montant?

  9. #9
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2016
    Messages : 18
    Par défaut
    J'ai bien mis le dernier paramètre à 0 ou FALSE, mais le problème reste le même.

    Pour ce qui de savoir qu'elles feuilles (activités) choisir, l'idée était justement d'écrire un code VBA qui aurait permis en téléchargeant les fichiers depuis le logiciel comptable, de lire automatiquement le document et de distribué le montant financier dans la colonne concernée.

    Je vais, pour le peu de connaissance sur VBA que j'ai, essayer d'écrire un code dont je vous en ferai part pour avoir vos avis d'experts.

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

Discussions similaires

  1. [XL-2007] transfert automatique de données entre 2 fichiers Excel
    Par intellli dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/02/2015, 12h14
  2. Récupération de données entre 2 fichiers Excel
    Par akrev dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/08/2007, 21h38
  3. extraction de données entre 2 fichiers excels
    Par jackbauer972 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/06/2007, 14h02
  4. [VBA-E] Transfert D'images Entre Deux Fichiers Excel
    Par Kevin_18 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/04/2007, 14h43
  5. copie de données entre 2 fichiers excel
    Par kalu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/10/2006, 17h31

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