Mise en forme de données

Bonjour à tous !

Je fais appel à ce forum car j'ai besoin d'aide pour coder différentes manipulations de données.

Ci-joint vous trouverez le fichier avec les donnes à manipuler.

Sur la feuille "Presse" je dispose des données. Sur la feuille "Info" ce sont les boutons pour activer lancer les macros.

J'ai déjà une première macro qui met en forme les données dans une nouvelle feuille nommé "résultat".

1) Il faudrait modifier le code de ma macro pour que dans la feuille "résultat" je n'ai pas uniquement le numéro de la semaine mais aussi l'année. C'est cette partie là du code.

' Garder à partir de la colonne K que le numéro de la semaine

For I = 11 To Cells(1, Columns.Count).End(xlToLeft).Column

Cells(1, I) = Split(Cells(1, I))(1) * 1

Next I

2) Je veux créer une nouvelle macro qui part de mes données de la feuille "Résultat". Tout d'abord il faudrait donc faire un copier coller de cette feuille vers une nouvelle feuille nommée "Répartition".

2) Je voudrai faire une répartition de mes données que j'ai à partir de la colonne K. En fait dans certaine colonne des semaines j'ai un chiffre. Suivant la colonne périodicité je dois repartir suivant les semaines ce chiffre. Donc par exemple si j'ai dans la colonne périodicité "Mensuel" je dois prendre le chiffre et la première semaine en prendre 50% , 30% 2ème semaine, 15% 3ème, 5% 4ème.

Voici les différentes contraintes :

QUOTIDIENNE HEBDOMADAIRE : Pas de répartition (100% 1ère semaine) (Ne rien faire)

BIMESTRIEL-HORS SERIE - MENSUEL- TRIMESTRIEL- SUPPLEMENT : 50% 1ère semaine, 30% 2ème, 15% 3ème, 5% 4ème

BIMENSUEL : 60% 1ère semaine, 40% 2ème

Dans l'onglet "exemple 1" : J'ai mis 3 exemple : la ligne en gris provient de l'onglet résultat (c'est un rappel) et la ligne en dessous c'est ce que je voudrait obtenir après répartition. (Il faudrait que la macro conserve que cette ligne après répartition).

Attention parfois il faut additionner plusieurs répartition car elles se chevauchent sur les semaines (exemple Bimensuel de ma feuille "exemple 1")

3) Je voudrai créer une autre macro qui utilise la nouvelle feuille "répartition" qui fait un tableau croisé dynamique dans une nouvelle feuille nommée "TCD".

Avec comme étique de colonne la marque, étiquette de ligne la somme des valeurs et dans somme des valeurs la somme de chaque semaine. Dans la feuille "Exemple 2" j'y ai mis un exemple de tableau croisé dynamique.

J'espère avoir été assez clair ! Je reste disponible pour toutes vos questions !

Merci d'avance pour toutes vos réponses !

Cordialement,

36excelp-v2v1.xlsm (226.73 Ko)

Bonjour

Je ne me suis pas occupé du TCD (je n'y connais rien)

Merci beaucoup pour ton aide !

Juste une dernier question comment faire pour mettre un fond de couleur aux cellules qui ont une valeur. J'ai essayer comme ceci mais ça ne marche pas !

For J = 2 To NbLg

Select Case UCase(Range("I" & J))

Case "QUOTIDIENNE", "HEBDOMADAIRE"

' Pas de répartition (100% 1ère semaine)

Case "BIMESTRIEL", "HORS SERIE", "MENSUEL", "TRIMESTRIEL", "SUPPLEMENT"

' 50% 1ère semaine, 30% 2ème, 15% 3ème, 5% 4ème

For I = NbCl To 11 Step -1

If Cells(J, I) <> 0 Then

Nb = Cells(J, I)

Cells(J, I) = Nb / 2

Cells(J, I + 1) = Cells(J, I + 1) + (Nb * 30) / 100

Cells(J, I + 2) = Cells(J, I + 2) + (Nb * 15) / 100

Cells(J, I + 3) = Cells(J, I + 3) + (Nb * 5) / 100

End If

Next I

Case "BIMENSUEL"

'60% 1ère semaine, 40% 2ème

For I = NbCl To 11 Step -1

If Cells(J, I) <> 0 Then

Nb = Cells(J, I)

Cells(J, I) = (Nb * 60) / 100

Cells(J, I + 1) = Cells(J, I + 1) + (Nb * 40) / 100

End If

Next I

For I = NbCl To 11 Step -1

If Cells(J, I) <> 0 Then Cells(J, I).Interior.ColorIndex = 41

Next I

End Select

Next J

End Sub

Bonjour

Il faut placer ta boucle après le End Select

          End If
        Next I
   End Select
    For I = NbCl To 11 Step -1
      If Cells(J, I) <> 0 Then Cells(J, I).Interior.ColorIndex = 41
    Next I
  Next J
End Sub

Ah d'accord ! Merci beaucoup !!!

Rechercher des sujets similaires à "mise forme donnees"