Macro excel

karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
n'étant pas très expérimenté sur Excel, je bloque vraiment pour créer une macro qui aurait pour but de mettre à jour un classeur Excel "fichier maître.xls" à partir d’un second appelé "exractraction.xls".
Cette macro devra ajouter ou supprimer des lignes si nécessaire, ainsi que modifier des dates de début et de fin dans ces même ligne.
Si quelqu’un pouvait m’aider ? Merci.
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. chtilou Messages postés 1704 Statut Membre 523
     
    Comment sont composés tes deux classeurs?
    Quand doit se déclencher le prog?
    Développe un peu...

    A ton écoute.
    0
    1. karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour,

      Le classeur "exractraction.xls" est en fait une extraction excel d’un fichier Access, avec lequel je dois mettre à jour les dates de début et de fin dans le classeur "fichier maître.xls"à partir d’un même n° d’order.
      Le classeur "exractraction.xls" comporte 3 colonnes : n° order, date de début, date de fin
      Le classeur "fichier maître.xls" comporte donc ces 3 même colonnes plus 10 autres d’informations diverses.

      Je voudrais mettre un bouton de commande dans le classeur "fichier maître.xls" qui en un simple clic se mettrait à jour à partir du classeur "exractraction.xls", tout en ajoutant ou supprimant des lignes si nécessaire.

      Les chemins des fichiers sont :
      - H:\Data\Olivier\fichier maître.xls
      - H:\Data\Olivier\extraction.xls
      0
      1. chtilou Messages postés 1704 Statut Membre 523 > karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
         
        Post nous un exemple ici.
        0
      2. karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > chtilou Messages postés 1704 Statut Membre
         
        Voici les liens:
        http://www.cijoint.fr/cjlink.php?file=cj200806/cijctprt0V.xls.
        http://www.cijoint.fr/cjlink.php?file=cj200806/cijvc3xwS9.xls.
        0
  2. chtilou Messages postés 1704 Statut Membre 523
     
    tout en ajoutant ou supprimant des lignes si nécessaire
    Donc:
    Si un numéro d'ordre présent dans "extraction" et présent dans "maître" = mise à jour des dates.
    Si un numéro d'ordre présent dans "extraction" et absent dans "maître" = ajout d'une ligne.
    Si un numéro d'ordre absent dans "extraction" et présent dans "maître" = suppression de la ligne.
    0
    1. karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      oui c'est exactement ça
      0
  3. chtilou Messages postés 1704 Statut Membre 523
     
    Donc:
    1/ Tu supprimes toutes les lignes de "maître" qui n'ont pas de numéro d'ordre.
    2/ Ensuite tu copies "extraction" dans "maître" (A en A; B et C, en N et O).
    3/ Tu recherches les doublons en colonne A, si doublon tu écrases les valeurs colonne N et O. Nécessaire? Couper/Coller.
    4/ Ajout des bordures.
    5/ Trie du tableau.

    0
    1. karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      Je l'avais pensé comme ça au début, le problème est que les ordres supplémentaires de "extraction" n'ajouteront pas des lignes non remplies dans "maître" mais me décaleront toutes mes données et fausseront mon tableau.
      C'est pour cela que je pense qu'il me faut une macro.
      0
  4. chtilou Messages postés 1704 Statut Membre 523
     
    C'est la ou je pige pas trop. :-|

    De ou récupère tu "order" dans "maître"?
    Ou alors dois tu conserver B:M dans "maître" si "order" =""; ainsi que "order" de "extraction" avec B:M="" ?

    Si un numéro d'ordre absent dans "extraction" et absent dans "maître" = ?
    Tu recherches les doublons en colonne A, si doublon tu écrases les valeurs colonne N et O. Nécessaire?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Le fichier "maitre" a été créer à partir d'une première extraction de access. Tous les jours, on me donne le fichier "extraction" modifié pour mettre à jour "maitre", des ordres sont ajoutés (1128 lignes au début,
    3264 aujourd'hui)et d'autres supprimés et les numéros d'ordre ne sont jamais dans le même ordre.

    Comme tu as dit:
    Si un numéro d'ordre présent dans "extraction" et présent dans "maître" = mise à jour des dates.
    Si un numéro d'ordre présent dans "extraction" et absent dans "maître" = ajout d'une ligne.
    Si un numéro d'ordre absent dans "extraction" et présent dans "maître" = suppression de la ligne.
    Si un numéro d'ordre absent dans "extraction" et absent dans "maître" = rien ne peut se passer.

    Il faut donc que les dates de début et de fin se mettent à jours pour les ordres communs à "maître" et "extraction".
    Un nouveau numéro d'ordre présent dans "extraction" doit ajouter une ligne dans "maître"dans laquelle les cellules
    B:M seront vides.

    Si je fais une copie de la colonne A de "extraction" et que je la colle dans "maître", les nouveaux ordres vont apparaître devant des cellules des colonnes B:M déjà remplies et non ajouter des lignes à remplir.
    0
  7. chtilou Messages postés 1704 Statut Membre 523
     
    Il faut donc que les dates de début et de fin se mettent à jours pour les ordres communs à "maître" et "extraction".
    Vu.

    Un nouveau numéro d'ordre présent dans "extraction" doit ajouter une ligne dans "maître"dans laquelle les cellules
    B:M seront vides.

    Vu.

    Si je fais une copie de la colonne A de "extraction" et que je la colle dans "maître", les nouveaux ordres vont apparaître devant des cellules des colonnes B:M déjà remplies et non ajouter des lignes à remplir.

    Pourquoi pas rechercher le numéro de la première ligne vide en colonne C pour faire la copie?
    0
    1. karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      Parce qu'il peu y avoir une centaine de lignes vides à différents endroits, les nouveaux ordres ne sont pas forcément à la suite. Il faudrait donc faire une centaine d'insertion de ligne et de copier/coller.
      0
      1. chtilou Messages postés 1704 Statut Membre 523 > karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
         
        Ou rechercher la première ligne depuis la fin.
        0
  8. karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Je ne comprends pas ce que tu veux dire par: "Ou rechercher la première ligne depuis la fin"?

    Comme je ne connais pas le langage VBA, j'ai essayé de retourné le problème dans tous les sens et je ne suis arrivé à rien de concret, ou du moins aucune solution rapide, c'est pour cette raison que je voudrais simplement un bouton de commande capable d'effectuer la mise à jour en un clic et sans fautes.
    0
    1. chtilou Messages postés 1704 Statut Membre 523
       
      Oupsss. Répondu un peu vite.

      Ce que je voulais dire c'est de rechercher la première ligne ou il y a une cellule renseignée (en partant de la fin) et de faire ta copie à partir de n+1.

      0
      1. karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > chtilou Messages postés 1704 Statut Membre
         
        Ca revient au même, dans tous les cas, ça ne peut pas marcher en un unique copier/coller, et ça entrainera automatiquement des erreurs au fichier plus beaucoup de temps perdu.
        0