Je suis parti du principe :
- que nous sommes en présence d'un tableau structuré (ListObject) appelé BASEDEDONNEES, et contenant une colonne dont l'en-tête est VOITURE
- que les données commencent en ligne 2 (avec donc la ligne de titres en 1)
Est-ce bien le cas ?
Si oui, alors les codes que je t'ai proposé n'ont pas a être modifiés, tu as changé le positionnement du Cells(x,y) je vois
Si non, tu peux indiquer où se trouve la ligne de titre ?
1) Pour le problème avec l'écriture de la formule :
Je note que tu as aussi modifié la formule, en remettant une parenthèse ouvrante et fermante et en oubliait de mettre des doubles parenthèses avant et après ton "Information manquante"
ma proposition :
"=SIERREUR(RECHERCHEV(Voiture;TABLEAUVENTE;2;FAUX);""Information manquante"")"
la tienne :
"=SIERREUR((RECHERCHEV(Voiture;TABLEAUVENTE;2;FAUX);Information manquante))"
Ce à quoi je remarque une éventuelle coquille dans ma proposition initiale car je pensais que voiture était une plage nommée !
Comme je ne suis pas sûr de ce que dois faire ta formule, voici une proposition
"=SIERREUR(RECHERCHEV([@Voiture];BASEDEDONNEES[#Tout];2;FAUX);""Information manquante"")"
2) Pour l'erreur avec Autofill
Ma proposition partait de la première cellule de la colonne "VOITURE" pour étirer la formule sur toute la colonne.
De ton côté, non seulement tu pars de la 19è cellule ... mais sur 12ème colonne après la colonne "VOITURE" !
En effet, le bloc "With" de ma proposition se place sur la colonne "VOITURE"
Donc le .Cells(1,1) équivaut à la première "VOITURE", .Cells(2,1) à la seconde VOITURE ..... et si tu changes le deuxième chiffres tu vas changer de colonne en te décalant.
Ca génère deux problèmes :
- qui ne fera pas planter le code si tu as suffisament de colonnes : tu va recopier les formules de la mauvaise colonne avec le "12" de ton .Cells(19,12)
- qui fait planter ton code : on ne peux faire une copie de formule que dans un sens à la fois (haut / bas / gauche / droite). Or, étant sur la ligne 19, tu demandes à VBA de faire une recopie sur toute la colonne. C'est à dire que tu lui demandes de remplir les 18 cellules au dessus, et celles en dessous. D'où l'erreur
Partager