IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

macro suppresion #REF!


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut macro suppresion #REF!
    Bonjour,

    J'essaye d'utiliser une macro simple qui me permet de supprimer automatiquement les #REF! de toutes les cellules contenant des formules avec des erreurs #REF!.
    Malheureusement la macro ne marche pas. Elle ne fait rien du tout quand on la lance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub Suppression_REF()
             Dim nm As Object
     
             ' recherche #REF! dans la feuille active
             For Each nm In ActiveSheet.Names
     
                ' ci trouve #REF! alors
                If InStr(1, nm.RefersTo, "#REF!") Then
     
                   ' supprime "REF!
                   nm.Delete
     
                End If
             Next
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For Each nm In ActiveSheet.usedrange
    If nm.texte = "#REF!" Then

  3. #3
    Membre averti
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut
    Ce nouveau code provoque une erreur d'exécution 438.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    quelque chose comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub toto()
    Dim Cell As Range
        For Each Cell In Feuil1.UsedRange.SpecialCells(xlCellTypeFormulas).Cells
            If Cell.Text = "#REF!" Then Cell.Clear ' ou delete, tu adaptes
        Next Cell
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut
    C'est pas complètement ça.
    Je voudrais garder le contenu de la cellule et pas supprimer complètement tout son contenu.
    Juste supprimer #REF! dans les formules contenu dans les cellules de telle sorte que les formules marche.

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    euh ...

    c'est pas une macro qu'il te faut, c'est simplement insérer une condition dans ta formule pour tester si elle est en erreur !

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(MOYENNE(A1;A4;A6);"")

  7. #7
    Membre averti
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut
    C'est un classeur avec plein de formule dont certaine colonne peuvent être supprimer par une macro en fonction de différent critère.
    A chaque fois qu'ne colonne est supprimé toute les formules ce mette en erreur.
    Je voudrais juste rajouter une macro pour corriger les formules en supprimer les #REF! du aux colonnes supprimées.
    C'est trop laborieux à faire par une formule dans excel. Il y'a trop de case à modifier.

  8. #8
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    peux-tu nous donner quelques exemples de formules qui sont dans ton classeur et qui tombent en #REF! quand tu supprimes une colonne ?
    quels sont les critères liés à tes suppressions de colonnes ? et pourquoi supprimer des colonnes ?

    je crois que tu ne mesures pas le fait que corriger par macro ces effets n'est pas pratique, et sera un peu usine à gaz
    sans oublier que tu parles de tonnes de formules ... bonjour le temps de traitement

    Donc, c'est les causes qu'il faut corriger ... il faut résoudre ça en amont

  9. #9
    Membre averti
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut
    Voila le fichier.
    Voilà ce que je voudrais faire :
    Scanner les formules colonne X et Z. Supprimer les fonctions et ne mettre à la place que la formule valide. (exemple =SI(P3="mat3";(P8*0,8+Q8+S8+U8*1,5)*K8;SI(P4="Type14";O8*K8*L8;(P8*M8+Q8*2)*K8)) et que la valeur en P3 est mat3 alors juste mettre = (P8*0,8+Q8+S8+U8*1,5)*K8
    Ensuite supprimer les colonnes et les lignes (bloc en orange mais normalement en blanc sur le fichier d’origine) contenant la valeur 0 ou bien pas de valeur en colonne E,H,J,M,R,U,Z
    Et pour finir modifier les formules pour quelle fonctionne sans ces blocs (supprimer le #Ref! des formules).

    Je me demande ci c'est pas un peut trop compliqué d'ailleurs

    A+
    Fichiers attachés Fichiers attachés

  10. #10
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Donc, si j'ai bien compris, tu veux tuer le messager au lieu de corriger le problème. M'est avis que tu vas terminer avec un système de créateur d'erreurs en cascade et que les dommages collatéraux vont être considérables.

    Et puis ton fichier ne montre aucun #REF, même en mettant mat3 dans P3.

    Et puis, comment fait-on pour deviner la bonne formule.

    Et puis, si tu veux le fond de ma pensée; tu veux utiliser une technique pourrie, pour arranger un classeur pourri. Ce serait bien plus intelligent de revoir ton classeur d'origine pour éviter tes acrobaties.

  11. #11
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    pourquoi ne pas masquer tes lignes/colonnes au lieu de les supprimer ?

  12. #12
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu peux tester cette moulinette sur la feuille une fois les colonnes et lignes supprimées, les "*#REF!" et "+#REF!" seront supprimés des formules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Sub Test()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Formule As String
     
        Set Plage = ActiveSheet.UsedRange
     
        For Each Cel In Plage.Cells.SpecialCells(xlCellTypeFormulas)
     
            If InStr(Cel.Formula, "#REF!") <> 0 Then
     
                Formule = Replace(Cel.Formula, "*#REF!", "")
                Formule = Replace(Formule, "+#REF!", "")
                Cel.Formula = Formule
     
            End If
     
        Next Cel
     
    End Sub
    Hervé.

Discussions similaires

  1. [XL-2003] Macro d'import de données selon ref qui ne fonctionne pas
    Par sharox dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/01/2015, 09h34
  2. [XL-2007] Macro, pour supprimer les lignes contenant « #REF! »
    Par LittleDaddy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/01/2011, 00h05
  3. MACRO: Inserer une ref excel dans word
    Par tropik34 dans le forum VBA Word
    Réponses: 5
    Dernier message: 06/06/2008, 19h42
  4. macro pour confirmer la suppresion du fichier
    Par doudou_ninie dans le forum VBA Word
    Réponses: 3
    Dernier message: 03/04/2008, 21h25
  5. Réponses: 4
    Dernier message: 28/03/2008, 09h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo