rELANCE COMMANDE FOURNISSEUR VBA

  • Initiateur de la discussion Initiateur de la discussion jpp1961
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jpp1961

XLDnaute Junior
Bonjour,
J'ai un tableau de suivi de commande fournisseurs. Afin de pouvoir faire les relances j'aimerai pouvoir récupérer grace à 3 msgbox:

msgbox 1
nombre Total de commandes.(Nbre de valeur unique de la plage B9 à B10000)
msgbox2
les fournisseurs en retard et les Numéros de commandes.
en retard correspond à une valeur supérieur à 0 de la plage H9 à 10000 par rapport à la date édition en F1
msgbox3
les fournisseurs les Numéros de commandese de commandes qui vont etre livrées.dans les 8 jours à venir
Date edition - 8 jours

Le tableau comprend:
en F1 la date d'édition
la ligne 8 les en tete de colonne
Colonne B les Numéro de Cde
Colonne C Date prévue ( de livraison)
Colonne H Reste à livrer
Colonne K le Fournisseur.

Un début de piste serait le bien venu, ou solution compléte encore mieux
TOUTE SOLUTION OU IDEE JE SUIS PRENEUR
Je vous joint un fichier et par avance merci à tous
 

Pièces jointes

Re : rELANCE COMMANDE FOURNISSEUR VBA

Bonjour le fil, bonjour le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous :
Code:
Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim msg As String 'déclare la variable msg (MeSsaGe)
Dim msg1 As String 'déclare la variable msg1 (MeSsaGe 1)
 
Set pl = Range("B9:B" & Cells(Application.Rows.Count, 2).End(xlUp).Row) 'définit la plage pl (cellules éditées de la colonne B en commençant à la ligne 9)
MsgBox Application.WorksheetFunction.CountA(pl), vbOKOnly, "Total Commandes" 'message affichant le total des commandes
Set pl = pl.Offset(0, 2) 'redéfinit la plage pl (colonne D)
 
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    'condition : si la date est inférieure à la date d'édition et si la cellule de la colonne H est positive
    If cel.Value < Range("F1").Value And cel.Offset(0, 4).Value > 0 Then
        Range(Cells(cel.Row, 1), Cells(cel.Row, 15)).Interior.ColorIndex = 3 'colore la ligne de rouge
        msg = msg & cel.Offset(0, 7).Value & " / " & cel.Offset(0, -2).Value & Chr(10) 'définit la variable msg (le texte du message)
    End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
If msg <> "" Then MsgBox msg, vbOKOnly, "Commandes en retard" 'si le texte du message n'est pas vide, affiche le message des commandes en retard
pl.EntireRow.Interior.ColorIndex = xlNone 'enlève les couleurs
 
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    'condition : si la différence date-date d'édition est positive et inférieure ou égale à 8
    If cel.Value - Range("F1").Value > 0 And cel.Value - Range("F1").Value <= 8 Then
        Range(Cells(cel.Row, 1), Cells(cel.Row, 15)).Interior.ColorIndex = 4 'colore la ligne en vert
        msg1 = msg1 & cel.Offset(0, 7).Value & " / " & cel.Offset(0, -2).Value & Chr(10) 'définit la variable msg1 (le texte du message)
    End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
If msg1 <> "" Then MsgBox msg1, vbOKOnly, "Commandes livrées sous 8 jours" 'si le texte du message n'est pas vide, affiche le message des commandes livrées sous 8 jours
pl.EntireRow.Interior.ColorIndex = xlNone 'enlève les couleurs
End Sub
 

Pièces jointes

Re : rELANCE COMMANDE FOURNISSEUR VBA

Robert,
le principe d'affichage du msgbox et super
Le problème et qu'il prend en compte le nombre de valeur (ou ligne).
Une commande peux comporter plusieurs postes. Dans le tableau excel dans la colonne "Numéro de commande" il peut donc y avoir 1, 2, 3 4...ligne avec le meme numéro.
Le nbre de commande doit etre en faite le nombre de valeur unique dans cette colonne.

Pour le nombre de commande en retard .

Le msgbox affiche en faite: le fournisseur l le numero de commandes de toutes les lignes en retard. Si j'ai un numero de commande avec dix postes il va m'afficher 10 fois le fournisseur et numero de commande.
J'aurai souhaité une seul ligne avec fournisseur et n) de commande.

Est-ce possible???
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
20
Affichages
716
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
503
Réponses
7
Affichages
722
Réponses
4
Affichages
549
Réponses
12
Affichages
1 K
Réponses
2
Affichages
759
Réponses
3
Affichages
486
Retour