Erreur d'exécution '9'

Fermé
ludacris12 Messages postés 1 Date d'inscription samedi 21 mai 2016 Statut Membre Dernière intervention 21 mai 2016 - 21 mai 2016 à 05:04
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 21 mai 2016 à 11:51
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

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
21 mai 2016 à 10:27
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
21 mai 2016 à 11:45
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
21 mai 2016 à 11:51
Bonjour michel_m,

Merci du tuyau filter
0