0
votes

Je veux mettre en œuvre plusieurs mots dans la condition de gauche

ihave a écrit une condition If si la condition de gauche, que si la cellule de 3 caractères est "CAK", copiez la cellule et collez-la sur une autre feuille. Cela a fonctionné avec succès, mais maintenant je souhaite rechercher 5, 6 mots pour rechercher comme "CAK", "BDD", "GHH", "BAK", "GHH", peut-on me dire comment garder plusieurs mots,

Je veux du code VBA comme si la cellule les 3 premiers caractères sont "CAK" ou "BDD" ou "GHH" ou "BAK" ou "GHH" puis copier et coller. P>

Sub NOTES()

For C = 27 To 33

    A = Worksheets("EDAT").Cells(Rows.Count, 1).End(xlUp).Row

    For I = 12 To A

    Worksheets("EDAT").Activate
    Worksheets("EDAT").Cells(I, C).Activate

     If (Left(ActiveCell, 3) = "CAK") Then
        Worksheets("sheet1").Cells(I, C).COPY
        Worksheets("sheet2").Activate
        b = Worksheets("sheet2").Cells(Rows.Count, 1).End(xlUp).Row
        Worksheets("sheet2").Cells(b + 1, 1).Select
        ActiveSheet.Paste
        Worksheets("sheet1").Cells(I, 10).COPY
        Worksheets("sheet2").Activate
        Worksheets("sheet2").Cells(b + 1, 8).Select
        ActiveSheet.Paste
        Worksheets("sheet1").Cells(I, 11).COPY
        Worksheets("sheet2").Activate
        Worksheets("sheet2").Cells(b + 1, 9).Select
        ActiveSheet.Paste
    End If

    Next

Next

End Sub


1 commentaires

Où vous êtes neuf, juste un rappel amical pour vous permettre de sélectionner la réponse que vous choisissez.


3 Réponses :


0
votes

Vous pouvez utiliser Match Méthode Pour faire correspondre la valeur contre la matrice.

array= Split("CAK,BDD,GHH,BAK,GHH", ",")
IsInArray(CellValue, array)


0 commentaires

1
votes

Changez simplement ceci:

If ((Left(ActiveCell, 3) = "CAK") or Left(ActiveCell, 3) = "BDD") or Left(ActiveCell, 3) = "GHH") or Left(ActiveCell, 3) = "BAK")) then


1 commentaires

Je suis très heureux d'entendre cela! :) Vous êtes très bienvenu!



0
votes

Si vous voulez faire la même chose chaque fois que les trois caractères correspondent, essayez ce qui suit:

Dim matchingLetters As Variant
matchingLetters = Array("CAK", "BDD", "GHH", "BAK", "GHH")

For Each str In matchingLetters
    If (Left(ActiveCell, 3) = str) Then
        Worksheets("sheet1").Cells(I, C).COPY
        Worksheets("sheet2").Activate
        b = Worksheets("sheet2").Cells(Rows.Count, 1).End(xlUp).Row
        Worksheets("sheet2").Cells(b + 1, 1).Select
        ActiveSheet.Paste
        Worksheets("sheet1").Cells(I, 10).COPY
        Worksheets("sheet2").Activate
        Worksheets("sheet2").Cells(b + 1, 8).Select
        ActiveSheet.Paste
        Worksheets("sheet1").Cells(I, 11).COPY
        Worksheets("sheet2").Activate
        Worksheets("sheet2").Cells(b + 1, 9).Select
        ActiveSheet.Paste
    End If
Next


0 commentaires