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 :

Mise à jour automatique [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Par défaut Mise à jour automatique
    Bonjour,

    Je voudrais mettre à jour certain champ d’un fichier Excel (3200 lignes) en fonction d’un autre fichier.

    Le fichier à mettre à jour comprend 6 colonnes : Fichier 1

    PSId Pid attrib quant code rupt fabr
    2572 879 12-15,13-35 0 13543 0 0
    552 1347 12-3,13-47 8 61012 0 0
    553 1347 12-2,13-47 5 61012 0 0
    554 1347 12-1,13-47 0 61012 0 0
    549 1345 12-3,13-19 0 61027 0 0
    550 1345 12-2,13-19 0 61027 0 0

    Je veux modifier les valeurs des colonnes quant, rupt et fabr avec le fichier suivant en fonction de la colonne code.

    Fichier 2

    code quant rupt fabr
    13543 31 0 0
    0011BSM 52 0 0
    0011BXL 24 0 0
    0011NSM 13 0 0
    0011NXL 15 0 0
    0907HBEI 24 0 0

    Je veux donc avec une fonction mettre à zéro tout les champs des ces 3 colonnes du fichier 1(certain code ayant une quant nulle ne sont pas présent dans le fichier 2) et ensuite mettre les nouvelles valeurs en fonction du champ code.
    Je ne sais pas si c’est faisable et je ne connais pas suffisamment Excel pour me lancer seul.
    Merci pas avance à toute les personnes qui voudrons bien se pencher sur mon problème.
    Bruno

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    sans avoir vérifier, essayes ce code :
    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 Macro1()
    Dim f1 As Worksheet, f2 As Worksheet, cel As Range, dl As Long
    Set f1 = Workbooks(fichier1.xls).Sheets("feuil1") 'en supposant que les deux fichiers sont ouverts et les données sur feuil1
    Set f2 = Workbooks(fichier2.xls).Sheets("feuil1") 'en supposant que les deux fichiers sont ouverts et les données sur feuil1
    With f1
        dl = .Range("e" & .Rows.Count).End(xlUp).Row
        'tu remets tes cecolonnes concernées à zéro avant
        .Range("d2:d" & dl).ClearContents
        .Range("f2:g" & dl).ClearContents
        For Each cel In .Range("e2:e" & dl)
            .Cells(cel.Row, cel.Offset(0, -1).Column) = f2.Range("b2:b" & f2.Range("a" & .Rows.Count).End(xlUp).Row).Find(cel).Offset(0, 1)
            .Cells(cel.Row, cel.Offset(0, 1).Column) = f2.Range("c2:c" & f2.Range("a" & .Rows.Count).End(xlUp).Row).Find(cel).Offset(0, 2)
            .Cells(cel.Row, cel.Offset(0, 2).Column) = f2.Range("d2:d" & f2.Range("a" & .Rows.Count).End(xlUp).Row).Find(cel).Offset(0, 3)
        Next cel
    End With
     
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Par défaut
    Bonjour et merci pour la réponse

    Je viens de tester le code mais j'ai une erreur.
    J'ai bien les deux fichiers ouvert séparement et les données sur la feuil1.
    Lorsque j'éxecute le code, j'ai une erreur d'éxecution 424 "objet requis".
    sur la ligne : Set f1 = Workbooks(fichier1.xls).Sheets("feuil1").
    J'ai un peu compris le code mais je ne vois pas comment corriger cette erreur.

    Bruno.

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    excuses,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set f1 = Workbooks("fichier1.xls").Sheets("feuil1") 
    Set f2 = Workbooks("fichier2.xls").Sheets("feuil1")
    si les noms de fichier sont bien ceux la

    je viens de voir que tu travailles sur 2007 alors tes fichiers ont l'extension xlsm ou xlsx et non xls
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Par défaut
    J'ai trouvé et cherchant dans l'aide pour les guillements mais tu a été plus rapide.
    La suite se passe bien les colonnes sont à zéro mais nouveau blocage sur la ligne :
    .Cells(cel.Row, cel.Offset(0, -1).Column) = f2.Range("b2:b" & f2.Range("a" & .Rows.Count).End(xlUp).Row).Find(cel).Offset(0, 1)
    erreur 91 variable objet ou variable de bloc with non définie

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je n'ai plus le temps de répondre ce soir mais j'espère que quelqu'un d'autre pourra prendre le relai (je pars en chou......)

    bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. [VB6] Code pour Mise à jour automatique
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 45
    Dernier message: 10/02/2006, 19h05
  2. [Plugin][Hibernate Synchronizer] mise à jour automatique
    Par cofy dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 30/01/2006, 10h28
  3. mise à jour automatique de champs entre 2 tables
    Par romdyane dans le forum Access
    Réponses: 5
    Dernier message: 11/10/2005, 19h51
  4. système de mise à jour automatique
    Par eponette dans le forum Web & réseau
    Réponses: 2
    Dernier message: 24/08/2005, 21h17
  5. Mise à jour automatique d'un JTextAera
    Par Vlakyron dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/09/2004, 21h11

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