Bonjour,
Je souhaite écrire dans une cellule et modifier la couleur de mon texte feuille de deux manières différentes via une même procédure :
Par la suite, je dois faire appelle à cette macro de deux façon différente :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Sub Texte_demande_rd(target As Range, tableau_ind As Variant) Dim valsaisie As String Dim ligne As Integer Dim col As Integer Dim p1 As Integer ligne = target.Row col = target.Column If target = "x" Or target = "X" Then If target.Offset(0, -8) Like "1.1.*" Then For i = 1 To 29 If target.Offset(0, -6) = tableau_ind(2, i) Then valsaisie = tableau_ind(4, i) & tableau_ind(3, i) target.Offset(0, -4) = Verif_contenu(target.Offset(0, -4), valsaisie & " ") If InStr(1, target.Offset(0, -4), valsaisie) <> 0 Then target.Offset(0, -4).Characters(InStr(1, target.Offset(0, -4), valsaisie), Len(valsaisie)).Font.Color = RGB(255, 0, 0) Exit For End If Next i [...]
- au sein d'une autre procédure (code placé dans un module) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 If IsEmpty(Cell) = False Then Cell.Offset(0, 5) = "X" 'cochage de la colonne RD Call Texte_demande_rd(Cell.Offset(0, 5), tableau) End If- lors de cochage de la celulle concernée par l'utilisateur (code placé dans la feuille concernée)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Sub Worksheet_Change(ByVal cible As Range) Dim tabl As Variant If Not Intersect(Columns("J"), cible) Is Nothing And cible.Count = 1 And cible.Row > 1 Then tabl = Construction_parois(f_listes_deroulantes, "Index", 4) Call Texte_demande_rd(cible, tabl) End If End Sub
La première solution fonctionne a merveille mais une erreur 1004 me bloque à la ligne 17 lors de l'appel depuis worksheet_change...
L'erreur 1004 persiste si je remplace
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part If InStr(1, target.Offset(0, -4), valsaisie) <> 0 Then target.Offset(0, -4).Characters(InStr(1, target.Offset(0, -4), valsaisie), Len(valsaisie)).Font.Color = RGB(255, 0, 0)
et mon texte ne se met même plus en rouge...
Code : Sélectionner tout - Visualiser dans une fenêtre à part If InStr(1, target.Offset(0, -4), valsaisie) <> 0 Then Sheets(f_suivi_chantier).Cells(ligne, col - 6).Characters(InStr(1, Cells(ligne, col - 6), valsaisie), Len(valsaisie)).Font.Color = RGB(255, 0, 0)
Merci d'avance pour vos remarques et conseils !
Partager