Bonjour,
Dans mon fichier xlsm j'importe un xlsx afin de l'analyser.
Dans celui ci j'ai plusieurs colonnes avec des titres
Mon problème :
Les colonnes peuvent ne pas être au même endroit par rapport a d'autres importation
pour remédier a ce problème j'ai fait ceci :
For cell34 = 1 To 4
For i = 1 To 25
If Sheets("Report").Cells(cell34, i).Value = "Operation" Then ' si il trouve colonne "Operation"
Range(Cells(1, i), Cells(1, i)).EntireColumn.Select ' Selectionne la colonne
ActiveWorkbook.Names.Add Name:="Operation", RefersToR1C1:="=" & "Report" & "!C" & i ' et Renomme la colonne en "Operation"
next
next
Jusque la tout va assez bien
la ou je colle c'est lorsque je cherche la colonne "Operation"
et que je lui ajoute cette opération .
Const Limit As Integer = 25
For Each c In Range("Operation")
If c.Value > Limit Then
If c.Value = "NOK" Then c.Interior.ColorIndex = 3: c.Font.ColorIndex = 2
End If
next
La formule fonctionne très bien mais l’opération est très longue (il n'y a pas qu'une condition)
Par contre si je fait ceci c'est beaucoup plus rapide .
Je n'utilise pas de plage nommée
lRow = Range("B" & Rows.Count).End(xlUp).Row
Set MR = Range("B2:B" & lRow)
For Each cell In MR
If cell.Value = "NOK" Then cell.Interior.ColorIndex = 3: cell.Font.ColorIndex = 2
Next
Il va de soit que j'ai besoin des plages nommées pour d'autres operations.
Il y a t il un moyen de récupérer l’emplacement de la colonne exemple Operation=colonne B ??
Merci pour votre aide
Eric