Je souhaite après un export, identifier les engagements qui seraient associés à deux taux de TVA différents (en l'occurrence 5,5 et 20).
Les engagements uniquement à 5,5 ou uniquement à 20 ne me posent pas de problème.
Je mets en pièce jointe un exemple. En jaune sont les engagements que je souhaite faire ressortir avec ladite formule.
Si vous pouviez me donner la ou les formules à associer ou bien m'aiguiller je vous en serais très reconnaissant.
J'ai bien l'impression que ça fonctionne sur l'exemple donné malheureusement je n'arrive pas à le reproduire sur mon fichier original de 17287 ligne ça ne fonctionne plus. (à moins que ce ne soit un temps de traitement, excel rame)
Sommes nous d'accord que pour une utilisation jusqu'à la 17827eme ligne la formule de la MFC deviendrait :
Et est-ce qu'il y a des manipulations particulières à réaliser dans la MFC hormis ; nouvelle règle, utiliser une formule pour déterminer ... , inscrire la règle, choisir la plage, et choisir le format ?
Public d As Object 'mémorise la variable
Function MFC(c As Range) As Boolean
MFC = d.exists(c & Chr(1) & 5.5) And d.exists(c & Chr(1) & 20)
End Function
Sub Creer_MFC()
Dim tablo, i&
With Feuil1
Application.ScreenUpdating = False
.[A:F].FormatConditions.Delete 'RAZ
Set d = CreateObject("Scripting.Dictionary")
tablo = .UsedRange.Resize(, 6) 'matrice, plus rapide
For i = 1 To UBound(tablo)
d(tablo(i, 1) & Chr(1) & tablo(i, 2)) = ""
Next
.[A:F].FormatConditions.Add xlExpression, Formula1:="=MFC($A1)"
.[A:F].FormatConditions(1).Interior.Color = RGB(189, 215, 238)
End With
End Sub
La macro Creer_MFC est lancée pat les macros Workbook_Open et Worksheet_Change, donc à l'ouverture du fichier et quand on modifie la feuille.
Pour tester la durée d'exécution j'ai créé le 2ème fichier avec 29000 lignes.
Public d As Object 'mémorise la variable
Function MFC(c As Range) As Boolean
MFC = d.exists(c & Chr(1) & 5.5) And d.exists(c & Chr(1) & 20)
End Function
Sub Creer_MFC()
Dim tablo, i&
With Feuil1
Application.ScreenUpdating = False
.[A:F].FormatConditions.Delete 'RAZ
Set d = CreateObject("Scripting.Dictionary")
tablo = .UsedRange.Resize(, 6) 'matrice, plus rapide
For i = 1 To UBound(tablo)
d(tablo(i, 1) & Chr(1) & tablo(i, 2)) = ""
Next
.[A:F].FormatConditions.Add xlExpression, Formula1:="=MFC($A1)"
.[A:F].FormatConditions(1).Interior.Color = RGB(189, 215, 238)
End With
End Sub
La macro Creer_MFC est lancée pat les macros Workbook_Open et Worksheet_Change, donc à l'ouverture du fichier et quand on modifie la feuille.
Pour tester la durée d'exécution j'ai créé le 2ème fichier avec 29000 lignes
Un grand merci pour votre aide et ce travail fourni. J'espère qu'il ne vous aura pas pris trop de temps.
Votre fichier fonctionne très bien, je vais donc le reprendre. Je ne sais pas pourquoi cela ne fonctionne pas lorsque j'utilise le code dans un autre fichier mais c'est un détail.