Erreur d'exécution '9'

Bonjour
J'ai tenté d'exécuter un programme, mais j'ai sans cesse cette information :<< Erreur d'exécution '9' l'indice n'appartien pas la selection.>> je ne comprend pas pourquoi cela. Mon programme est le suivant:

Sub macro()
'Plan de charge Projet
Dim i, j As Integer
i = 0
For i = 3 To 315 Step 1
If ((Sheets("TDB Projet IQM_").Cells(i, 4) = "MC") Or (Sheets("TDB Projet IQM_").Cells(i, 4) = "MVVS") Or (Sheets("TDB Projet IQM_").Cells(i, 4) = "VC") Or (Sheets("TDB Projet IQM_").Cells(i, 4) = "CUKPT1") Or (Sheets("TDB Projet IQM_").Cells(i, 4) = "CUK")) And (Sheets("TDB Projet IQM_").Cells(i, 1).Font.ColorIndex = 2) Then
Sheets("TDB Projet IQM_").Select
Sheets("TDB Projet IQM_").Cells(i, 4).Copy
Sheets("Plan de charge Projet").Select
Sheets("Plan de charge Projet").Cells(i + 2, 1).Select
ActiveSheet.Paste

End If
Next
End Sub
Le programme bug sur le IF avec plusieurs conditions.
Je vous remercie d'avance de bien vouloir m'aider
cordialement,
Ludacris

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,
    << Erreur d'exécution '9' l'indice n'appartien pas la selection.>>
    Voir si le nom de la feuille est juste !!!!!

    en attendant:

    Code un peu plus excel et pas de select:
    Sub macro_x()
        'Plan de charge Projet
        Dim i, j As Integer
        With Sheets("TDB Projet IQM_")
            For i = 3 To 315 Step 1
                If ((.Cells(i, 4) = "MC") Or (.Cells(i, 4) = "MVVS") Or (.Cells(i, 4) = "VC") Or (.Cells(i, 4) = "CUKPT1") Or (.Cells(i, 4) = "CUK")) And (.Cells(i, 1).Font.ColorIndex = 2) Then
                    Sheets("Plan de charge Projet").Cells(i + 2, 1) = .Cells(i, 4)
                End If
            Next i
        End With
    End Sub
    1. Contributeur
      bonjour tt le monde
      autre méthode:

      un code utilisant un filtre dans une liste...
      Sub ccm2()
      Dim lig As Integer, Liste(), Mot As String, lig2, test

      Application.ScreenUpdating = False
      Sheets("Plan de charge Projet").Range("A5:A320").ClearContents

      Liste = Array("", "MC", "MVVS", "VC") 'a compléter
      With Sheets("TDB projet IQM_")
      For lig = 3 To 317
      If .Cells(lig, "A").Font.ColorIndex = 2 Then
      Mot = .Cells(lig, "D")
      test = Filter(Liste, Mot, True)
      On Error GoTo vide
      Sheets("Plan de charge Projet").Cells(lig + 2, "A") = test(0)
      End If
      0:
      Next
      End With
      Sheets("Plan de charge Projet").Activate
      Exit Sub
      vide:
      GoTo 0
      End Sub

      1. Bonjour michel_m,

        Merci du tuyau filter