Ajouter une fonction dans Macro VBA

Résolu
Bonjour,

J'ai une macro VBA (ci dessous) à laquelle j'aimerai ajouter une fonction:
Si B2 contient "del" alors indiquer "Delivery" en J1; sinon indiquer "Collect" en J1
Attention, la cellule B2 peut contenir "del" mais toujours avec d'autres caractères exemple: up2del01201210161301.txt dans ce cas indiquer "Delivery" en J1

Pourriez vous m'aider ?

Voici ma macro pour le moment à laquelle je souhaite ajouter la fonction expliquée ci dessus:
Sub M2_ajoutL1_look4errors()
'
' M2_ajoutL1_look4errors Macro
'
' Touche de raccourci du clavier: Ctrl+n
'
    Workbooks.Open Filename:= _
        "\\Pc002\travail\Services\TSG\Nadège GUILLY\UPS\MONITOR REPORT\Macro\1.xls"
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "a"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "b"
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "c"
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "d"
    Range("E1").Select
    ActiveCell.FormulaR1C1 = "e"
    Range("F1").Select
    ActiveCell.FormulaR1C1 = "f"
    Range("G1").Select
    ActiveCell.FormulaR1C1 = "g"
    
        Range("I1").Select
        
    ActiveCell.FormulaR1C1 = "=COUNTA(C[-8])-1"
    Range("J1").Select
    ActiveCell.FormulaR1C1 = "=R[1]C[-8]"
    Range("J2").Select
    
        Cells.Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    
    Rows("1:1").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$G$255").AutoFilter Field:=5, Criteria1:="=*error*" _
        , Operator:=xlAnd
    ActiveWorkbook.Save
    ActiveWindow.Close

End Sub


Merci beaucoup de votre aide !!

5 réponses

  1. Salut,
    par exemple,

    Dim a As String
    Dim x As Integer
    
    a = Range("B2").Value
    
    x = InStr(1, a, "del")
    
    If x > 0 Then
    Range("J1").Value = "Delivery"
    Else
    Range("J1").Value = "Collect"
    End If


    Bien à toi.
    Julien
    1. Contributeur
      bonjour
      Ne serait ce pas plutôt J2 que J1 (tu y as écris une formule)
      autre manière
      Range("J2") = IIf(InStr(Range("B2").Value, "del"), "delivery", "collect") 

      1. Bonjour et merci à vous 2 !!

        C'est bien en J1 car la formule que j'avais faite ne me convient pas et je veux la remplacer par une de vos propositions !!

        Je test ça tout de suite !!

        Merci beaucoup, je vous tiens au courant ;)
        1. Ca fonctionne parfaitement (je n'en ai pas douté !!;) )

          Merci encore !!