|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
Bonjour,
Je viens de créer un petit code avec la fonction FIND, cependant je recontre un problème sur le code : Code :
Pouvez-vous m'aider ? |
||
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() Inscription : avril 2008 Messages : 181 ![]() |
Hello,
Ton code est mal écrit. 1) Il y a un Else et un End If avant le ElseIf <- faux 2) Lorsqu'il y a un ElseIf on met un seul et unique Else que sur la dernière condition. 3) Il manque le End If à la fin. 4) On écrit pas ElseIf If, mais ElseIf simplement. Voici ton code corrigé, mais si ça ne joue toujours pas, je ne vois pas. Code :
|
||
|
|
10
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
Hello,
Merci pour la correction, mais cependant lorsque j'active mon code, il prend Code :
Merci d'avance pour vos réponses |
||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Bonjour,
Tu as tout intérêt à éviter les Select. Code :
Cordialement. |
||
|
|
20
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
Merci pour ce code, vraiment !
Mais comment je peux intégrer à présent ce code : Code :
Et est-ce qu'il possible aussi de démarrer une autre macro après cette répartition ? Elle se nomme "Tricolonne". C'est une simple fonction, de tri et d'ajout de résultat sur chaque la sheet selectionné. Pouvez-vous m'aider ? Merci d'avance Bàv, |
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Bonjour,
Je te donne quelques éléments pour que tu puisses avancer. Dans la première procédure, tu as 3 feuilles : Ws1 , feuille "Travail" Ws2 , feuille "FRANCE" Ws3 , feuille "MAROC" Tu effectues une recherche dans la feuille "Travail". Si tu trouves le texte "AVION_FRANCE", tu effaces l’intégralité de la feuille "FRANCE" sinon, si tu trouves le texte "AVION_MAROC", tu effaces l’intégralité de la feuille "MAROC". Dans ta deuxième procédure il y a 2 feuilles : shSource (feuille source) et Sh (feuille cible). Tu effectues une boucle sur chaque ligne renseignée de la colonne A de la feuille source afin de récupérer les noms des feuilles cibles (lecture des cellules de la colonne C). Tu recherches le numéro de ligne de la feuille cible où effectuer l’ajout (iCible). Tu effectues un test pour vérifier si la première ligne est renseignée. Tu effectues une copie de la ligne de la feuille source vers la feuille cible (ligne iCible). Tu effaces la ligne de la feuille source. Il n’y a aucun lien entre les 2 procédures. Je crois comprendre que tu souhaites reprendre la première procédure et faire en sorte qu'après avoir détecté le pays, les nouvelles données soient inscrites dans la feuille correspondante. Il y a un point à éclaircir : avec la procédure actuelle, si tu trouves le texte "AVION_FRANCE" ou "AVION_MAROC", tu effaces l’intégralité de la feuille "FRANCE" ou "MAROC" (Ws2.Cells.Delete ou Ws3.Cells.Delete). Dans la feuille du pays, tu n’auras donc que la dernière ligne copiée. Je ne suis pas sûr que se soit la finalité. Tu as tout intérêt à décrire dans le détail de ce que tu veux faire. Cordialement. |
|
|
20
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
Hello,
J'apporte quelques explications sur le déroulement du programme : - 3 sheets (Travail(Ws1) / France(Ws2) / Maroc(Ws3)) - Je colle les données dans la sheet Travail - Le lance la macro et ses étapes doivent se produirent : - Détection sur la page Travail d'une donnée France, si il en détecte : -->il va dans la page Ws2 (France), -->supprime l'ensemble des données sur la page Ws2, -->colle les nouvelles données dans cette page (Ws2) -->et lance la Macro2 (TriColonne) sur la page (Ws2) - Si il en détecte pas, alors étape suivante : -->Il cherche des données Maroc dans la fiche travail, si il en détecte : Même système... Si il y détecte rien du tout, petit message d'erreur, "aucunes données, aucun tri". Le but de cette manoeuvre, c'est de pouvoir garder le fichier ouvert, et de pouvoir le mettre à jour, sans pour autant tout supprimer à chaque fois, car vous devez vous douter qu'il n'y a pas que ses pays là sur ces pages. Et surtout éviter de lancer la deuxième Macro(TriColonne) dans les sheets oú les données n'ont pas été mise à jour. Merci d'avance pour votre aide |
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Bonjour,
Tu peux utiliser ce type de structure Code :
|
||
|
|
20
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
Merci pour le code,
Et pour déclancher la deuxième Macro, je dois ajouter à quel endroit ? Merci d'avance |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Je ne sais pas comment est conçue cette macro.
A priori, tu as 2 solutions : - soit intégrer le code de la macro TriColonne dans la procédure Traitement. - soit lancer la macro TriColonne à partir de la procédure Traitement. Cordialement. |
|
|
20
|
|
|
#11 | ||||
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
D'accord,
Donc si je reprends votre code : Code :
Code :
Si c'est indiqué France, il prend la ligne et la transmet directement dans la sheet qui lui est attribué ! Donc les noms qui se trouvent la colonne et les noms des sheets sont identiques, sinon cela fonctionnerai pas. Donc je ne sais pas comment intégrer cela au code. Pouvez-vous m'aider ? |
||||
|
|
00
|
|
|
#12 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Le code que je t'ai transmis réalise l'opération que tu indiques.
Il suffit de remplacer AVION_FRANCE par FRANCE et AVION_MAROC par MAROC. la procédure devient Code :
|
||
|
|
20
|
|
|
#13 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
Tout à fait, j'ai effectué les changements cependant,
Il ne prends qu'une seule ligne et il a copie/colle dans la sheet correspondante. Il ne fait rien d'autre. Comment peut-on modifier afin qu'il prenne toutes les données et qu'ils les repartissent dans les bonnes sheets ? |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Qu'est-ce que tu appelles "Toutes les données" ?
Tu veux qu'il copie l'intégralité de la feuille "Travail" ? |
|
|
20
|
|
|
#15 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
Dans la sheet travail se trouve actuellement plusieurs lignes de données.
Sur chaque ligne, en colonne C, on retrouve les données critères "France" ou "Maroc". (En A B D E F... etc se sont des chiffres). Donc ce que je veux faire c'est que lorsque j'active la macro : Il détecte sur la ligne "Maroc", il prends les données et les collent dans la sheet Maroc en vidant la sheet travail et lance juste à la suite la seconde Macro "Tricolonne". Donc si il y a seulement des données MAROC dans la sheet travail, je veux qu'il aille vider ses données dans la sheet Maroc, en remplacent celle existante. Et donc, ne rien faire sur la sheet France. SI vous avez besoin de l'exemple excel, je le metterai en attachement. Bàv |
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Le mieux c'est effectivement que tu fasses passer un fichier exemple.
1 - Je ne parviens toujours pas à comprendre quelle est la plage à copier : - soit il y a plusieurs fois le texte "FRANCE" (ou "MAROC") dans la colonne C et on sélectionne toutes les lignes qui possèdent ce texte, - soit il n'y a qu'une fois le texte "FRANCE" (ou "MAROC") dans la colonne C et on sélectionne la ligne trouvée ou le document complet. 2 - Est-ce qu'il peut y avoir "FRANCE" et "MAROC" dans la feuille de travail ? 3 - Profites-en pour joindre le code de ta procédure "Tricolonne". Cordialement. |
|
|
20
|
|
|
#17 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
Hello,
Vous trouverez ci-joint un fichier excel, qui sera plus compréhensif. Dans ma sheet "Fiche de Travail J" seront collées tous au long la journée des données différentes qui auront toujours un même point de référence "en colonne C" (Le pays). Je veux seulement qu'ils se repartissent les données dans chaque sheets en fonction de cet argument. Et qu'il déclenche automatiquement la Macro "tricolonne" sur la sheet oú je viens de trier des nouvelles données ! les lignes de 1 à 7, dans la sheet France les lignes de 8 à 15, dans la sheet Espagne, les lignes de 16 à 34, dans la sheet Maroc. (Le nombres de données est bien sur variaibles). Donc si je reprends mon exemple : Actuellement... Dans les sheets France / Espagne / Maroc, il y a des données. Mais je dois mettre à jour cela, donc je colle des nouvelles données dans Fiche de Travail J (Je n'ai que des données pour France et que des données pour Espagne). Donc... Il détecte via "Find" qu'il y a des données France, donc il vide la sheet France, colle les nouvelles données et active la macro "Tricolonne". Idem pour Espagne. Cependant Maroc, vu qu'il y a pas de nouvelles données, rien ne change ! Si vous avez besoin, n'hésitez pas!! Merci |
|
|
00
|
|
|
#18 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Bonjour,
Ca-y est, je crois avoir compris ![]() J'ai continué dans la lancée avec la fonction FIND mais on aurait pu utiliser un filtre. J'ai également intégré au code le lancement de la procédure TriColonne. Fais le test et donne-moi tes impressions Code :
|
||
|
|
20
|
|
|
#19 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 150 ![]() |
Hello !!
C'est niquel comme code ! Si je vide la sheet de travail en faisant un all.delete, c'est correct ? ou Est-ce qu'on peut vider la sheet totalement pendant qu'il fait la répartition ? Qu'est ce qui est le plus propre ? Par contre j'ai un petit problème, et je pense que c'est le dernier. Je viens de faire un test dans l'hypothèse (ci-jointe), j'ai des données dans Espagne Maroc et France. Je viens de collé dans "Travail J" (Espagne+France) malheureusement quand je démarre la macro, il bug sur la sheet Maroc, car il veut modifier mes données...Alors que je veux pas les changer, vu que j'en ai pas de nouvelle ! Merci d'avance et encore super pour le code ! |
|
|
00
|
|
|
#20 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 700 ![]() |
Citation:
En cours de procédure, les lignes transférées sont colorées en bleu dans la feuille travail. Citation:
J’ai rajouté un test. Cordialement. |
||
|
|
20
|
Copyright © 2000-2012 - www.developpez.com