Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion jeanphi
  • 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 !

jeanphi

XLDnaute Occasionnel
bonjour le forum

j'utilise dans mon classeur la macro ci dessous pou permettre de relancer les acheteurs:
actuellement cette macro me permet si la valeur de la colonne E est = à "Traitement ACHATS ou Validation ACHATS" et que la valeur de la colonne G est = à "Oui" de relancer

Je souhaite faire en plus deux macros supplémentaires:
- l'une où la colonne E est = à "Traitement ACHATS ou Validation ACHATS" , où la valeur de la colonne G est = à "Oui" et la colonne R (numéro de commande) est vide

-l'autre où la colonne E est = à "Traitement ACHATS ou Validation ACHATS" , où la valeur de la colonne G est = à "Oui", la colonne R (numéro de commande) est pleine mais la colonne M (date livraison) est vide


Quelqu'un peut t'il m'aider SVP 🙂
merci



Sub relance_Achat()

Dim cell As Range

Application.ScreenUpdating = False
With Sheets("Relance")
.Range("A4" & ":" & "H" & .Range("G65536").End(xlUp).Row + 1).Clear
End With

For Each cell In Sheets("FEB").Range("E7:E" & Sheets("FEB").Range("E65536").End(xlUp).Row)

If cell.Value = "Validation ACHATS" Or cell.Value = "Traitement ACHATS" Then
If cell.Offset(0, 2) = "Oui" Then
cell.Offset(0, -3).Copy Sheets("Relance").Range("A" & Sheets("Relance").Range("A65536").End(xlUp).Row + 1)
cell.Offset(0, -1).Copy Sheets("Relance").Range("B" & Sheets("Relance").Range("B65536").End(xlUp).Row + 1)
cell.Copy Sheets("Relance").Range("C" & Sheets("Relance").Range("C65536").End(xlUp).Row + 1)
cell.Offset(0, 1).Copy Sheets("Relance").Range("D" & Sheets("Relance").Range("D65536").End(xlUp).Row + 1)
cell.Offset(0, 8).Copy Sheets("Relance").Range("E" & Sheets("Relance").Range("E65536").End(xlUp).Row + 1)
cell.Offset(0, 9).Copy Sheets("Relance").Range("F" & Sheets("Relance").Range("F65536").End(xlUp).Row + 1)
cell.Offset(0, 10).Copy Sheets("Relance").Range("G" & Sheets("Relance").Range("G65536").End(xlUp).Row + 1)
cell.Offset(0, 11).Copy Sheets("Relance").Range("H" & Sheets("Relance").Range("H65536").End(xlUp).Row + 1)
End If
End If

Next
Tri_InserLigne
Application.ScreenUpdating = True

End Sub
 

Pièces jointes

Re : relance

Bonsoir jeanphi, le forum

Désolé de ne pas t'avoir répondu sur l'autre fil, mais je n'étais pas là ce week-end.

Pour tes deux nouvelles macro, il suffit de reprendre le code en modifiant les lignes de tests comme ceci.

Pour le 1er cas : R vide

Code:
If cell.Value = "Validation ACHATS" Or cell.Value = "Traitement ACHATS" Then
         If cell.Offset(0, 2) = "Oui" And cell.Offset(0, 13) = "" Then

Pour le 2ème cas : R non vide et M vide

Code:
If cell.Value = "Validation ACHATS" Or cell.Value = "Traitement ACHATS" Then
         If cell.Offset(0, 2) = "Oui" And cell.Offset(0, 8) = "" And cell.Offset(0, 13) <> "" Then

La proprièté Offset(ligne,colonne) te permet de te déplacer par rapport à une cellule déterminée.
Ici les cellules de référence sont dans la colonne E, donc pour tester la cellule de la colonne G (Le Oui) tu restes sur la même ligne et tu te décales de 2 colonnes d'où : cell.Offset(0,2).

Bonne fin de journée
 
- 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
7
Affichages
176
Réponses
4
Affichages
754
Réponses
15
Affichages
784
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…