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.
A voir également:

7 réponses

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
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
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
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
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
karlskoff Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
oui c'est exactement ça
0
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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
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
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
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
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