Erreur d'exécution 9 - L'indice n'appartient pas à la sélection

ananar

XLDnaute Nouveau
Bonjour à toutes et à tous,

J'ai écrit une macro qui fonctionne parfaitement sur mon PC (XP Pro + Excel 2003)


Code:
                    '##########Le Menu [Procédure BA KO]##########'

    '~~~~~~~~~~Procédure initiale~~~~~~~~~~'
Private Sub Auto_Open()

    '~~~~~~~~~~Déclaration des variables~~~~~~~~~~'
Dim Nouveau As CommandBarControl '<-- Menu général "Procédure BA KO"
Dim Nouveau10 As CommandBarControl '<-- Menu "Fichier [paa_E_AAA_MM_JJ....xml] : Sélection - Copier / Coller"
Dim Nouveau11 As CommandBarControl, Nouveau12 As CommandBarControl '<-- Sous-Menu "Premier fichier .xml" & Sous-Menu "Second fichier .xml"
Dim Nouveau20 As CommandBarControl '<-- Menu "Fichier [image_paa_acquittement] : Sélection - Copier / Coller"
Dim Nouveau30 As CommandBarControl '<-- Menu "Les résultats dans l'onglet [Actions]"
Dim Nouveau31 As CommandBarControl, Nouveau32 As CommandBarControl '<-- Sous-Menu "Définition de la zone d'impression" & Sous-Menu "Impression des données"
Dim Nouveau40 As CommandBarControl '<-- Menu "Affichage de l'onglet [Synthèse]"
Dim Nouveau50 As CommandBarControl '<-- Menu "Fichier [image_paa_modifié] : Appliquer filtre automatique"

    '~~~~~~~~~~Création d'un menu "Procédure BA KO"~~~~~~~~~~'

On Error Resume Next
Set Nouveau = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
    With Nouveau
    .Caption = "Procédure BA KO"
    End With
    
    '~~~~~~~~~~Création du Menu "Fichier [paa_E_AAA_MM_JJ....xml] : Sélection - Copier / Coller"~~~~~~~~~~'

Set Nouveau10 = Nouveau.Controls.Add(msoControlPopup, , , , True)
    With Nouveau10
        .Caption = "Fichier [paa_E_AAA_MM_JJ....xml] : Sélection - Copier / Coller"
        .Style = msoPopupIconAndCaption
    End With
    
    '~~~~~~~~~~Création du Sous-Menu "Premier fichier .xml"~~~~~~~~~~'
                                         
Set Nouveau11 = Nouveau10.Controls.Add(msoControlButton, , , , True)
    With Nouveau11
        .Caption = "Premier fichier .xml"
        .FaceId = 71
        .Style = msoButtonIconAndCaption
       .OnAction = "MaMacro1"
    End With
    
    '~~~~~~~~~~Création du Sous-Menu "Second fichier .xml"~~~~~~~~~~'
                                         
Set Nouveau12 = Nouveau10.Controls.Add(msoControlButton, , , , True)
    With Nouveau12
        .Caption = "Second fichier .xml"
        .FaceId = 72
        .Style = msoButtonIconAndCaption
        .OnAction = "maMacro2"
    End With
    
    '~~~~~~~~~~Création du Menu "Fichier [image_paa_acquittement] : Sélection - Copier / Coller"~~~~~~~~~~'
                                       
Set Nouveau20 = Nouveau.Controls.Add(msoControlButton, , , , True)
    With Nouveau20
        .Caption = "Fichier [image_paa_acquittement] : Sélection - Copier / Coller"
        .Style = msoButtonIconAndCaption
        .OnAction = "maMacro3"
    End With
    
    '~~~~~~~~~~Création du Menu "Les résultats dans l'onglet [Actions]"~~~~~~~~~~'
    
    Set Nouveau30 = Nouveau.Controls.Add(msoControlPopup, , , , True)
    With Nouveau30
        .Caption = "Les résultats dans l'onglet [Actions]"
        .Style = msoButtonIconAndCaption
    End With
    
    '~~~~~~~~~~Création du Sous-Menu "Définition de la zone d'impression"~~~~~~~~~~'
    
    Set Nouveau31 = Nouveau30.Controls.Add(msoControlButton, , , , True)
    With Nouveau31
        .Caption = "Définition de la zone d'impression"
        .FaceId = 71
        .Style = msoButtonIconAndCaption
        .OnAction = "maMacro5"
    End With
    
    '~~~~~~~~~~Création du Sous-Menu "Impression des données"~~~~~~~~~~'
                                         
Set Nouveau32 = Nouveau30.Controls.Add(msoControlButton, , , , True)
    With Nouveau32
        .Caption = "Impression des données"
        .FaceId = 72
        .Style = msoButtonIconAndCaption
        .OnAction = "maMacro6"
    End With
    
        '~~~~~~~~~~Création du Menu "Affichage de l'onglet [Synthèse]"~~~~~~~~~~'
    
    Set Nouveau40 = Nouveau.Controls.Add(msoControlButton, , , , True)
    With Nouveau40
        .Caption = "Affichage de l'onglet [Synthèse]"
        .Style = msoButtonIconAndCaption
        .OnAction = "maMacro7"
    End With
    
    '~~~~~~~~~~Création du Menu "Fichier [image_paa_modifié] : Appliquer filtre automatique"~~~~~~~~~~'
    
    Set Nouveau50 = Nouveau.Controls.Add(msoControlButton, , , , True)
    With Nouveau50
        .Caption = "Fichier [image_paa_modifié] : Appliquer filtre automatique"
        .Style = msoButtonIconAndCaption
        .OnAction = "maMacro8"
    End With

