XL 2010 boucle mise en forme grille de données

spike29

XLDnaute Occasionnel
Bonjour,

Encore débutant en VBA je bloque totalement sur la conversion à plat d'une grille de données à dimensions variable.
En effet, cette mise en forme nécessite la mise en place d'une voir plusieurs boucle For, élément sur lequel je ne suis pas du tout à l'aise.

L'idée est de convertir un certain nombre de valeur d'une grille de manière linéaire dans une seconde feuil de calcul. Au fur et à mesure, d'autres variables vont venir s'incrémenter dans cette conversion à plat.



Pour éviter de me lancer dans de trop longues explications, je vous transmet en PJ un fichier qui illustre et détail l'ensemble de mes besoins.
J'ai essayé de donnée le maximum d'explication dans les deux feuils du document. J'y énonce également la règle de gestion que je vise.

Le résultat attendu de la macro se trouve dans la Feuil "Conversion" ligne 32 à 52 ( j'ai réaliser cette conversion à la main, l'idée est que la macro puisse arriver au même résultat).

Je m'excuse par avance pour la quantité de demande et de détails que présents dans mon fichier mais sans coup de pouce je n'y arriverai clairement pas.
Si des précisions supplémentaires sont nécessaires n'hésitez surtout pas à revenir vers moi.

Merci d'avance

Bonn fin de journée.

Cordialement
 

Pièces jointes

  • TestConversionGrille.xlsx
    23.4 KB · Affichages: 15

spike29

XLDnaute Occasionnel
Bonjour Sousou,

Désolé pour cette réponse tardive je n'ai pas reçu de notification dans ma boite mail.

Top ! Tu as parfaitement répondu à mon besoin , c'est exactement ce que j'avais besoin.

Un grand merci pour ton aide !

Je travail également sur un format de grille légèrement différent de celui qui se trouvait dans mon exemple. Les n° de services sont cette fois-ci empilés les uns sur les autres sur la même colonne.

J'ai en partie adapté ton code qui fonctionne encore une fois à merveille. En revanche je bute sur 3 points :


1) Définir dès qu'il va y avoir un changement de n° de service la mention 'PDS' sur la première n°J concernée.


2) Si colonne "zone" contient 2B1 soustraire à l'heure 1 le seuil horaire que contient la cellule B4 de la Feuil Conversion
If c.Offset(0, -6) = "2B1" Then v8 = c.Offset(0, -5) - Cells(4, 2)

3) Soustraire à l'heure 1 un seuil suivant une condition => Si colonne "zone" contient U1 ou U2.
Par souci de souplesse je fais référence aux variables directement dans la Feuil plutôt que dans le code en cas de changement cela offre plus de possibilité à des utilisateurs
If c.Offset(0, -6) = Cells(7, 2) or Cells(8, 2) Then v8 = c.Offset(0, -5) - Cells(3, 2)

La plupart des essais que je réalise se soldent par un " l'indice n'appartient pas à la sélection".


Si tu pouvais me donner un coup de pouce sur ces points ça serait top :)

En PJ le fichier avec un rappel de mes besoins.

Merci d'avance et bonne fin de journée
 

Pièces jointes

  • TestConversionGrille3.xlsm
    54.5 KB · Affichages: 7

Discussions similaires

Statistiques des forums

Discussions
314 627
Messages
2 111 305
Membres
111 095
dernier inscrit
Ahitos