Aide pour enregistrer le format dans une varible

Bonjour,

Débutant depuis quelque jour, j'ai encore du mal a faire des choses qui ont l'air simple...

Mon objectif :

1/ rechercher si au moins une cellule est contient BLQ alors mettre un texte dans une cellule spécifié

2/ rechercher si au moins une cellule est contient ULOQ alors mettre un texte dans une cellule spécifié

3/ rechercher si au moins une cellule est sous format italique alors mettre un texte dans une cellule spécifié

1 et 2 fonctionne très bien mais je ne sais pas comment faire fontionner 3 car je ne sais pas comment enregistrer le format dans la variable

Si quelqu'un sait comment si prendre je suis preneur

Voici mon code certes un peu long :

Sub test2()

Dim r As Range
Dim BLQ As String
Dim ULOQ As String
Dim italique As Boolean
Dim Plage As String

italique = Font.italique = true
BLQ = "BLQ"
ULOQ = "ULOQ"
Plage = "G12:G200"

Set r = Range(Plage).Find(BLQ)
        If Not r Is Nothing Then
        Range("A17").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.FormulaR1C1 = "BLQ : Below Limit of Quantitation"
        End If
Set r = Range(Plage).Find(ULOQ)
        If Not r Is Nothing Then
        Range("A17").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.FormulaR1C1 = "ULOQ : Upper Limit of Quantitation"
        End If
Set r = Range(Plage).Find(italique)
    If Not r Is Nothing Then
        Range("A17").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
        ActiveCell.FormulaR1C1 = "Italic and underlined value : Value out of range,"
            With ActiveCell.Characters(Start:=1, Length:=29).Font
            .Name = "Arial"
            .FontStyle = "Italic"
            .Size = 10
             .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleSingle
            .ColorIndex = xlAutomatic
            End With
        ActiveCell.Offset(1, 0).Select
        ActiveCell.FormulaR1C1 = "but included in the acceptability criteria (+/- 25%)"
    End If

End Sub

Merci beacoup pour votre aide

Adrien

Bonjour,

En un peu plus optimisé et concis :

Sub TEST()
Dim L%
With ActiveSheet
    For L = 12 To 200
        Select Case .Cells(L, 7)
        Case Is = "BLQ"
        .Cells(L, 7).Offset(0, 1) = "BLQ : Below Limit of Quantitation"
        Case Is = "ULOQ"
        .Cells(L, 7).Offset(0, 1) = "ULOQ : Upper Limit of Quantitation"
        End Select
        If .Cells(L, 7).Font.Italic = True Then .Cells(L, 7).Offset(0, 1) = "Italic and underlined value : Value out of range,"
    Next L
End With
End Sub

Par contre je ne comprend pas, vous bouclez sur G2:G200 et écrivez sur une cellule en dessous de la cellule trouvée, vous écrasez donc des valeurs ? Dans mon exemple j'écris à droite, je vous laisse adapter ci besoin. Je ne comprend pas non plus votre dernière phrase "but included in the acceptability criteria (+/- 25%)"

Si vous n'y arrivez pas merci de joindre un fichier représentatif avec le résultat attendu.

Cdlt,

5classeur1.xlsm (18.10 Ko)

Re Bonjour,

Merci pour votre aide,

je pense ne pas avoir donnée assez de détail.

Je vous joint un fichier très allégé avec en feuille 1 avant la macro et en feuille 2 ce que je doit obtenir

Le but est d'écrire que 1 seule fois les textes même si il y a plusieurs fois la présense de "BLQ" / "ULOQ" / .Font.Italic = True

(les textes sont écris en bas du tableau dans la colonne A , cest à ça que sert le code :

Range("A17").Select

Selection.End(xlDown).Select

ActiveCell.Offset(1, 0).Select )

Merci beaucoup

7exemple.xlsx (9.19 Ko)

Adrien

Bonjour,

Un test sur le même principe que précédemment. Le Exit For permet de sortir de la boucle de vérification dès lors que les 2 conditions sont rencontrées, ça accélère le code et ne permet d'écrire qu'une seule fois la condition :

Sub MEF()
Dim L%
With ActiveSheet
    If Not .[G2:G200].Find("BLQ") Is Nothing Then .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1).Offset(1) = "BLQ : Below Limit of Quantitation"
    If Not .[G2:G200].Find("ULOQ") Is Nothing Then .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1).Offset(1) = "ULOQ : Upper Limit of Quantitation"
    For L = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
        If .Cells(L, 7).Font.Italic = True And .Cells(L, 7).Font.Underline = xlUnderlineStyleSingle Then
            .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1).Offset(1) = "Italic and underlined value : Value out of range,"
            .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 1).Offset(1) = "but included in the acceptability criteria (+/- 25%)"
            Exit For
        End If
    Next L
End With
End Sub

Cdlt,

Bonjour,

Cette macro marche très bien (il ne me reste plus qu'à ajouté une petite mofif de format sur un teste). Je n'avais pas besoin d'affecter des variables après tout et je me suis compliqué la tache. Merci pour le tips du exit for !

merci beaucoup pour votre aide et votre implication

Adrien

Rechercher des sujets similaires à "aide enregistrer format varible"