#Réf!

toubabou57300 Messages postés 23 Statut Membre -  
toubabou57300 Messages postés 23 Statut Membre -
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

5 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  3. toubabou57300 Messages postés 23 Statut Membre
     
    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
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. toubabou57300 Messages postés 23 Statut Membre
     
    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