Masquer les colonnes d'un tableau dont les cellules contiennent #REF

julietmike17 Messages postés 4 Statut Membre -  
eriiic Messages postés 25847 Statut Contributeur -
Bonjour,

Je souhaiterai masquer les colonnes d'un tableau dont les cellules contiennent #REF.

Pouvez vous m'aider ?

Merci d'avance !

8 réponses

JCB40 Messages postés 3461 Statut Membre 469
 
Bonjour,
Un exemple de votre fichier avec explications serait le bienvenu.
Pour transmettre un fichier,
Veillez à ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Cordialement



0
julietmike17 Messages postés 4 Statut Membre
 
Merci je cherchais justement le nom du site en question. Je vais le faire. Voici le lien :
https://www.cjoint.com/c/JJEm24BCqBu
0
Raymond PENTIER Messages postés 71826 Statut Contributeur 17 378
 
Bonjour.

Il n'existe pas de formules ordinaires avec des fonctions classique permettant de manipuler des lignes (masquer / afficher etc.)
Par conséquent tu dois soit utiliser l'outil TRI ou FILTRE, soit écrire une macro en VBA.

0
PHILOU10120 Messages postés 6510 Statut Contributeur 825
 
Bonjour

Pouvez-vous mettre une formule qui vous donne #Réf
Pour la modifier pour avoir comme résultat "" à la place #Réf
Cela serait plus simple
Fournir le fichier serait parfait
0

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

Posez votre question
julietmike17 Messages postés 4 Statut Membre
 
Je précise que c'est un tableau qui est amené à être utilisé dans le temps. Donc certaines affichent #REF car elles font référence à une donnée qui n'existe pas à l'instant T mais qui pourrait exister plus tard.
Le but de la manoeuvre est de simplifier la lisibilité du tableau afin d'afficher uniquement les colonnes avec des données activent dans l'instant.
J'espère mettre fait comprendre.
Je voudrai utiliser la VBA pour cela.
0
Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
Bonjour
sans VBA et sans connaître votre formule, pour ne pas afficher #REF

=SIERREUR(votre formule entre les parenthèses);"")
ce qui donnerrai en D2:
=SIERREUR(LIREDONNEESTABCROISDYNAMIQUE("Degré ";'C:\Users\DU MESNIL\Dropbox\DU MESNIL\1-VITICOLE\1-COGNAC-DISTILLATION-STOCK\[STOCK- EDV EARL DU MESNIL.xlsm]Stock'!$B$11;"Cru";"PC";"CV";"9";"Lieu";"STE");"")
vous renverra une cellule "blanche"

vous pouvez éventuellement afficher un commentaire en final, du genre:
=SIERREUR(formule);"en attente")
crdlmnt
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
Bonjour,

Faire Alt F11 pour accéder à l'éditeur
Dans le Ruban Insertion Module

Mettre ce code:

Option Explicit
'boucle sur la ligne 2 de toutes les colonnes
Sub For_X_to_Next_Colonne()
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
Dim NoLig As Long, Var As Variant
    Set FL1 = Worksheets("Feuil1") 'a adapter
    NoLig = 2 'Lecture de la ligne 2 à adapter
    '(Voir explication sur l'utilisation de Split en bas de cette discussion)
    For NoCol = 1 To Columns(Split(FL1.UsedRange.Address, "$")(3)).Column
        Var = FL1.Cells(NoLig, NoCol)
       If IsError(Var) Then
      Columns(NoCol).EntireColumn.Hidden = True 'Masquer
      ' Columns(NoCol).EntireColumn.Hidden = False 'Afficher
End If
    Next
    Set FL1 = Nothing
End Sub


Mettre le curseur sur: For_X_to_Next_Colonne

Appuyer sur F5 du clavier

Enregistrer classeur prenant en charge les macros
voilà
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonjour,

certaines affichent #REF car elles font référence à une donnée qui n'existe pas à l'instant T mais qui pourrait exister plus tard.
Non. ... qui n'existent plus
Formules qui devront être reprises pour fonctionner à nouveau.
Ca dénote sans doute une mauvaise pratique qu'il va falloir modifier.
eric
0