Transférer trois colonnes en séparant les femmes des hommes
Bonjour à tous,
J'aimerais que les résultats dans les colonnes M, N, O, soit transférés dans les colonnes AQ, AR pour les femmes et AT, AU pour les hommes. Les résultats doivent être transférés dans un ordre descendant, du plus grand au plus petit dans les deux cas, femme et homme, et ce à partir des résultats unifiés des trois colonnes, comme si les trois colonnes n'en étaient qu'une.
J'ai placé les tableaux dans le fichier afin qu'ils correspondent à l'emplacement exact dans mon fichier principal pour faciliter le transfert des infos du mini fichier à mon fichier principal.
Il faut noter que les résultats dans les colonnes M, N, O, changent à chaque semaine. Ils sont transférés des colonnes E, F, G, de chacune des semaines, par une macro.
Merci beaucoup de votre aide.
Bonjour gmb,
Merci beaucoup pour ta réponse rapide.
Je m'excuse, je n'ai peut être pas été assez clair. Il ne faut pas additionner les résultats des colonnes. Il faut trouver le plus haut score des femmes qui se trouve dans l'une des trois colonnes et faire suivre les autres scores en descendant du plus haut au plus petit. Faire de même pour les hommes.
Ex: Pour les femmes il y a deux femmes qui ont obtenu un score de 287. Le code doit faire en sorte que les 2 premiers scores soient ceux ci et que les autres suivent en ordre descendant.
Pour les hommes, deux hommes ont obtenus des score de 290. Le même principe que celui des femmes s'applique.
Merci encore pour ton aide.
Bonsoir gmb,
Incroyable à quelle vitesse tu crées tous ces codes. Ça fonctionne parfaitement bien.
Je crois que je ne me suis pas trompé cet après-midi en disant à un ami que tu étais non seulement un expert en Excel mais aussi un créateur hors pair. Je me trouve à des années lumière de ton savoir.
Une question: Lorsque tu as créé le code MemePointage dans un dossier précédent, afin que je puisse l'activer avec le même bouton que mes autres code tu avais ajouté les infos suivantes dans mon code :
Au début du code : Public nomF As string
Juste en dessous des Dim : nomF = ActiveSheet.name
À la fin du code : Call MemePointage
Pour ce qui est de la fin, je présume que j'ajoute Call Transfert en dessous de Call MemePointage.
Mais pour ce code je ne sais pas quoi mettre à la place de nomF.
Encore merci et bonne soirée
Bonjour
En déclarant une variable avec l'instruction :
Public nomF As stringcette variable gardera sa valeur dans un nouveau module qu'on aura appelé avec l'instruction ''Call'', comme dans l'exemple que tu donnes :
Call MemePointagePour ce qui est de la fin, je présume que j'ajoute Call Transfert en dessous de Call MemePointage.
Mais pour ce code je ne sais pas quoi mettre à la place de nomF.
???
Moi, je ne sais pas pourquoi et à quoi tu veux ajouter "Call transfert"
Je ne sais donc pas que te répondre.
Désolé.
Bye !
Bonjour gmb,
Je suis un peu perdu. Tout fonctionne dans le mini fichier que tu m'as retourné. Mais lorsque je transfère le code dans mon fichier principale, il me donne une erreur d'exécution 13 (Incompatibilité de type).
Est-ce possible que ce soit parce que le bouton n'est pas sur la même page. Comme je te l'ai mentionné précédemment les données en M, N, O, sont transférées à chaque semaine en provenance des colonnes E, F, G, de chaque semaine.
J'ai créé un bouton pour ton code dans les sem.01, Sem.02. Lorsque je l'active après avoir activé le bouton "Transférer", il me donne l'erreur. (Voir fichier Classeur1V3).
J'ai aussi créé un deuxième bouton dans la Sem.01 du mini fichier pour vérifier s'il fonctionnerait. Il ne fonctionne pas.
Est-ce possible de combiner ton code Transfert aux boutons "Transférer" de chacune des semaines ?
Merci pour ton aide
golfeur01 a écrit :Je suis un peu perdu.
Ben....moi aussi !
Il est vrai que je t'ai fait plusieurs macros, mais pour des fichiers différents.
Tu devrais donc m'envoyer ton fichier ''principal'', le plus complet possible, et m'expliquer point par point ce que la macro doit faire.
Et si plusieurs onglets peuvent être en cause, que ce fichier ait bien plusieurs onglets avec des données afin qu'on puisse tester le résultat pour chaque onglet.
OK ?
Bye !
Bonjour gmb,
Ce qui est inclus dans le mini fichier est tout ce dont nous avons besoin pour faire fonctionner le code. J'ai ajouté la feuille "Abat-Neuf" car elle est mentionnée dans le code Standar afin que tu ne la cherche pas. Mais elle n'a aucune incidence sur ce que nous travaillons présentement.
Le code Standar transfère plusieurs données, en activant le bouton "Transférer", de chacune des semaines, à la feuille Données, sauf pour le premier transfert... qui fait l'inverse.
Premier transfert: Du début du code jusqu'à la ligne : " For J = 2 To 160 " (cette ligne n'est pas incluse dans la 1ère partie du code)
Le code transfère les données de la col. A de la feuille "Données!" dans la col. B de chacune des Sem.01...Sem.02...
Dim j : Deuxième transfert: À partir de la ligne : " For J = 2 To 160 " jusqu'à la ligne :
"If Not sh_source Is Nothing Then
End If "
Le code transfère les données des colonnes M, N, O, BF, des Sem.01, Sem.02... aux colonnes H, I, J, K, L, de la feuille "Données!". Remarque que les données de la colonne "M" sont transférées dans 2 colonnes différentes H et J de la feuille "Données!". La colonne H les additionne afin d'accumuler un grand total à la fin de la saison, alors que la colonne J donne le résultat hebdomadaire.
Dim k : Elle transfère aussi les données des colonnes M, N, O, BF, dans les colonnes T, U, V, W, de la feuille "Données!".
Troisième transfert: À partir des lignes :
Range("AE2").CurrentRegion.Offset(2, 0).Delete 'efface d'éventuelles anciennes données
Range("AH2").CurrentRegion.Offset(2, 0).Delete 'efface d'éventuelles anciennes données
Range("AK2").CurrentRegion.Offset(2, 0).Delete 'efface d'éventuelles anciennes données
Range("AN2").CurrentRegion.Offset(2, 0).Delete 'efface d'éventuelles anciennes données
Jusqu'à la fin du code :
Le code transfère les données des colonnes C, G, J, de la feuille "Données!" dans les colonnes AE, AF, AH, AI, et AK, AL, pour ensuite séparer les femmes des hommes et trier du plus grand au plus petit.
C'est à peu près ce que je te demande sauf que dans les cas plus haut il n'y a qu'une colonne à transférer, séparer et trier, alors que toi tu en as trois.
Tu as créé le code MemePointage il y a quelques jours que tu as relié aux boutons de chacune des semaines afin qu'il soit activé en même temp que le code Standar.
Un grand merci. Je n'y arriverai jamais sans ton aide.
Désolé, mais je ne comprends toujours pas ce qu'il faut faire;
Sans doute la fatigue de la semaine....
Tu écris :
C'est à peu près ce que je te demande sauf que dans les cas plus haut il n'y a qu'une colonne à transférer, séparer et trier, alors que toi tu en as trois.
Quels cas plus haut ?
J'ai dû me tromper en te demandant ton fichier ''principal". Alors, je corrige : envoie-moi le fichier sur lequel il faut que je travaille car, apparemment, le dernier fichier envoyé fonctionne...
Et dis-moi ce qu'il faut que la macro fasse sur ce fichier.
Bye !
Bonjour gmb,
Ne t'en fais pas, des fois j'ai de la difficulté à me comprendre moi-même.
Impossible de t'envoyer mon fichier sur lequel je travaille. Il est trop volumineux pour le Forum, même zippé. Je l'ai déjà essayé.
Pour ce qui est du fichier en pièce jointe (Classeur1V3, les infos dans le fichier devraient être suffisantes pour exécuter ton code correctement, mais il ne fonctionne vraiment pas. En ouvrant le fichier, passe à la feuille Sem.01 et clique sur le bouton appelé "Boutons". Ce bouton devrait activer ton code "Transfert", mais le code me donne une erreur.
Peut être Est-ce parce que le bouton est situé sur une autre feuille que celle qui contient les données.
Comme je te l'ai demandé dans mon message précédent, j'aimerais pouvoir activer ton code avec le bouton "Transférer" de chacune des semaines, plutôt que d'avoir deux bouton. Tu as réussi avec ton code "MemePointage".
Concernant "Sauf que dans le cas plus haut", je fais allusion au code créé par l'un de tes confrères qui transfère les données à partir d'une seule colonnes. EX : Colonne J, "Pointage hebdo", ainsi que les NOMS de la colonne C. Les données de la colonne J sont dans cette seule colonne pour être transférées dans deux colonnes, AF ou AI, selon si c'est une femme ou un homme. Alors que les NOMS de la colonne C suivent dans les colonnes AE et AH pour être triées dans un ordre descendant.
Alors que les données que je te demande de transférer se situent dans trois colonnes différentes ( M, N, O, ainsi que les NOMS de la colonne C à être transférées dans deux colonnes AR ou AU selon si c'est une femme ou un homme. Alors que les NOMS de la colonne C suivent dans les colonnes AQ et AT. Ensuite elles doivent être trié en partant du plus haut pointage jusqu'au plus petit dans chacune des colonnes, femmes et hommes.
J'espère avoir été assez clair dans mes explications. Sinon, on oublie ça. Je ne voudrais pas te faire perdre plus de temps.
Merci encore pour ton aide.
golfeur01 a écrit :Peut être Est-ce parce que le bouton est situé sur une autre feuille que celle qui contient les données
C'est bien ça.
Comme la macro de ce bouton ne travaille que sur la feuille "Données", j'ai fait en sorte que tu puisses mettre ce bouton dans n'importe quelle feuille.
Mais, si j'ai bien compris (pas encore sûr) tu veux enchainer les 3 macros à partir d'une feuille quelconque Sem (en fait, je n'ai pu tester qu'avec la feuille Sem.01 car si on part de la feuille Sem.02, ça plante car il manque la feuille Sem.03)
* la première,""Standar", qui n'est pas de moi et qui ramène les données de la feuille de départ (Sem.01) dans la feuille "Données"
* la deuxième MemePointage", de moi, qui remplit le tablelau bleu de la feuille "Données, colonnes "AA:AB"
* et la troisième, "Transfert" qu'on peut déclencher isolément à partir du bouton "Bouton"
C'est ce que j'ai fait en ajoutant une instruction à la fin de la première macro. Tu cliques sur "Transférer" dans une feuille Sem et les 3 macros s'enchainent.
OK ?
Bye !
Bonjour gmb,
Merci mille fois. Ça fonctionne parfaitement. Je ne sais pas ce que j'aurais pu faire sans toi.
Merci pour ton aide et surtout pour ta patience. C'est tout en ton honneur.
Je ferme le dossier.
Bonne journée