Fonction replace avec une variable like
Bonjour à tous,
J'ai un code de remplacement qui doit trouver le mot "Positif" et changer la couleur, le code fonctionne bien il me change bien la couleur dés qu'il rencontre le mot "positif", mon souci vient du fait que le mot "positif" est dans une chaine du genre N° Ech x Positif xxx Mg/Kg, et j'aimerai que la ligne entière soit en rouge..
J'ai tenté avec une variable vart LIKE "*Positif*Mg/Kg" et utiliser vart à la place de "positif, mais sans succès j'ai aussi essayé avec Mid.. mais Idem..
Avez vous déjà eu ce cas ?
Merci d'avance.
Code:
1 2 3
| strTexte = Me.HAPQLConc
strTexte = Replace(strTexte, "Positif", "<font color=""#ED1C24"">Positif</font>") 'mot en rouge
Me.HAPQLConc = strTexte |
Avec le code au-dessus est ce possible ?
Re Bonjour,
Je ne trouve pas.. peut être est ce possible avant cette étape ou je récupère les résultats de la boucle :
Avec un If est ce possible ?
Code:
1 2 3 4
| While Not rst.EOF
StrResult = StrResult & "-" & "Ech N° " & rst.Fields![Ech] & " " & rst.Fields![HAPQuantitatifFin]
rst.MoveNext
Wend |
Essai avec le code du dessus mais html dans la formule ???
Re Bonjour,
Je ne trouve pas.. peut être est ce possible avant cette étape ou je récupère les résultats de la boucle :
du genre :
Code:
StrResult = IIf([HAPQuantitatifFin] Like "*Positif*", "<font color=""#ED1C24"">StrResult & "- Ech N° " & rst.Fields![Ech] & " " &rst.Fields![HAPQuantitatifFin]</font>",StrResult & "- Ech N° " & rst.Fields![Ech] & " " &rst.Fields![HAPQuantitatifFin])
Mais là le souci ce sont les quotes.. je ne sais plus quoi essayer
je dois confondre les codes
Re Bonjour à vous deux,
je dois confondre les lignes de code, maintenant j'ai ce résultat :
-Ech N° 1 rst.Fields![HAPQuantitatifFin]-Ech N° 2 rst.Fields![HAPQuantitatifFin]-Ech N° 3 rst.Fields![HAPQuantitatifFin]-Ech N° 4 rst.Fields![HAPQuantitatifFin]-Ech N° 1 rst.Fields![HAPQuantitatifFin]-Ech N° 2 rst.Fields![HAPQuantitatifFin]-Ech N° 3 rst.Fields![HAPQuantitatifFin]-Ech N° 4 rst.Fields![HAPQuantitatifFin]
J'ai du faire de multiples erreurs.. car je n'ai plus les valeurs et pas de couleur automatiquement..
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| Private Sub MAJConclusion3()
'Mise à jour des champ AmianteFin etc...
DoCmd.OpenQuery "AdPrestationMAJ", , acReadOnly
DoCmd.SetWarnings False
'Mise à jour de la conclusion du rapport
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim StrResult As String
Dim var As Integer
var = Me.NUME
Set db = Application.CurrentDb
Set rst = db.OpenRecordset("SELECT AdPrestation.N0Info, AdPrestation.Ech, AdPrestation.PrestationAd, AdPrestation.AmianteFin, AdPrestation.HAPQualitatifFin, AdPrestation.HAPQuantitatifFin FROM AdPrestation WHERE AdPrestation.N0Info =" & var & ";")
'crée une boucle sur les enregistrements de la colonne 6 (HAPQuantitatifFin)
StrResult = ""
While Not rst.EOF
StrResult = StrResult & "-Ech N° " & rst.Fields![Ech] & " " & rst.Fields![HAPQuantitatifFin]
'If rst.Fields![HAPQuantitatifFin] Like "Positif*" Then
'StrResult = "<font color=""#ED1C24"">" & StrResult & "-Ech N° " & rst.Fields![Ech] & " " & " rst.Fields![HAPQuantitatifFin]" & "</font>"
'ElseIf rst.Fields![HAPQuantitatifFin] Like "Négatif*" Then
'StrResult = "<font color=""#22B14C"">" & StrResult & "-Ech N° " & rst.Fields![Ech] & " " & " rst.Fields![HAPQuantitatifFin]" & "</font>"
'Else
'StrResult = "<font color=""#000000"">" & StrResult & "-Ech N° " & rst.Fields![Ech] & " " & " rst.Fields![HAPQuantitatifFin]" & "</font>"
' End If
rst.MoveNext
Wend
'affiche les résultats
Me.resultat.ControlSource = "=" & """ Les résultats HAP Quantitatif :" & vbCrLf & StrResult & """"
DoCmd.GoToControl "[resultat]"
DoCmd.RunCommand acCmdCopy
DoCmd.GoToControl "[HAPQTConc]"
DoCmd.RunCommand acCmdPaste
'strTexte = Me.HAPQTConc
'strTexte = Replace(strTexte, "Positif", "<font color=""#ED1C24"">Positif</font>") 'mot en rouge
'Me.HAPQTConc = strTexte
Dim sTexte As String
Dim vaTexte As Variant
Dim i As Integer
Dim sresult as string
sTexte = Me.HAPQTConc
vaTexte = Split(sTexte, "-")
For i = 1 To UBound(vaTexte) 'Les tableaux commencent à 0 mais dans votre cas il n'y a pas de données avant le premier "-"
If InStr(1, vaTexte(i), "Positif", 1) > 0 Then 'On vérifie si "Positif"
vaTexte(i) = "<font color=""#ED1C24"">-" & vaTexte(i) & "</font>" 'Oui on met la couleur
sresult = sresult & vaTexte(i) 'on inscrit dans la chaine de caractères
Else
sresult = sresult & "-" & vaTexte(i) 'Non on inscrit dans la chaine de caractères
End If
Next i
Debug.Print StrResult
Me.HAPQTConc = StrResult
StrResult = "Les résultats HAP Quantitatif :<br>" & sresult
Me.resultat.ControlSource = "=" & Chr(34) & sresult & Chr(34)
rst.Close
Set rst = Nothing
Set db = Nothing
MsgBox "les résultats sont prêts"
End Sub |
Ouf ca marche enfin.. Merci à vous
Bonjour,
Super ca marche enfin..
Merci encore pur votre aide car j'ai passé beaucoup de temps sur cette conclusion.;
Je vous souhaite une trés bonne journée.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| 'crée une boucle sur les enregistrements de la colonne 6 (HAPQuantitatifFin)
StrResult = ""
While Not rst.EOF
'StrResult = StrResult & "-Ech N° " & rst.Fields![Ech] & " " & rst.Fields![HAPQuantitatifFin]
If rst.Fields![HAPQuantitatifFin] Like "Positif*" Then
StrResult = "<font color=#ED1C24>" & StrResult & "-Ech N° " & rst.Fields![Ech] & " " & rst.Fields![HAPQuantitatifFin] & "</font>"
ElseIf rst.Fields![HAPQuantitatifFin] Like "Négatif*" Then
StrResult = "<font color=#22B14C>" & StrResult & "-Ech N° " & rst.Fields![Ech] & " " & rst.Fields![HAPQuantitatifFin] & "</font>"
Else
StrResult = "<font color=#000000>" & StrResult & "-Ech N° " & rst.Fields![Ech] & " " & rst.Fields![HAPQuantitatifFin] & "</font>"
End If
rst.MoveNext
Wend
'affiche les résultats
Me.resultat.ControlSource = "=" & """ Les résultats HAP Quantitatif :" & vbCrLf & StrResult & """"
DoCmd.GoToControl "[resultat]"
DoCmd.RunCommand acCmdCopy
DoCmd.GoToControl "[HAPQTConc]"
DoCmd.RunCommand acCmdPaste
rst.Close
Set rst = Nothing
Set db = Nothing
MsgBox "les résultats sont prêts"
End Sub |
Les rpéonses à vos questions
Re Bonjour,
Oui en effet vous avez raison j'ai mélangé les deux codes.. en fait je me sers du champ indépendant "resultat" pour copier les valeurs chacune leur tour dans les champs de la table, je ne peux pas de ce que j'ai vu copier directement dans les champs définitifs (en fait j'ai trois champs de conclusion, donc j'ai 3 fois ce code avec une différence unique c'est la valeur de la colonne la 4, ensuite la 5 et à la fin la 6.
J'aurai préféré ne faire qu'un code en effet..
Merci encore pour votre aide qui est précieuse..