End Sub

    '~~~~~~~~~~Supprimer le menu & et cacher onglet [Synthèse] à la fermeture du classeur [accesplus_procedure_incident_ba_v1.5.xls]~~~~~~~~~~'

Sub Auto_close()
On Error Resume Next
Application.CommandBars(1).Controls("Procédure BA KO").Delete
Sheets("Synthèse").Visible = False
On Error GoTo 0
End Sub

                    '##########Les Macros##########

'~~~~~~~~~~Macro sélection des données [à partir de la celulle A3] pour copier / coller dans l'onglet [Données] à partir de la celulle A3~~~~~~~~~~'

Sub maMacro1()
  Derlign = Range("A65536").End(xlUp).Row
Range("A3:AD" & Derlign).Select
    Selection.Copy
    Windows("accesplus_procedure_incident_ba_v1.5.xls").Activate
    Sheets("Données").Select
    Range("A3").Select
    ActiveSheet.Paste
End Sub

'~~~~~~~~~~Macro sélection des données [à partir de la celulle A3] pour copier / coller dans l'onglet [Données] à partir de la celulle la 1ère celulle vide dans la colonne A~~~~~~~~~~'

Sub maMacro2()
Derlign = Range("A65536").End(xlUp).Row
Range("A3:AD" & Derlign).Select
    Selection.Copy
    Windows("accesplus_procedure_incident_ba_v1.5.xls").Activate
    Sheets("Données").Select
    Range("A3").End(xlDown).Offset(1, 0).Select
    ActiveSheet.Paste
End Sub

'~~~~~~~~~~Macro sélection des données [à partir de la celulle A1] pour copier / coller dans l'onglet [Image de SysRailData] à partir de la celulle A3~~~~~~~~~~'

Sub maMacro3()
 Derlign = Range("A65536").End(xlUp).Row
Range("A1:AD" & Derlign).Select
    Selection.Copy
    Windows("accesplus_procedure_incident_ba_v1.5.xls").Activate
    Sheets("Image de SysRailData").Select
    Range("A1").Select
    ActiveSheet.Paste
End Sub

'~~~~~~~~~~Macro pour définir une zone d'impression adaptée au contenu dans l'onglet [Action]~~~~~~~~~~'

Sub maMacro5()
ActiveSheet.PageSetup.PrintArea = Range("A1:B" & _
    Range("B65536").End(xlUp).Row).Address
End Sub

'~~~~~~~~~~Macro pour imprimer la zone définie précédemment~~~~~~~~~~'

Sub maMacro6()
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Cells.Select
Selection.EntireColumn.Hidden = False
Selection.EntireRow.Hidden = False
[A1].Select
End Sub

'~~~~~~~~~~Macro pour affichage de l'onglet [Synthèse]~~~~~~~~~~'

Sub maMacro7()
Sheets("Synthèse").Visible = True
End Sub

'~~~~~~~~~~Macro pour appliquer filtre automatique~~~~~~~~~~'
Sub maMacro8()
Selection.AutoFilter
End Sub

Sur un autre PC (XP Pro + Excel 2002), j'ai une erreur :

-> Erreur d'exécution 9 - L'indice n'appartient pas à la sélection

Le débogeur souligne en jaune la ligne
Code:
Windows("accesplus_procedure_incident_ba_v1.5.xls").Activate

Je précise que les extensions de fichiers ne sont pas masquées (sur les 2 PC).

Je cherche depuis un moment la solution à ce problème sans y parvenir.

D'avance merci pour les réponses qui me parviendront.

Bien cordialement,
 

mutzik

XLDnaute Barbatruc
Re : Erreur d'exécution 9 - L'indice n'appartient pas à la sélection

bonjour,

vérifie (par ALT + TAB) que le nom qui est incrit dans ta fenètre est bien celui que tu essaie d'activer par code
- pour ma part, je mets toujours des noms beaucoup plus courts, sans espace ... et ca marche toujours
 

ananar

XLDnaute Nouveau
Re : Erreur d'exécution 9 - L'indice n'appartient pas à la sélection

Pour info, j'ai résoulu mon problème en modifiant :

Code:
Windows("accesplus_procedure_incident_ba_v1.5.xls").Activate

par :

Code:
Workbooks("accesplus_procedure_incident_ba_v1.5.xls").Activate

Merci à mutzik pour sa réponse.

Bonne AM au forum.
 

Discussions similaires

Réponses
11
Affichages
429

Statistiques des forums

Discussions
312 182
Messages
2 086 001
Membres
103 084
dernier inscrit
Hervé30120