Macro pour trier des résultats et reconstituer un planning sans les résultats 0

jda22700

XLDnaute Nouveau
Bonjour et merci d'avance si l'un d'entre vous peut m'aider à me sortir cette épine du pied.

J'ai eu l'occasion de travailler des macros il y a quelques décennies... et je m'arrache les cheveux !

Je souhaiterais introduire une macro dans un fichier qui me permettrait, sur la base d'une plage de données contenue dans une feuille 2 (alimentée par des fonctions matricielles faisant référence à des plages de données de la feuille 1), de reconstituer un planning ne reprenant mois par mois que les résultats différents de 0.

Je vous joins mon fichier de travail dans lequel j'ai décrit ma requête en I5 (feuille 2).

Merci et bon week-end.
 

Pièces jointes

  • MATRICE CONTRAT MAINTENANCE test macro.xlsm
    42.6 KB · Affichages: 43

Jack2

XLDnaute Occasionnel
Re : Macro pour trier des résultats et reconstituer un planning sans les résultats 0

Bonjour

A essayer :
Code:
Function ColMois(Mois As String) As Byte
Dim i As Integer
LesMois = Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOÛT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DÉCEMBRE")
For i = 0 To 11
    If Mois = LesMois(i) Then
        ColMois = i + 3
        Exit Function
    End If
Next i
End Function

Sub Planning()
Dim i As Long
Dim ShBas As Worksheet
Dim ShPl As Worksheet
Dim Col As Byte
Dim Lig As Integer

Set ShBas = Sheets("Base contrat")
Set ShPl = Sheets("Planning de passage")

For i = 3 To 64 'ShBas.Cells(Rows.Count, 10).End(xlUp).Row formule si rien dans cellules à partir de 139
    If ShBas.Cells(i, 10) <> 0 And ShBas.Cells(i, 13) <> "" Then
        Col = ColMois(CStr(ShBas.Cells(i, 13)))
        Lig = CInt(ShBas.Cells(i, 26)) + 5
        ShPl.Cells(Lig, Col) = ShBas.Cells(i, 2)
    End If
Next i
End Sub

Je vais voir si on peut se passer de la fonction.

EDIT Le fichier avec les explications au cas où

A+ Jack2
 

Pièces jointes

  • jda22700.xls
    84 KB · Affichages: 34
Dernière édition:

jda22700

XLDnaute Nouveau
Re : Macro pour trier des résultats et reconstituer un planning sans les résultats 0

Merci Jack2
j'ai intégré le code mais je n'ai sans doute pas fait comme il fallait. Pour se faire, je suis allée dans VisualBasic, Outils, macro, donné le nom Planning et cliqué sur créer, puis remplacé les deux lignes existantes par votre code. Ensuite quand je lance la macro, j'obtiens ce message d'erreur exe 1004 et mise en surbrillance de la ligne de commande ShPl.Cells(Lig, Col) = ShBas.Cells(i, 2).

Bon maintenant, je vais essayer de comprendre votre code ! c'est pas gagné !:):)
Bonne soirée et bon week-end à vous.
 

Jack2

XLDnaute Occasionnel
Re : Macro pour trier des résultats et reconstituer un planning sans les résultats 0

Bonsoir jda22700,

C'est la mi-temps. Ci-joint quelques explications et dans mon post de 19h06 le fichier Excel avec la macro.

A+ Jack2
 

Pièces jointes

  • Explicatif.doc
    38 KB · Affichages: 33
  • Explicatif.doc
    38 KB · Affichages: 36
  • Explicatif.doc
    38 KB · Affichages: 36

jda22700

XLDnaute Nouveau
Re : Macro pour trier des résultats et reconstituer un planning sans les résultats 0

Bonjour Jack2 et merci de prendre du temps malgré l'actu footballistique !:eek:
Alors résultat du match à la hauteur de vos espérances ?
Oui, je n'ai vu le fichier qu'après vous avoir répondu.

Et selon ce que je vois, cela ne correspond à exactement à ce que je souhaiterais obtenir. Car je souhaiterais que les cellules dont le résultat = 0 soient supprimées afin d'obtenir un planning plus ramassé et plus aisé à imprimer et que donc les celulles avec un résultat différent de 0 soient remontées les unes après les autres et que si possible le planning soit géré sur deux groupes l'un au dessus de l'autre : 6 mois puis en dessous 6 mois comme dans l'exemple présenté dans mon fichier initial... C'est compliqué compliqué compliqué pour mon cerveau de quinqua !:eek:

Bonne journée à vous ! Reposez-vous avant le match de ce soir !
 

Jack2

XLDnaute Occasionnel
Re : Macro pour trier des résultats et reconstituer un planning sans les résultats 0

Bonjour jda22700,

Dans le fichier joint, dans le module1, la procédure Planning remplit par semestre dans les lignes 6 à 126. On peut après transférer ces données dans le tableau qui débute en C140.

Je ne l'ai pas fait, car je pense que tu souhaites directement transférer en C140 dans le tableau "ramassé". Pour cela, utiliser la procédure Planning_Ramassé dans le module2

J'espère que cela correspond à ta demande, sinon on reprend.

A+ Jack2
 

Pièces jointes

  • jda22700_2.xls
    93 KB · Affichages: 36

jda22700

XLDnaute Nouveau
Re : Macro pour trier des résultats et reconstituer un planning sans les résultats 0

Bonjour Jack2

Bien reçu ton message et t'en remercie grandement.
Grande marée aujourd'hui donc je pars chasser la crevette. Je regarde tes macros kdo en rentrant !
Et te tiens au courant.
Bonne journée. A plus tard donc. JDA22700
 

Discussions similaires

Statistiques des forums

Discussions
312 214
Messages
2 086 311
Membres
103 175
dernier inscrit
abcc