Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

La méthode copy de la classe range a échoué

  • Initiateur de la discussion Initiateur de la discussion RONIBO
  • 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 !

RONIBO

XLDnaute Impliqué
Bonjour,

J'aimerais éviter cette erreur (La méthode copy de la classe range a échoué) lorsque j'essaye d'insérer ou de supprimer une ligne à partir des cellules déverrouillées.

J'utilise un bouton de commande qui me permet d'insérer des lignes seulement dans mon tableau ou il y a "Qté" "Uté" "Désignation" etc...

Pour éviter les erreurs lorsque j'insère une ligne en dehors de mon tableau cité ci-dessus, j'aimerais qu'un message (msgbox) comme "Vous ne pouvez pas insérer des lignes ici" apparaisse à l'écran.

Voici le code et un fichier exemple :

Code:
Private Sub TAjouter_Click()
ActiveSheet.Unprotect
ligne = Selection.Row
Application.ScreenUpdating = False
For n = 1 To CInt(NombreLigne.Value)
Selection.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
Range("A" & ligne & ":I" & ligne).Copy
Rows(ligne + 1).RowHeight = 15
Range("A" & ligne + 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("G" & ligne).Copy Destination:=Range("G" & ligne + 1)
Range("I" & ligne).Copy Destination:=Range("I" & ligne + 1)
ligne = ligne + 1
Next
Range("TotalH.T.").FormulaR1C1 = "=SUM(R21C:R[-1]C)"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingRows:=True
Unload Me
End Sub
Private Sub TSupprimer_Click()
ActiveSheet.Unprotect
Selection.EntireRow.Delete
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, AllowFormattingRows:=True
Me.Hide
End Sub

Merci d'avance aux personnes qui vont se pencher sur mon problème

a+
 

Pièces jointes

Dernière édition:
Re : La méthode copy de la classe range a échoué

Re

J'ai testé mon code sur la feuille nommée Akisti Bat
Il n'est pas conseillé de fusionner les cellules (c'est source de problème en VBA)
(Utilises plutôt Centrer sur plusieurs colonnes)

Ce que j'en pense on s'en fiche 😉

C'est ton appli, c'est toi qui choises le code VBA que tu mets dedans 😉

Mais personnellement, je vois pas l'utilité d'utiliser une boucle et je préfère ma syntaxe 😉
 
Dernière édition:
Re : La méthode copy de la classe range a échoué

Re

RONIBO
Au fait, tu penseras à anonymiser ta PJ de ton premier message.
Je viens de mettre la feuille Clients visible et on y trouve des numéros de tel qui n'ont rien à faire sur un forum publique!
 
Re : La méthode copy de la classe range a échoué

Re,

ça marche, moi je m'en fiche pas, je prends tous tes conseilles 😉

Et tu as une solution pour les cellules de bas (ou il y a : total ht, tva, ttc, analyse de tva, mode de paiement) on peut empecher l'insertion de ligne (ou suppression)?
 
Re : La méthode copy de la classe range a échoué

Une petite idée

Dans gestion de nom, créer un nouveau nom avec tout les champs que l'on souhaite bloquer l'insertion de ligne (ou suppression)

Puis à partir de la l'intégrer dans le code.

Bonne idée?
 
Re : La méthode copy de la classe range a échoué

Re

RONIBO
J'attendrais que tu remettes une PJ anonymisée (pour la lisibilité du fil) pour te répondre. 😉
(Tu l'as supprimée au lieu de simplement prendre le temps d'effacer les quelques données confidentielles qu'elle contenait, pffff !!!)
Et si d'autres membres du forum tombent sur ce fil, sur quel fichier feront-ils leur test?
 
Re : La méthode copy de la classe range a échoué

Re

RONIBO
Merci pour le tit effort 😉
Donc maintenant ma réponse à ta précédente question est déjà dans le code que je t'ai soumis, non ?
Voir le NB dans ce message
Ne serait-ce pas une cellule nommée que j'utilise dans le code VBA, par hasard?
 
Re : La méthode copy de la classe range a échoué

Bonjour le forum,
Bonjour Staple1600 🙂

Staple1600 :
Désolé hier je me suis endormi ^^

Je viens de réessayer ton code, c'est pas tout à fait s'que je veux,

Je souhaite utiliser le bouton de commande "Ajouter ou supprimer lignes" seulement dans mon tableau ou il y a "Qté", "Uté", "Désignation", "P.U.", "Total HT", "%" et Avancement.

(Avec ton code j'y arrive à insérer des lignes en bas de ma facture.)

C'est pour cela que j'ai crée un nouveau nom dans "Gestionnaire des noms" (BlocageInsertionSuppressionLigne) avec "Fait référence à :
='Akisti Bat'!$A$1:$I$20 <=== (haut de facture) ;'Akisti Bat'!$A$41:$I$50)<==== (bas de facture)

a+
 
Re : La méthode copy de la classe range a échoué

Bonjour à tous

RONIBO:
J'ai bien compris
Donc tu peux chercher dans les archives du forum :
1) comment faire pour nommer une plage dynamiquement.
2) comment utiliser les plages nommées en VBA (les créer, y accéder, les redimensionner)

Je finis de préparer mon tartare tout en cuisant mon épeautre.
J'ingurgite le tout, en finissant par un petit fruit de saison et je repasse voir comment tu as progressé. 😉

Bon appétit à ceux qui passent/ront à table.
 
Re : La méthode copy de la classe range a échoué

Re

Un truck de ce genre :

=DECALER(Inscriptions!$E$2;;;NBVAL(Inscriptions!$E:$E)-1;NBVAL(Inscriptions!$2:$2)) ??
A+
 
Dernière édition:
Re : La méthode copy de la classe range a échoué

Re

RONIBO
Tu as toutes les infos en main.
Il suffit de lire attentivement les pas à pas qui pullulent sur le net à ce sujet puis de les expérimenter scrupuleusement sur une copie de ton classeur.

Evidemment, cela est quelque peu chronophage.

Mais chouette, on est dimanche, alors on a plein de temps libre à tuer 😉.

Pas moi, pour le moment, faut d'abord que j'étende ma lessive puis que je passe la toile. 😉
 
- 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
17
Affichages
1 K
Réponses
3
Affichages
931
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…