Je crois pas que se soit possible d'utiliser la fonction Find
avec une variable de Type Long.
Salut Juice,
C'est possible si l'on est sûr d'avoir une correspondance. Find renvoie un objet range sur lequel on peut donc chercher le n° de colonne grâce à la propriété .column (auquel cas la valeur dans la variable est bien un nombre entier).
Le problème est dans le cas où "x" n'est pas trouvé, et que find renvoie "nothing", sur lequel ".column" ne s'applique pas.
Pour mieux comprendre où ce situe le problème, il nous faudrait au minimum le code complet (et pas un extrait), et idéalement le fichier sur lequel il doit s'appliquer (ou au moins un fichier représentatif !).
Voici le code :
Sub Calendrier()
Dim n As Long
Dim i As Long
Dim NbLignes As Long
Dim rg As Range
Dim y As Long
With Sheets("Customer Group")
NbLignes = .Range("T12").End(xlDown).Row
i = 4
For n = 12 To NbLignes
If .Cells(n, 21) = "Yes" Then
Set rg = Range(Cells(n, 24), Cells(n, 35)).Find("x")
y = rg.Column
Sheets("Planning Cust Exp").Cells(i, y) = "Impact Centre" & vbCrLf & Sheets("Customer Group").Cells(n, 2) & vbCrLf & Sheets("Customer Group").Cells(n, 1)
Sheets("Planning Cust Exp").Cells(i, y).Interior.Color = RGB(94, 2, 78)
Sheets("Planning Cust Exp").Cells(i, y).Font.Color = RGB(255, 255, 255)
Sheets("Planning Cust Exp").Cells(i, y).Font.Bold = True
Sheets("Planning Cust Exp").Cells(i, y).HorizontalAlignment = xlCenter
i = i + 1
Else
End If
Next
End With
End Sub
Toute la partie en bleu est OK mais la partie en rouge n'est pas bonne. Le but est lorsque la condition du "Yes" est rempli, on doit chercher sur une ligne le "x" pour l'afficher sur la ligne et la COLONNE(qui pose problème) sur la page du planning
ça ne fonctionne toujours pas donc merci d'avance...
PS : Si le "Yes" est rempli on trouve forcément "x"