Affichage de mes informations dans un MsgBox
Bonjour à tous,
J'aimerais créer une MsgBox qui me donne les informations que je veux. Normalement, je lance une macro qui me donne en résultat un fichier qui ressemble à celui ci-joint (mon fichier est trop lourd, j'ai pris qu'une sélection de données). J'aimerais ajouté un MsgBox qui m'affiche les informations suivantes:
1. Combien il y'a de nouvelles références dans la feuille "Articles actives", càd combien d'articles dont la colonne "H" est égale à "S1326".
2. Combien de ces nouvelles références dans la feuille "Articles actives" (les "S1326" en colonne H) dont la colonne E est égale à "A".
3. Combien j'ai de différence de point de réf entre cette semaine et la précédente, càd le nombre de cellules rouge dans la colonne "F".
4.Combien de référence ont été rempli automatiquement, càd combien de ligne verte dans mon tableau.
5. Combien il y'a de références désactivés dans la feuille "Articles Désactivés", càd combien d'articles dont la colonne "H" est égale à "S1326".
J'espère que c'est faisable
Salut Jihane,
Tu n’as pas toujours donné suite à mes messages
Je pense que dans la macro qui créé le tableau que tu nous présentes aujourd’hui, il y a plein d’informations que l’on pourrait récupérer ou du moins qui pourrait nous aider. Je te propose aussi que tu nous fournisses ton fichier - même si tu réduis le nombre de lignes – mais avec macros ; si possible dans une situation « avant lancement ». Ca nous permettra de voir ce que fait ta macro et quelles données seraient récupérables.
A propos, tu voudrais ton MsgBox à la fin de la macro précédente ou par la suite, en la lançant par exemple à l’aide d’un bouton ?
A te relire.
Merci Yvouille de me venir à nouveau en aide
Oui je veux que mon MsgBox soit séparer de ma mmacro et le lancer à l’aide d’un bouton. Puis qu’après la fin de la macro je passe mon fichier à des collègues qui remplissent certaines cellules.
Re,
Yvouille a écrit :Je pense que dans la macro qui créé le tableau que tu nous présentes aujourd’hui, il y a plein d’informations que l’on pourrait récupérer ou du moins qui pourrait nous aider. Je te propose aussi que tu nous fournisses ton fichier - même si tu réduis le nombre de lignes – mais avec macros ; si possible dans une situation « avant lancement ». Ca nous permettra de voir ce que fait ta macro et quelles données seraient récupérables.
Par exemple le code des couleurs ou d'autres informations de ce genre
Amicalement.
Coucou Yvouille,
J'y ai déjà pensé
En gros, la macro qui me génère ce tableau cherche les nouveaux articles de la semaine est les mets dans "Articles actives" en allant chercher (essentiellement avec des recherchev) les colonnes "E","F" et "G" et d'autres que j'ai supprimé de ce fichier pour l'alléger; ensuite dans la colonne "H" on met le numéro de la semaine où est apparu l'article. Puis pour la deuxième feuille "Articles Désactivés" je compare d'autres fichiers excel qui me donnent les articles qui ont disparu et de même en mentionne dans la colonne "H" le nméro de la semaine où ils ont été désactivé. Après je compare les deux colonnes "G" et "F" et à chaque fois que "G" est différente de "F" je met la colonne "G" en rouge avec ce bout de code:
'Comparer les points de référence de la semaine en cours et ceux de la semaine dernière
For i = 2 To Range("G1").End(xlDown).Row
If Cells(i, 6).Text <> Cells(i, 7).Text Then
Cells(i, 6).Interior.ColorIndex = 3
End If
Next i
Enfin, pour les lignes en vert dans "Articles actives": Quand je fais mon tableau colonnes "B","C" et "D" sont vides. Ce que je fais c'est que je compare la feuille "Articles actives" et "Articles désactivés" et s'il y'a eu avant déjà le même article dans une semaine précédente ça le rempli automatiquement avec ce bout de code:
'Remplir les articles qui ont déjà éxisté (de la feuille "articles désactivés")
Application.Calculation = xlCalculationManual
sem = "S" & (Format(Date, "yy\0\0") + DatePart("ww", Date, 2, 2))
NomFic = ("articles" & " " & sem & ".xlsx")
Dim W As Long
Dim Cel As Range
Dim Depart As String
With Workbooks(NomFic).Sheets("articles désactivés")
For W = 2 To .Range("A" & Rows.Count).End(xlUp).Row
Set Cel = Columns("A").Find(what:=.Range("A" & W), LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
' La référence est trouvée on note l'adresse de la cellule
Depart = Cel.Address
Do
' On vérifie si c'est bien "Sem" dans la colonne CH
If Range("H" & Cel.Row) = sem Then
' On prends 3 colonnes (B C D)de la page "articles désactivés"
' Que l'on copie à partir de la colonne B dans la page "articles activés"
.Range("B" & W).Resize(1, 3).Copy Range("B" & Cel.Row)
' On colorie de la colonne B jusqu'à la colonne D dans la page "articles activés"
Range("B" & Cel.Row).Resize(1, 3).Interior.ColorIndex = 4
' Plus la peine de chercher
Exit Do
End If
' Si la colonne L ne correspondait pas on continue à chercher
Set Cel = Columns("A").FindNext(Cel)
' jusqu'à ce que toutes les occurences soient trouvée
Loop While Depart <> Cel.Address
End If
Next W ' Ligne suivante ==> Référence suivante
End With
Application.Calculation = xlCalculationAutomatic
J'envois après mon fichiers aux autres qui remplissent les cases "B", "C" et "D". et après ils me le renvois et à ce moment là que je veux un MsgBox qui me donnent les infos.
J'espère que j'ai été un peu plus claire
J'ai déjà réussi (je crois) à les faire. Il me manque un cas que je n'arrive pas à faire c'est celui où je dois compter le nombre d'articles qui ont à la fois "S1326" dans la colonne "H" et un "A" dans la colonne "E"
Aussi, est-il possible d'avoir toutes les infos d'un coup à la fin de la macro, sans cliquer sur "Ok" pour passer à l'info d'après.
Salut,
J'étais en train de t'écrire un texte pour d'informer que j'avais avancé avec ton travail et que je voulais déjà voir si je partais dans la bonne direction. Mais si mon travail est parfaitement inutile car tu travailles en parallèle, je laisse tomber
Bonne continuation.
Merci pour ton aide Yvouille et j'essaye aussi de m'y mettre.
Ton truc est visiblement plus claire et si j'ai bien compris, tu utilise un userform mais comment tu fais ça j'en sais rien