Ajouter une fonction dans Macro VBA

Résolu/Fermé
Ludivine - 17 oct. 2012 à 13:13
jlnch Messages postés 8 Date d'inscription vendredi 22 juin 2012 Statut Membre Dernière intervention 10 mars 2015 - 18 oct. 2012 à 09:36
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 !!
A voir également:

5 réponses

jlnch Messages postés 8 Date d'inscription vendredi 22 juin 2012 Statut Membre Dernière intervention 10 mars 2015
17 oct. 2012 à 13:38
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
17 oct. 2012 à 14:11
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") 

0
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 ;)
0
Ca fonctionne parfaitement (je n'en ai pas douté !!;) )

Merci encore !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jlnch Messages postés 8 Date d'inscription vendredi 22 juin 2012 Statut Membre Dernière intervention 10 mars 2015
18 oct. 2012 à 09:36
Avec plaisir ;-)
0