Erreur d'exécution '9'

ludacris12 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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

    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour michel_m,

      Merci du tuyau filter
      0