#Réf!

Fermé
toubabou57300 Messages postés 21 Date d'inscription vendredi 3 mai 2013 Statut Membre Dernière intervention 4 janvier 2025 - Modifié par toubabou57300 le 21/12/2015 à 14:30
toubabou57300 Messages postés 21 Date d'inscription vendredi 3 mai 2013 Statut Membre Dernière intervention 4 janvier 2025 - 22 déc. 2015 à 13:11
Bonjour à tous,

Dans un fichier j'ai une feuille 1 et une feuille 10
Dans la feuille 10, la cellule "A94", contenant la formule suivante:
=Feuil1!$a12

le informations remplissant cette cellule se trouvant sur la feuille 1, dans un tableau, dans la cellule "A12".
Ce tableau est trié automatiquement par une macro. Lors de la suppression de toute une ligne de ce tableau (par le biais d'un UserForm), je reçois dans ma feuille 10 l'erreur suivante:
#Réf!

Pourriez vous m'aider à supprimer cette erreur ? Et donc de garder la formule initiale.

Merci par avance

Toubabou57300



A voir également:

5 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
21 déc. 2015 à 15:09
Bonjour
ça semble difficile,( mais je ne suis pas un cador en VBA loin de là), sauf à régénérer a, formule avec le macro
chaque fois que vous supprimez un =e ligne, la formule se décalé=e d'autant 12 devient A1 ect... et quand vus avez passé A1, c'est bien sur #REF qui s'affiche
une ruse pour contourner ce problème serait de ne pas supprimer de ligne avec la macro, mais de copier tout le tableau (voir plus, les lignes vides n'ont pas d'importance) en dessous de la ligne et de le coller sur la ligne à supprimer

crdlmnt
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
Modifié par Mike-31 le 21/12/2015 à 16:55
Bonsoir,

pas besoin de macro pour ça, si ta première formule est en ligne 2 et la première valeur à rapatrier est également en ligne A2 utilise cette formule

=INDIRECT("Feuil1!A"&LIGNE())


s'il y a un décalage de ligne il suffira d'ajouter ou ôter une valeur à l'index ligne exemple =INDIRECT("Feuil1!A"&LIGNE()+2)

et à partir de la tu peux supprimer tes lignes Feuil1, si tu rencontres des difficultés crée un fichier exemple et envoi le à partir de ce lien pour avoir une formule adaptée
https://www.cjoint.com/
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
toubabou57300 Messages postés 21 Date d'inscription vendredi 3 mai 2013 Statut Membre Dernière intervention 4 janvier 2025
21 déc. 2015 à 20:10
Bonsoir à tous,

Désolé cela ne fonctionne pas. Lorsque je rentre votre formule il va me chercher une information dans la 95ème cellule!!!!

Je vous joint mon fichier

Identifiant: Administrateur
MP: 0

Dans l'UserForm "SIGNALÉTIQUE", sélectionner une personne, puis supprimer.
Ensuite dans la feuille LUTIN la personne est supprimé mais pas dans "SYNTHÈSE"

Je ne suis pas sûr d'être très clair

http://www.cjoint.com/c/ELvthhjmXPb

Merci par avance

Toubabou57300
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
21 déc. 2015 à 22:29
Re,

plusieurs problèmes sur ta feuille SIGNALETIQUE tu recherches un nom exemple ALDO ensuite sur tes feuilles LUTIN et Synthèse en colonne A tu as le nom et le prénom, il faut faire un choix, ensuite avec ton code il faudrait rechercher sur des valeurs saisies pas le résultat de formule

si sur chaque feuille en A tu saisis uniquement le nom exemple ALDO en remplaçant ces lignes de code
Sheets("SIGNALETIQUE").Rows(Box1.ListIndex + 2).Delete Shift:=xlUp
Worksheets("LUTIN").Rows(lig_HE + 10).Delete Shift:=xlUp

par
Sheets("Synthèse").Select
Range("A" & Sheets("Synthèse").Columns(1).Find(Box1.Text, , , xlWhole, xlByColumns, xlPrevious).Row).EntireRow.Delete
Sheets("LUTIN").Select
Range("A" & Sheets("LUTIN").Columns(1).Find(Box1.Text, , , xlWhole, xlByColumns, xlPrevious).Row).EntireRow.Delete
Sheets("SIGNALETIQUE").Select
Range("A" & Sheets("SIGNALETIQUE").Columns(1).Find(Box1.Text, , , xlWhole, xlByColumns, xlPrevious).Row).EntireRow.Delete

ton code doit fonctionner
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toubabou57300 Messages postés 21 Date d'inscription vendredi 3 mai 2013 Statut Membre Dernière intervention 4 janvier 2025
22 déc. 2015 à 13:11
Bonjour MIKE-31,

Un petit soucis lorsque je modifie le code, je reçois le message d'erreur suivant:


Sheets("Synthèse").Select
Range("A" & Sheets("Synthèse").Columns(1).Find(Box1.Text, , , xlWhole, xlByColumns, xlPrevious).Row).EntireRow.Delete
Sheets("LUTIN").Select
Range("A" & Sheets("LUTIN").Columns(1).Find(Box1.Text, , , xlWhole, xlByColumns, xlPrevious).Row).EntireRow.Delete
Sheets("SIGNALETIQUE").Select
Range("A" & Sheets("SIGNALETIQUE").Columns(1).Find(Box1.Text, , , xlWhole, xlByColumns, xlPrevious).Row).EntireRow.Delete



Tous les ==> Range("A &........... sont surligné en jaune

Merci


Toubabou57300
0