Macro excel

Fermé
karlskoff Messages postés 11 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008 - 16 juin 2008 à 15:39
karlskoff Messages postés 11 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008 - 18 juin 2008 à 07:36
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 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
16 juin 2008 à 15:49
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 lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008
17 juin 2008 à 08:46
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 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522 > karlskoff Messages postés 11 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008
17 juin 2008 à 11:40
Post nous un exemple ici.
0
karlskoff Messages postés 11 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008 > chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012
17 juin 2008 à 11:59
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 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
17 juin 2008 à 12:30
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 lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008
17 juin 2008 à 12:39
oui c'est exactement ça
0
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
17 juin 2008 à 13:43
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 lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008
17 juin 2008 à 13:59
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 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
17 juin 2008 à 14:13
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 lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008
17 juin 2008 à 14:53
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 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
17 juin 2008 à 15:09
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 lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008
17 juin 2008 à 16:26
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 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522 > karlskoff Messages postés 11 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008
17 juin 2008 à 17:40
Ou rechercher la première ligne depuis la fin.
0
karlskoff Messages postés 11 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008
17 juin 2008 à 18:12
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 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
17 juin 2008 à 19:16
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 lundi 16 juin 2008 Statut Membre Dernière intervention 23 juillet 2008 > chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012
18 juin 2008 à 07:36
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