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 :

Mettre un fichier à jour à partir d'un autre


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut Mettre un fichier à jour à partir d'un autre
    Bonsoir

    Je dispose de 2 fichiers et souhaite mettre à jour les données de l’un grâce aux données de l’autre grâce à une macro.
    Je m’explique :
    A partir du nombre contenu dans la colonne A du fichier « Flux_photo », je souhaite vérifier si celui-ci existe dans la colonne D du fichier « suivi - Info - clc - u202213 »
    A partir de là, 2 possibilités :
    - Soit le nombre existe et alors il faut copier les champs du fichier « Flux_photo », vers les champs correspondant du fichier « suivi - Info - clc - u202213 »
    La colonne B de « Flux_Photo » correspond à la colonne F du fichier « suivi - Info - clc - u202213 »
    La colonne C de « Flux_Photo » correspond à la colonne K du fichier « suivi - Info - clc - u202213 »
    La colonne D de « Flux_Photo » correspond à la colonne L du fichier « suivi - Info - clc - u202213 »
    La colonne E de « Flux_Photo » correspond à la colonne P du fichier « suivi - Info - clc - u202213 »
    La colonne F de « Flux_Photo » correspond à la colonne E du fichier « suivi - Info - clc - u202213 »
    La colonne G de « Flux_Photo » correspond à la colonne Q du fichier « suivi - Info - clc - u202213 »
    La colonne H de « Flux_Photo » correspond à la colonne R du fichier « suivi - Info - clc - u202213 »
    La colonne I de « Flux_Photo » correspond à la colonne A du fichier « suivi - Info - clc - u202213 »
    La colonne J de « Flux_Photo » correspond à la colonne S du fichier « suivi - Info - clc - u202213 »
    La colonne K de « Flux_Photo » correspond à la colonne T du fichier « suivi - Info - clc - u202213 »
    La colonne L de « Flux_Photo » correspond à la colonne U du fichier « suivi - Info - clc - u202213 »
    La colonne M de « Flux_Photo » correspond à la colonne V du fichier « suivi - Info - clc - u202213 »
    - Soit le nombre n’existe pas et alors il faut copier les champs du fichier « Flux_Photo » à partir de la première ligne vide du fichier « « suivi - Info - clc - u202213 »
    Merci de votre aide, je galère
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut recherche
    Bonjour au Forum,

    Bonjour jip31, et bienvenu !

    Je te proposerais la méthode Find gérée ainsi

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Public Sub ESSAI()
     
    Dim c As Range
    Dim f As Range
    Dim col_photo As Range
    Dim col_recherche As Range
    Dim feuille_recherche As Worksheet
     
    'Affectation de variables aux colonnes à balayer et recherche
    With ThisWorkbook.Sheets(1)
            Set col_photo = .Range(.Range("A2"), .Cells(.Rows.Count, 1).End(xlUp))
    End With
    Set feuille_recherche = Workbooks("suivi - Info - clc - u202213.-.xlsx").Sheets("photo a effectuer")
    With feuille_recherche
            Set col_recherche = .Range(.Range("D2"), .Cells(.Rows.Count, 4).End(xlUp))
    End With
     
    'Boucle sur les numéros de série du 1er classeur
    For Each c In col_photo
            Set f = col_recherche.Find(c, Lookat:=xlWhole)
            'Si c absent, la ligne d'informations = 1ère ligne vide
            If f Is Nothing Then
                ligne = col_recherche.End(xlDown).Offset(1, 0).Row
            Else
            'Si c présent, la ligne d'informations est celle trouvée
                ligne = f.Row
            End If
            'Informations dans le 2nd classeur
            With feuille_recherche
                'Colonne A, Passons outre la redondance en cas de succès
                .Cells(ligne, 4) = c.Value
                'Colonne F = Colonne B
                .Cells(ligne, 5) = c.Offset(0, 1)
                'etc pour toutes les colonnes
             End With
    Next c
     
    'Réinitialisation des variables
    Set col_photo = Nothing
    Set feuille_recherche = Nothing
    Set col_recherche = Nothing
    Set f = Nothing
     
    End Sub
    Par hypothèse, en cas de succès de la recherche, j'ai considéré que la cellule trouvée est unique dans le second fichier.

    Il te reste à adapter l'ensemble des colonnes à l'intérieur de la dernière méthode With.

    Regarde bien ce code, et reviens si nécessaire.

    Bonne journée.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut Mettre un fichier à jour à partir d'un autre
    Bonjour Marcel et merci pour votre aide!
    On est bien d'accord la macro est à placer dans un module de "Flux_photo"?
    Si c'est bien le cas, la macro plante sur la ligne 13
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set feuille_recherche = Workbooks("suivi - Info - clc - u202213.-.xlsx").Sheets("photo a effectuer")
    Pouvez vous m'aider?
    Encore merci et bon Dimanche

  4. #4
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut variables
    Bonjour jip31, Bonjour le Forum,

    Il s'agit ici d'une affectation de variable à un objet Worksheet.

    Vérifie les 3 points suivants:
    - le 2nd fichier est ouvert
    - son nom est bien celui indiqué dans cette affectation
    - le nom de la feuille est bien celui indiqué

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 30
    Points : 21
    Points
    21
    Par défaut Mettre un fichier à jour à partir d'un autre
    bonjour marcel

    déjà le second fichier n 'était pas ouvert...
    je verifie et vous tiens au courant!
    bonne journée

Discussions similaires

  1. mettre à jour à partir d'une autre table
    Par xavier_dcf dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/12/2012, 21h24
  2. [XL-2000] Mise à jour d'un fichier excel à partir d'un autre
    Par jejedelbarro dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 21/04/2009, 18h28
  3. [FPDF] Créer un fichier PDF à partir d'un autre fichier PDF
    Par axel-erator dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 18/06/2006, 23h29
  4. Requête Mise à jour à partir d'une autre table
    Par temar dans le forum Access
    Réponses: 2
    Dernier message: 17/05/2006, 09h23
  5. [VBA-E]Génération de fichiers Excel à partir d'un autre
    Par cyrille2k5 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/05/2006, 10h27

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