erreur d'exécution 9 : l'indice n'appartient pas à la sélection

  • Initiateur de la discussion Initiateur de la discussion Dolichotis
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dolichotis

XLDnaute Occasionnel
Bonjour !

Je viens de faire ma première vraie macro et là quand je l'exécute : erreur d'exécution 9 : l'indice n'appartient pas à la sélection.

Cette macro permet de prendre les informations dans une base de données et de les mettre dans l'outil pour permettre le calcul.
Je mets le bout de code...

Code:
Sub Ajout_composant()
' ajout_comp Macro
' Macro enregistrée le 07/05/2008 par
    Range("A21:I21").Select
    Selection.Copy
    Rows("21:21").Select
    Selection.Insert Shift:=xlDown
    Application.CutCopyMode = False
End Sub


Private Sub CommandButton2_Click()
'déclaration des variables
Dim i As Integer
Dim j As Integer
Dim DerL As Integer
Dim Nombrecomposants As Integer

'initialisation des variables
DerL = Workbooks(" essaiBase.xls ").Sheets("CI").Range("A" & (Feuil1.Rows.Count)).End(xlUp).Row

For i = 3 To DerL
    Workbooks.Open Filename:="X:\Real\essaiBase.xls"

    Windows("essaiOutil.xls").Activate
    Nombrecomposants = DerL - i + 1
    
for j=1 to Nombrecomposants
        Call Ajout_composant
next j

    If (Workbooks("essaiBase.xls").Sheets("alpha").Range("B" & i) = Workbooks("essaiOutil.xls").Sheets("alpha").Range("C5")) Then
        Range("A" & i, "B" & DerL).Select 'a verifier
        'si code AD de l'outil = code AD de la base
        
        Selection.Copy
        Range("B" & (i + 2)).Select
        ActiveSheet.Paste

        Windows("essaiBase.xls").Activate
        Range("C" & i, "B" & DerL).Select 'a verifier
        Selection.Copy

        Windows("essaiOutil.xls").Activate
        Range("F" & (i + 2)).Select
        
        ActiveSheet.Paste
        Windows("essaiBase.xls").Activate
    End If
    
Next

ActiveWorkbook.Save
ActiveWindow.Close

End Sub


Merci de votre aide !
 
Dernière édition:
Re : erreur d'exécution 9 : l'indice n'appartient pas à la sélection

Bonjour Dolichotis,

A tester :
Remplacer :
Code:
'initialisation des variables
DerL = Workbooks(" essaiBase.xls ").Sheets("CI").Range("A" & (Feuil1.Rows.Count)).End(xlUp).Row
par
Code:
'initialisation des variables
DerL = Workbooks("essaiBase.xls").Sheets("CI").Range("A" & (Feuil1.Rows.Count)).End(xlUp).Row

J'ai enlevé les espaces devant le nom du classeur car plus bas dans ta procédure, il n'y a pas d'espace.

Si cela ne change rien, peux-tu joindre un extrait de ton fichier ?
 
Re : erreur d'exécution 9 : l'indice n'appartient pas à la sélection

J'ai besoin d'une info complémentaire.
Quelle est la ligne de code VBA sur laquelle l'erreur se produit (ligne normalement en jaune) ?

Dans le fichier joint, j'ai cette ligne de code :
Code:
    DerL = Workbooks("BaseDonnees.xls").Sheets("CI").Range("A" & (Feuil1.Rows.Count)).End(xlUp).Row
Que contient le classeur "BaseDonnees.xls" ? Existe t-il dans ce classeur une feuille nommée "CI" ?

Merci
 
Dernière édition:
Re : erreur d'exécution 9 : l'indice n'appartient pas à la sélection

Bonjour !

Désolée pour vendredi, j'ai du partir un peu rapidement. Par contre, j'avais fait des modifications mais elles n'apparaissent pas dans ce fichier, j'ai peut-être oublié d'enregistrer avant d'attacher le fichier. J'ai refait des modifs ce matin
Dans essaiBase, il y a seulement les éléments à transmettre dans l'essaiOutil. Pas de code. J'ai essayé de compresser deux fichiers excel ensemble, ca ne fonctionne pas.

Je te renvoie le fichier essaiOutil modifié. Encore merci de ton aide.
 
Re : erreur d'exécution 9 : l'indice n'appartient pas à la sélection

Merci beaucoup cbea !

Je viens de tester ton programme (entre la pause déjeuner et une réunion, je viens tout juste de m'y mettre) ça marche impecc' !

Il y a juste un petit problème : quand j'appuie sur le bouton chargerParamètres, ça exécute la macro correctement (j'ai vérifié en rouvrant) mais la fenêtre excel se ferme tout de suite après. Alors que j'aimerais seule la Essaibase se ferme. EssaiOutil resterait ouvertEt aussi que la mise en forme des cellules concernées n'est pas conservée.

Je vais essayer de voir si je peux modifier la macro en conséquence.
 
Re : erreur d'exécution 9 : l'indice n'appartient pas à la sélection

Dans la procédure "CommandButton2_Click", tu enlèves la ligne :
Code:
wbOutil.Close

Concernant la mise en forme, peux-tu me donner un exemple ?

Merci
 
Re : erreur d'exécution 9 : l'indice n'appartient pas à la sélection

Dans la procédure "CommandButton2_Click", tu enlèves la ligne :
Code:
wbOutil.Close

Concernant la mise en forme, peux-tu me donner un exemple ?

Merci

Merci pour la précision !

Peut-être que ça n'est pas le mot juste, je veux dire les bordures qui délimitent les cellules (pour rester dans un tableau).
En fait, c'est dans la procédure ajout_composant, je l'avais faite avec l'enregistreur de macro. Quand j'avais testé il me semble qu'elle marchait, maintenant, elle ne copie que le contenu des cellules et non le style des bordures (par exemple)
 
Re : erreur d'exécution 9 : l'indice n'appartient pas à la sélection

Peux-tu faire un essai en rajoutant les lignes notées en rouge ?

Code:
...

' Copier les valeurs de essaiBase dans essaiOutil
wsBase.Range("A" & CellBase.Row & ":B" & CellBase.Row).Copy
wsOutil.Range("A" & Lig).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
[COLOR="red"]wsOutil.Range("A" & Lig).PasteSpecial Paste:=xlPasteFormats[/COLOR]Application.CutCopyMode = False
            
wsBase.Range("C" & CellBase.Row & ":G" & CellBase.Row).Copy
wsOutil.Range("D" & Lig).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
[COLOR="Red"]wsOutil.Range("D" & Lig).PasteSpecial Paste:=xlPasteFormats[/COLOR]
Application.CutCopyMode = False

...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
496
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
803
Retour