XL 2016 erreur 1004 insertion ligne dans une table

rafi93

XLDnaute Occasionnel
bonjour à tous

je ne suis pas un cador de vba mais j'ai reussi à écrire un peu de code qui marchait depuis plusieurs mois... jusque ce matin.
....
Rows(ligne).Select
Selection.EntireRow.Insert
....
ça plante ("erreur 1004...deplacement de cellules d'un tableau") quand le code insère une ligne au dessus de la ligne selectionnée.
ça marchait jusque hier, et tout d'un coup j'ai cette erreur
j'ai tout essayé (Shift:=xlDown, ...) mais rien à faire

quand je le fais "à la main" (selection ligne puis "inserer"), ça marche
je l'enregistre en macro, j'execute, ça plante

pourquoi ?
ce peut il qu'excel 365 fasse des mise à jour qui modifient le comportement d'un code qui marchait ?

merci !
 

zebanx

XLDnaute Accro
Bonjour rafi93

Ci-joint un petit fichier avec code simple pour insérer ligne (dessus/dessous) et colonne (gauche/droite) avec un invènement if = value.
J'espère que cela pourra vous aider au déblocage de votre code
cdlt
thierry
 

Pièces jointes

  • INSERELIGNE.xls
    40 KB · Affichages: 40

rafi93

XLDnaute Occasionnel
merci bien, je vais regarder

en fait, je travaille sur une "table", qui ne commence par forcement en A1 (offset de "D")
et j'ai du mal à comprendre pourquoi certaines syntaxes VBA marchent, et d'autres donnent une erreur (disant semble t il que j'essaie de deplacer une ligne en dehors de la table).

en tatonnant un certain temps,
Range("Tableau1").ListObject.ListRows.Add (ligne - D)
a finit par fonctionner !

mais pas celles ci, sans doute iconoclastes...
' Range("Tableau1").Cells(ligne - D, 1).Insert
' Range("Tableau1").ListRows.Add (ligne - D)

je n'arrive pas à me faire à la syntaxe VBA, et ce n'est pas les exemples de codes que j'ai pu parcourir qui m'aident : un conseil, à part me plonger dans le guide de reference ?
 

zebanx

XLDnaute Accro
Non, je tatonne aussi ^^
Après, le site de jacques.boigontier me parait incontournable par sa profondeur (explications et workbooks à télécharger).

S'agissant des boucles, je remarque souvent, et régulièrement sur les codes difficiles qui sont transmis par les experts sur ce forum, que pour fonctionner c'est plus simple de partir d'un i = derligne to 1 step -1 que i = 1 to derligne.
Quand j'ai cherché pour faire le fichier transmis, par exemple, le pas à pas détaillé allait dans ce sens-là incontestablement

Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 997
Messages
2 094 273
Membres
105 978
dernier inscrit
OliExcel