XL pour MAC Réaffectation (très complexe) de données dans des lignes supplémentaires générées par Macro

didcac

XLDnaute Occasionnel
Bonjour à tous,
J’ai besoin de redistribuer des colonnes de données sur un nombre précis de nouvelles lignes, à un emplacement là aussi précis.
Il s’agit d’une base structurée, avec un nombre égal de colonnes correspondant à chaque fois à une personne différente (prénom, nom, téléphone, etc).
Je vous joins le fichier car ce sera plus parlant. C'est une simulation qui montre exactement ce que je souhaite obtenir (une fois la Macro lancée, et pour une première fiche ; il faudra exécuter l'opération jusqu'à la dernière fiche, de façon répétitive).

Je vais essayer de vous expliquer les choses, mais n"hésitez pas à me demander des précisions si ce n'est pas très clair.

En résumé simpliste, cela revient à redistribuer (entre autres) :
Mr A (22 colonnes !) Mlle B (22 colonnes !) Mme C (22 colonnes !)
à redistribuer en colonne ETX et suivantes :
Mr A
Mlle B
Mme C
(Dans la même colonne les uns les autres, et sur 28 nouvelles lignes générées par la Macro !)

Compte tenu de la complexité, je suppose qu’il faudra du VBA. C'est une sorte d'opération en boucle à effectuer par Macro.

Je ne sais pas utiliser les termes informatiques pour vous expliquer, mais je vais essayer de résumer l’action de la Macro souhaitée, visant à copier toutes les données (à chaque fois, une fiche derrière l'autre) en :
ETX > EUS
ou
EYD
ou
EYF > EYJ
ou
EYL > EYN
(selon le type de données traitées)

Il s’agit pour commencer de dupliquer une des lignes de la Base, la ligne N, puis d’effectuer 5 routines consécutives (similaires dans l'esprit) sur un ensemble de colonnes qui se suivent :

A) Rubriques dénommées « Assist CE » (pour Assistante CE) :

1) sur la ligne N + 1 : 22 colonnes, de EA à EV + EVZ, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS) + EYD (pour la colonne seule EVZ)

2) sur la ligne N + 2 : 22 colonnes, de EW à FR + EWA, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS) + EYD

3) sur la ligne N + 3 : 22 colonnes, de FS à GN + EWB, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS) + EYD

>>>>>>> Etc, etc, toujours pareil 28 fois (les « paquets » de 22 colonnes se suivent) :

28) sur la ligne N + 28 : 22 colonnes, de AAW à ABR + EXA, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS) + EYD



B) Rubriques dénommées « Secrét » (pour Secrétaire, principe identique au précédent) :

1) sur la ligne N + 29 : 22 colonnes, de ABS à ACN + EXB, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS) + EYD

2) sur la ligne N + 30 : 22 colonnes, de ACO à ADJ + EXC, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS) + EYD

3) sur la ligne N + 31 : 22 colonnes, de ADK à AEF + EXD, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS) + EYD

>>>>>>> Etc, etc, toujours pareil 28 fois :

28) sur la ligne N + 56 : 22 colonnes, de AYO à AZJ + EYC, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS) + EYD



C) Rubriques dénommées « Ont quitté Sté » (pour Salariés qui ont quitté la société, principe identique au précédent, sans la cellule « note ») :

1) sur la ligne N + 57 : 22 colonnes, de AZK à BAF, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS)

2) sur la ligne N + 58 : 22 colonnes, de BAG à BBB, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS)

3) sur la ligne N + 59 : 22 colonnes, de BBC à BBX, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS)

>>>>>>> Etc, etc, toujours pareil 28 fois :

28) sur la ligne N + 84 : 22 colonnes, de BWG à BXB, sont à copier respectivement en ETX (22 colonnes jusqu’à EUS)



D) Rubriques dénommées « Lieux orga » (pour Lieux d’organisation, principe identique au précédent, encore sans la cellule « note », mais avec seulement 5 colonnes et cible en EYF:EYJ) :

1) sur la ligne N + 85 : 5 colonnes, de BXC à BXG, sont à copier respectivement en EYF (5 colonnes jusqu’à EYJ)

2) sur la ligne N + 86 : 5 colonnes, de BXH à BXL, sont à copier respectivement en EYF (5 colonnes jusqu’à EYJ)

3) sur la ligne N + 87 : 5 colonnes, de BXM à BXQ, sont à copier respectivement en EYF (5 colonnes jusqu’à EYJ)

>>>>>>> Etc, etc, toujours pareil 28 fois :

28) sur la ligne N + 112 : 5 colonnes, de CCH à CCL, sont à copier respectivement en EYF (5 colonnes jusqu’à EYJ)



