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,
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 SubAh d'accord ! Merci beaucoup !!!