Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

récupérer valeurs tableau sans #N/A

Bene25

XLDnaute Nouveau
Bonsoir,

J'ai un tableau avec une dizaine d'onglet, chaque onglet correspond à type de données qui alimente un premiere onglet qui fait office de reporting (tableaux, graphiques etc....) Dans un de mes onglets j'ai des tableaux avec des valeurs #N/A qui sont issus d'une formule, je souhaiterais récupérer les données de ces tableaux sans les lignes ou cette valeurs apparait. j'ai essayé plusieurs méthodes rien y fait, un tcd ne répond pas à mes attentes. je vous joins un bout de fichier en PJ : un onglet valeurs à récupérer un autre tableau souhaité.

Auriez vous une solution?

d'avance merci
 

Pièces jointes

  • exemple.xlsx
    37.7 KB · Affichages: 58
  • exemple.xlsx
    37.7 KB · Affichages: 57
  • exemple.xlsx
    37.7 KB · Affichages: 56

Victor21

XLDnaute Barbatruc
Re : récupérer valeurs tableau sans #N/A

Bonjour, Bene25.

Supprimez les NA à la source :
- SI(ESTNA(Valeur ou Formule);0;Valeur ou Formule)
- SIERREUR(Valeur ou Formule);0)

Utilisez une colonne supplémentaire, collez-y la formule =nb.si(E1:AE1;NA()), filtrez les 27 sur cette colonne et supprimez les lignes filtrées.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : récupérer valeurs tableau sans #N/A

Bonjour Bene25, Patrick, le forum,

Code à placer où vous voulez dans VBA :

Code:
Sub SupprimeErreurs()
Dim dest As Range, source As Range
Set dest = Feuil1.Rows(12) 'ligne à adapter
Set source = Feuil2.UsedRange 'à adapter
Application.ScreenUpdating = False
dest.Resize(Rows.Count - dest.Row + 1).Clear 'RAZ
With dest.Resize(source.Rows.Count)
  source.EntireRow.Copy .Cells 'pour copier les formats
  .Value = source.EntireRow.Value 'copie les valeurs
  On Error Resume Next 'si aucune valeur d'erreur
  .SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete
End With
dest.Parent.Columns.AutoFit 'ajustement largeur
End Sub
Bonne journée et A+
 

job75

XLDnaute Barbatruc
Re : récupérer valeurs tableau sans #N/A

Re,

Bien entendu si l'on veut traiter directement la feuille des erreurs c'est trivial :

Code:
Sub SupprimeErreurs1()
On Error Resume Next 'si aucune valeur d'erreur
With ActiveSheet.Cells
  .SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
  .SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete
End With
End Sub
Edit : et bien sûr on peut le faire sans macro :

- touche F5 => Cellules => Constantes => cocher "Erreurs"

- commande Supprimer => Ligne entière

- répéter ces opérations pour les formules.

A+
 
Dernière édition:

Bene25

XLDnaute Nouveau
Re : récupérer valeurs tableau sans #N/A

Bonjour à tous

merci pour vos réponses!

@victor21 : j'ai testé votre formule, le problème c'est que je ne peux pas supprimer les #N/A à la source, parce que ces valeurs peuvent ne plus être en #N/A demain...

@job75: dsl je ne connais pas le vba, néanmoins voila ce que j'ai mis et en PJ le résultat que j'ai obtenu sur mon tableau original... pas vraiment le resultat espéré


Et le 2eme post rien compris....

et heu... j'ai aucune idée de ce qui peut coincer....
 

Pièces jointes

  • exemple_V2.xlsx
    38.2 KB · Affichages: 41
  • exemple_V2.xlsx
    38.2 KB · Affichages: 42
  • exemple_V2.xlsx
    38.2 KB · Affichages: 45

Bene25

XLDnaute Nouveau
Re : récupérer valeurs tableau sans #N/A

bonsoir,
En fait la seule qui change dans mon fichier d origine par rapport à celui posté. C'est que mes données sources se trouve sur la feuille 8 colonne M ligne 152 et que le résultat doit "arrivé " en feuille 4 colonne B ligne 82. Votre macro doit être elle recopier telle quelle dans le Vba?
Merci
 

job75

XLDnaute Barbatruc
Re : récupérer valeurs tableau sans #N/A

Re,

Si vous êtes sûr de ce que vous dites :

Code:
Sub SupprimeErreurs()
'Feuil4 et Feuil8 sont les CodeNames des feuilles
Dim dest As Range, source As Range
Set dest = Feuil4.Cells(82, "B") 'à adapter
With Feuil8 'feuille source, à adapter
  Set source = .Cells(152, "M") 'à adapter
  Set source = .Range(source, .Cells.SpecialCells(xlCellTypeLastCell))
End With
Application.ScreenUpdating = False
dest.Resize(Rows.Count - dest.Row + 1).EntireRow.Clear 'RAZ
With dest.Resize(source.Rows.Count, source.Columns.Count)
  source.Copy .Cells 'pour copier les formats
  .Value = source.Value 'copie les valeurs
  On Error Resume Next 'si aucune valeur d'erreur
  .SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete
End With
dest.Parent.Columns.AutoFit 'ajustement largeur
End Sub
Bien sûr je n'ai pas testé faute de fichier

Bonne fin de soirée.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…