E) Rubriques dénommées « Obs » (pour Observations, principe identique au précédent, encore sans la cellule « note », mais avec seulement 3 colonnes et cible en EYL:EYN, sur 600 lignes) :

1) sur la ligne N + 113 : 3 colonnes, de CCQ à CCS, sont à copier respectivement en EYL (3 colonnes jusqu’à EYN)

2) sur la ligne N + 114 : 3 colonnes, de CCT à CCV, sont à copier respectivement en EYL (3 colonnes jusqu’à EYN)

3) sur la ligne N + 115 : 3 colonnes, de CCW à CCY, sont à copier respectivement en EYL (3 colonnes jusqu’à EYN)

>>>>>>> Etc, etc, toujours pareil 600 fois :

600) sur la ligne N + 712 : 3 colonnes, de ETT à ETV, sont à copier respectivement en EYL (3 colonnes jusqu’à EYN)
NB : pour ces données « Obs », la logique reste la même, mais les libellés de rubriques sont formulés différemment (sans conséquence ni importance).

Ainsi, au final, chaque ligne traitée génèrera uniformément 712 lignes.

Puis, évidemment, même opération, avec la duplication de la ligne suivante de la Base, soit désormais la ligne N + 713 (après l’insertion des précédentes). Et ainsi de suite, sur 3.700 lignes/fiches !!!

Si le nombre généré dépasse la capacité d’EXCEL, cela peut être réalisé sur de nombreuses feuilles distinctes.
Il suffira de me préciser le nombre de traitements individuels maximal par feuille.

Le côté récurrent du processus permettra peut-être à certains d’entre vous, grands connaisseurs du VBA, de réussir cette Macro.
Je l’espère vivement, car je suis bien embêté par cette adaptation que je ne sais pas automatiser moi-même, étant très incompétent.


Je joins la feuille Test EXCEL avec 1 seule fiche-exemple partiellement remplie de données (évidemment fausses par souci de confidentialité),
Le plus simple est de la dupliquer, pour travailler dessus, pour conserver l’original qui contient les résultats « attendus » (moyen de vérification que la Macro marche bien) eu égard à la fiche traitée.

Je vous remercie par avance d’avoir l’amabilité de vous pencher sur ma problématique !!

NB : Pour faciliter la programmation de la routine, j’ai mis l’amplitude maximale de 28 individus (atteinte une dizaine de fois seulement sur 3.700 fiches, dans la pratique), mais si vous parvenez à tester pour déterminer qu’il n’y en a que 11 réellement sur une fiche lambda, vous pouvez parfaitement ne générer que 11 lignes, cela économisera de la place (éventuellement).

Merci, et à très bientôt j’espère !
Cordialement
 

Pièces jointes

  • BASE Test (Réaffectation de lignes).xlsx
    664.8 KB · Affichages: 13

didcac

XLDnaute Occasionnel
Bonjour,
Parmi les brillants intervenants du Forum, personne ne voit comment écrire la Macro adéquate ?
C'est plus compliqué que prévu, ou bien mes explications ne sont pas assez précises ?
En principe, je vous ai mis tous les noms de colonnes où intervenir, et comme c'est toujours le même principe, peut-être que si vous parvenez à créer le premier canevas, le reste suivra (par répétition) ?

Merci d'avoir l'amabilité de jeter un oeil sur le sujet, car je suis un peu (beaucoup) bloqué...
Cordialement
 

didcac

XLDnaute Occasionnel
Bonjour à tous,
Une âme charitable peut-elle avoir l'amabilité de m'aider à créer cette Macro ?
Je n'ai aucune réponse depuis 3 jours, alors que c'est probablement assez simple pour celui qui s'y connaît.
J'ai eu le tort de mettre beaucoup de données, pensant bien faire, mais dans la pratique, cela revient à coller 22 colonnes dans un emplacement prédéfini de 22 colonnes (avec création de lignes). Le tout en boucle.
N'hésitez pas à me poser les questions nécessaires à votre compréhension.
Merci de bien vouloir m'apporter vos lumières tant attendues....
 

didcac

XLDnaute Occasionnel
Bonjour à tous,
Une âme charitable peut-elle avoir l'amabilité de m'aider à créer cette Macro ?
Je n'ai aucune réponse depuis 3 jours, alors que c'est probablement assez simple pour celui qui s'y connaît.
J'ai eu le tort de mettre beaucoup de données, pensant bien faire, mais dans la pratique, cela revient à coller 22 colonnes dans un emplacement prédéfini de 22 colonnes (avec création de lignes). Le tout en boucle.
Merci de bien vouloir m'apporter vos lumières tant attendues....
 

Discussions similaires

Statistiques des forums

Discussions
291 698
Messages
1 917 204
Membres
179 612
dernier inscrit
Yug
Haut Bas