BonsoirBonjour à tous,
Je souhaite convertir la formule du fichier en PJ en Macro.
La formule se trouve dans la case 2 de la colonne M (feuille "Données Excel")
Merci de votre aide précieuse
Sub VotreNomMacro()
Dim DerniereLigne As Long
Dim i As Long
DerniereLigne = Cells(Rows.Count, "A").End(xlUp).Row ' Supposant que les données sont dans la colonne A, ajustez si nécessaire
For i = 2 To DerniereLigne ' Supposant que les données commencent à la ligne 2
If IsEmpty(Range("ExtractionSAP[" & i & "]")) Then
' Faites quelque chose si la cellule est vide
' ...
ElseIf Range("Type[" & i & "]") = "Concentré" Et [@[Durée de stockage]] >= (Application.WorksheetFunction.Index(Feuilles("Facturation").Range("D:D"), Application.WorksheetFunction.Match([@Client] & [@[Type]], Feuilles("Facturation").Range("B:B") & Feuilles("Facturation").Range("C:C"), 0))) Then
' Mettez en œuvre la condition pour le type Concentré
' ...
ElseIf Range("Type[" & i & "]") = "Vrac" Et [@[Durée de stockage]] >= (Application.WorksheetFunction.Index(Feuilles("Facturation").Range("D:D"), Application.WorksheetFunction.Match([@Client] & [@[Type]], Feuilles("Facturation").Range("B:B") & Feuilles("Facturation").Range("C:C"), 0))) Then
' Mettez en œuvre la condition pour le type Vrac
' ...
ElseIf Range("Type[" & i & "]") = "Composant" Et [@[Durée de stockage]] >= (Application.WorksheetFunction.Index(Feuilles("Facturation").Range("D:D"), Application.WorksheetFunction.Match([@Client] & [@[Type]], Feuilles("Facturation").Range("B:B") & Feuilles("Facturation").Range("C:C"), 0))) Then
' Mettez en œuvre la condition pour le type Composant
' ...
ElseIf [@[Durée de stockage]] < (Application.WorksheetFunction.Index(Feuilles("Facturation").Range("D:D"), Application.WorksheetFunction.Match([@Client] & [@[Type]], Feuilles("Facturation").Range("B:B") & Feuilles("Facturation").Range("C:C"), 0))) Then
' Mettez en œuvre la condition lorsque [@[Durée de stockage]] est inférieur à la valeur correspondante
' ...
Else
' Mettez en œuvre d'autres conditions ou actions ici
' ...
End If
Next i
End Sub
Bonjour,Bonsoir
une proposition
NB : remplacer 'Facturation' par le nom de la feuille appropriée où se trouvent vos données de facturation.VB:Sub VotreNomMacro() Dim DerniereLigne As Long Dim i As Long DerniereLigne = Cells(Rows.Count, "A").End(xlUp).Row ' Supposant que les données sont dans la colonne A, ajustez si nécessaire For i = 2 To DerniereLigne ' Supposant que les données commencent à la ligne 2 If IsEmpty(Range("ExtractionSAP[" & i & "]")) Then ' Faites quelque chose si la cellule est vide ' ... ElseIf Range("Type[" & i & "]") = "Concentré" Et [@[Durée de stockage]] >= (Application.WorksheetFunction.Index(Feuilles("Facturation").Range("D:D"), Application.WorksheetFunction.Match([@Client] & [@[Type]], Feuilles("Facturation").Range("B:B") & Feuilles("Facturation").Range("C:C"), 0))) Then ' Mettez en œuvre la condition pour le type Concentré ' ... ElseIf Range("Type[" & i & "]") = "Vrac" Et [@[Durée de stockage]] >= (Application.WorksheetFunction.Index(Feuilles("Facturation").Range("D:D"), Application.WorksheetFunction.Match([@Client] & [@[Type]], Feuilles("Facturation").Range("B:B") & Feuilles("Facturation").Range("C:C"), 0))) Then ' Mettez en œuvre la condition pour le type Vrac ' ... ElseIf Range("Type[" & i & "]") = "Composant" Et [@[Durée de stockage]] >= (Application.WorksheetFunction.Index(Feuilles("Facturation").Range("D:D"), Application.WorksheetFunction.Match([@Client] & [@[Type]], Feuilles("Facturation").Range("B:B") & Feuilles("Facturation").Range("C:C"), 0))) Then ' Mettez en œuvre la condition pour le type Composant ' ... ElseIf [@[Durée de stockage]] < (Application.WorksheetFunction.Index(Feuilles("Facturation").Range("D:D"), Application.WorksheetFunction.Match([@Client] & [@[Type]], Feuilles("Facturation").Range("B:B") & Feuilles("Facturation").Range("C:C"), 0))) Then ' Mettez en œuvre la condition lorsque [@[Durée de stockage]] est inférieur à la valeur correspondante ' ... Else ' Mettez en œuvre d'autres conditions ou actions ici ' ... End If Next i End Sub
A+