Décallage plage de recherchev après insertion ligne

Bonjour à toutes et tous,

Je vous amène un nouveau problème.

Sur une première feuille "Bon de commande", j'ai une macro qui copie une ligne de donnée vers une autre feuille "BDD_order" en faisant une insertion de ligne en A2, afin que les dernières données copiées soient en premier.

Le problème est que sur une troisième feuille "Modification de commande" je fais une recherchev de ces données afin de modifié la commande sélectionnée et que ma recherchev qui est censée commencer en "A2", commence finalement en "A3" après l'insertion des données...

Après de nombreuse recherche je m'avoue presque vaincu ... Mais une petite idée me viens, faire un test de ligne vide et coller mes valeurs dans la première ligne vide trouvée. Problème, je ne trouve pas comment faire ce code ...

Mon code (aidé par Dan)

With Sheets("BDD_order")

                .Range("A2:BU2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
                 Sheets("Bon de commande").Range("A2:AU2").Copy
                .Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone

End With
                Application.CutCopyMode = False

Par avance merci à vous.

(pas de fichier a joindre par soucis de confidentialité ...)

bonjour

essayer de mettre $A$2 a la place de "A2"

Bonjour S..., bonjour le forum,

Désolé je n'ai lu que la dernière phrase de ton post.

Recréer ton problème avec une poignée de données anonymes et tellement simple et rapide sur Excel que ce genre de phrase me hérisse les poils, voire les 4 cheveux qu'il me reste !...

Sinon l'utilisation d'une plage nommée dans la formule RECHERCHEV devrait résoudre ton problème (comme quoi j'avais finalement tout lu...)

Merci de vos retours !

Amir, j'ai essayé avant de poster et cela ne fonctionne pas, la plage ce décale quand même d'une ligne vers le bas.

Thau-Theme :

Dans la feuille "modification de commande" rend toi dans la bon de commande au niveau de "A20" er regarde la formule. Ensuite, va dans "Bon de commande", clique sur exporter en PDF et retourne dans "Modification bon de commande" et tu constateras l'erreur.

La commande est exportée dans BDD_order (là où la recherchev est effectuée)

Merci à vous !

bonjour

essayer ca

=SIERREUR(RECHERCHEV($G$15;DECALER(BDD_order!A:A;1;0;9996;1);6;FAUX);"")
ThauThème a écrit :

, voire les 4 cheveux qu'il me reste !...

Sinon l'utilisation d'une plage nommée dans la formule RECHERCHEV devrait résoudre ton problème (comme quoi j'avais finalement tout lu...)

Ah ThauThème, je pense qu'il te restera qu’un poil quand tu te rends compte que même la plage nommée se change

Merci de ton retour,

Ta proposition ne fonctionne pas, cela m'affiche #REF! quand j'enlève le "SIERREUR( ;"")

bonjour

oui si vrai

je pense c est comme ca

=SIERREUR(RECHERCHEV($G$15;DECALER(BDD_order!A:A;1;0;9994;73);6;FAUX);"")

73 = nbres de colonne de la matrice de recherches

9994= nbres de lignes de la matrice de recherches

ca veut dire A2: BU9995

Cela fonctionne, c'est magnifiique !

Merci de ton aide, tu m'as permis de clôturer mon projet dans les temps !

A bientôt

Rechercher des sujets similaires à "decallage plage recherchev insertion ligne"