Erreur 9 "l'indice n'appartient pas à la sélection"

Bonjour,

Je suis nouveau sur ce forum, donc mes excuses d'avance si je m'y emploie avec maladresse.

Cela dit, j'ai un souci lié l'erreur 9. Au fait, dans une feuille nommée "Récap", j'ai un bouton censé supprimer simultanément la ligne sélectionnée dans cette feuille et sa correspondance dans une autre feuille du même classeur. Mais à l'exécution, il me renvoi le code d'erreur 9 "l'indice n'appartient pas à la sélection". La ligne en gras ci-après est la ligne surlignée en jaune dans vba avec une flèche en regard. J'ai besoin de vos lumières pour avancer ...

je précise que je suis nul en vba, mais j'ai un esprit logique qui me permet d'y voir juste un peu clair.

Voici mon code:

Sub efface()
'Suppression d'une réservation
ligne = ActiveCell.Row
msg = "Etes-vous sûr de vouloir supprimer la ligne " & ligne & " ??"
Style = vbYesNo + vbDefaultButton1
titre = "ATTENTION!"
réponse = MsgBox(msg, Style, titre)
If réponse = vbYes Then
'Si réponse est égale à Oui
'Mise dans variables du contenu des cellules de la ligne de
'Récap à supprimer
Cells(ligne, 1).Select
lafeuille = ActiveCell.Value
Cells(ligne, 2).Select
legroupe = ActiveCell.Value
Cells(ligne, 3).Select
lejour = ActiveCell.Value
Cells(ligne, 4).Select
lasalle = ActiveCell.Value
Cells(ligne, 5).Select
lheurede = ActiveCell.Value
hde = ActiveCell.Value
Cells(ligne, 6).Select
lheurea = ActiveCell.Value
ha = ActiveCell.Value
'Selection de la feuille de salle à laquelle la ligne appartient
Sheets(lafeuille).Select
'Reconstitution de la plage horaire
lig = 9
col = 5
Cells(lig, col).Select
Do While ActiveCell.Value <> ""
valhde = ActiveCell.Value
If valhde = hde Then
lignede = ActiveCell.Row
Exit Do
End If
lig = lig + 1
Cells(lig, col).Select
Loop
lig = 9
col = 6
Cells(lig, col).Select
Do While ActiveCell.Value <> ""
valha = ActiveCell.Value
If valha = ha Then
lignea = ActiveCell.Row
Exit Do
End If
lig = lig + 1
Cells(lig, col).Select
Loop
' sélection dans la feuille classe de la plage horaire
' en fonction du jour
Select Case lejour
Case "Lundi"
Range(Cells(lignede, 5), Cells(lignea, 5)).Select
Case "Mardi"
Range(Cells(lignede, 7), Cells(lignea, 7)).Select
Case "Mercredi"
Range(Cells(lignede, 9), Cells(lignea, 9)).Select
Case "Jeudi"
Range(Cells(lignede, 11), Cells(lignea, 11)).Select
Case "Vendredi"
Range(Cells(lignede, 13), Cells(lignea, 13)).Select
Case "Samedi"
Range(Cells(lignede, 15), Cells(lignea, 15)).Select
Case "Dimanche"
Range(Cells(lignede, 16), Cells(lignea, 16)).Select
End Select

'Suppression de la fusion de cellules
'Remise en place des lignes horizontales
'Suppression du contenu

With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.ClearContents
Range("A3").Select
'Suppression de la ligne dans la feuille Récap
Sheets("Récap").Select
Selection.EntireRow.Delete

End If
End Sub

Bonsoir à tous !

vazoum, je n'ai pas regardé ton code au complet mais remplace

Sheets(lafeuille).Select par Sheets("lafeuille").Select

Bonne soirée!

Merci Nordik_Nation pour ta célérité,

Je viens de tester ta solution, mais je continue d'avoir le même code d'erreur..

Bonsoir,

Est ce qu'il serait possible d'avoir le fichier sans données confidentielles...ça serait plus facile de trouver une solution et savoir quel est le résultat que tu attends

Sans doute Nordik,

C'est un classeur que j'essaie d'adapter, ça tourne sur pas mal de côté, mais là (dont je parle), ça bloque. Ci-joint

Oups.., on me dit que le fichier est trop lourd (> 1.5mo)

Ok, j'essaie de le compresser dans ce cas ... Oups, "extension de fichier non autorisée" !

Que faire?

Bon voilà, je me suis arrangé pour avoir ça

3vazoum1.xlsm (21.86 Ko)

Bonjour à tous!

vazoum, voici un début qui efface la plage de la ligne sélectionnée sur la feuille active (soit la ligne de la colonne 1 à colonne 6)

Sub efface_Ver2()
'Suppression d'une réservation
ligne = ActiveCell.Row
msg = "Etes-vous sûr de vouloir supprimer la ligne " & ligne & " ?"
Style = vbYesNo + vbDefaultButton1
titre = "ATTENTION!"
réponse = MsgBox(msg, Style, titre)
If réponse = vbYes Then
Range(Cells(ligne, 1), Cells(ligne, 6)).Delete Shift:=xlUp
End If
End Sub

Bonne journée!

Merci Nordik pour tes efforts, mais

je rappelle que le problème n'est pas juste de supprimer la plage que tu m'indique dans ta solution, mais aussi sa correspondance dans une autre feuille du même classeur.

Merci d'avoir essayer, je cherche encore

Cdlt

Bonjour à tous!

vazoum, voici ton fichier avec une méthode artisanale mais elle fonctionne bien vois si cela te convient ça sera à toi de l'adapter à tes besoins

Bonne journée!

0vazoum1.xlsm (32.75 Ko)

Bonjour à tous!

vazoum, voici une nouvelle version...encore mieux que la précédente

1vazoum-ver2.xlsm (24.54 Ko)
Rechercher des sujets similaires à "erreur indice appartient pas selection"