Suppression des lignes

Bonjour à tout le monde,

Je me demande s'il y a une formule de supprimer (pas masquer) les lignes qui contiennent des #VALEUR! (colonne E) entièrement ,

Merci,

12valeur.xlsx (422.91 Ko)

Bonjour,

Une formule permet de renvoyer une valeur, pas de supprimer des lignes, en revanche tu peux rendre tes erreurs invisibles si elles sont le résultat d'une formule, en ajoutant la fonction SIERREUR(taformule; "") tu peux afficher "" en cas d'erreur, sinon il faudra passer par une étape manuelle pour supprimer les lignes en trop mais ça prend quelques secondes à faire

merci, ça j'ai su faire.

C'est plutôt d'une macro dont j'aurai besoin pour automatiser la suppression des lignes inutiles

Bonjour,

Une formule permet de renvoyer une valeur, pas de supprimer des lignes, en revanche tu peux rendre tes erreurs invisibles si elles sont le résultat d'une formule, en ajoutant la fonction SIERREUR(taformule; "") tu peux afficher "" en cas d'erreur, sinon il faudra passer par une étape manuelle pour supprimer les lignes en trop mais ça prend quelques secondes à faire

Bonjour,

D'accord avec la remarque de Ausecours ... une solution "manuelle" possible:

  • activer une cellule quelconque de la liste
  • appuyer sur la touche F5 > bouton Cellules...
  • sélectionner "Constantes" dans l'exemple joint, les erreurs ne sont pas le résultats de formules et décocher tout sauf "Erreurs"
  • les cellules étant sélectionnées par la manip qui précède, appuyer sur Ctrl+- (Ctrl et le signe -) et dans la boîte de dialogue, activer "Ligne entière", puis valider

Bonjour U. Milité

Sympa les raccourcis, je ne connaissais pas, j'avais déjà vu la fenêtre du F5 une fois mais je ne saurais vraiment pas la retrouver sans le raccourci... c'est dommage c'est bien pratique

Re-bonjour,

j'avais déjà vu la fenêtre du F5 une fois mais je ne saurais vraiment pas la retrouver sans le raccourci

... à confirmer pour les versions 2010 (2013 c'est presque certain à 100% ): dans l'onglet Accueil, tout au bout, à droite, dans la liste avec "Rechercher", "Remplacer", etc (c'est l'option "Atteindre")

Re-bonjour,

j'avais déjà vu la fenêtre du F5 une fois mais je ne saurais vraiment pas la retrouver sans le raccourci

... à confirmer pour les versions 2010 (2013 c'est presque certain à 100% ): dans l'onglet Accueil, tout au bout, à droite, dans la liste avec "Rechercher", "Remplacer", etc (c'est l'option "Atteindre")

Je confirme c'est bien ici

bonjour à tous

visiblement c'est un fichier d'acquisition de données

ces données servent à une analyse (TCD, graphe, statistiques comparatives...

le mieux et le plus simple c'est le menu Données/Obtenir "à partir de tableau ou d'une plage"

dans la fenêtre de Power Query qui s'ouvre, clic droit sur le mot "Nombre de données manquantes à la réception dans Aquacalc; par rapport à la fréquence minimale d'enregistrement" en ligne 1, faire supprimer les erreurs

"charger"

magie !

désormais, il suffira de cliquer "actualiser"

note : on peut faire bien d'autres transformatins

amitiés à tous

ci-joint

Bonjour alex_, jmd, Ausecour, U.Milité,

Même si je suis entièrement d'accord avec vos recommandations, mais puisqu'Alex veut absolument une macro,

En voici une (ce code te semblera bien familier Ausecour, ).

Sub Bouton1_Cliquer()
  Dim ligFin, colFin
      colFin = 9
      ligFin = Range("E" & Rows.Count).End(xlUp).Row

 tableau = Range("A2", Cells(ligFin, colFin))

For i = LBound(tableau, 1) To UBound(tableau, 1)
    If WorksheetFunction.IsError(tableau(i, 5)) = True Then
        For j = LBound(tableau, 2) To UBound(tableau, 2)
            tableau(i, j) = ""
        Next j
    End If
Next i

Range("a2").Resize(UBound(tableau, 1), UBound(tableau, 2)) = tableau

End Sub

Le temps d'exécution du code que j'avais initialement écrit est bien plus long...donc merci à toi pour l'inspiration (il faut absolument que je me familiarise avec l'utilisation des tableaux... ).

Sub Bouton2_Cliquer()

  Dim i As Integer, dl As Integer

   Application.ScreenUpdating = False

    With Sheets("Sheet1")
     dl = .Range("E" & Rows.Count).End(xlUp).Row
      For i = dl To 2 Step -1
       If WorksheetFunction.IsError(Range("E" & i)) = True Then Rows(i).EntireRow.Delete
      Next i
    End With

   Application.ScreenUpdating = True

End Sub
1valeur.xlsm (448.65 Ko)

Bien entendu, il est préférable de suivre les recommandations citées précédemment....

Amitiés à tous,

Bonjour Alex,

Je te propose de mettre ce code dans une macro

With ActiveSheet
R = .Range("A65536").End(xlUp).Row
For j = 1 To R
If Cells(j, 5).Text = "#VALEUR!" Then
  Rows(j).Delete Shift:=xlUp
    j = j - 1
    End If
Next
End With

En fait la cellule en valeur contient "ERREUR 2015" et en texte #VALEUR!

Bonjour ... tout le monde

@BMLAMINE : Tu as testé ton code ?

C'est plutôt d'une macro dont j'aurai besoin pour automatiser la suppression des lignes inutiles

re

"automatiser", c'est ce que Power Query fait le mieux

sans les complications de VBA

amitiés

Bonjour U. Milité

Oui j'ai testé le code et il a fonctionné avec le fichier que j'ai téléchargé

Bonjour jmd,

Oui bien sûr qu'il y a mieux mais comme le post est sur excel-vba, j'ai fait une réponse dans ce sens que je n'ai pas optimisé pour permettre à notre ami de bien comprendre le fonctionnement de la macro.

bonjour BMLAMINE

il arrive très souvent que les questions disent : "je voudrais avec VBA faire ceci"

mais en réalité, la vraie question est "je voudrais faire ceci le plus simplement"

VBA, tout comme Power Query, tout comme les formules, tout comme les TCD sont des outils

il faut utiliser le plus facile et le plus direct

celui qui pose une question ignore souvent les outils les plus simples

  • "bonjour M. le vendeur, je voudrais un tourne-vis pour planter un clou"
  • "savez-vous qu'il existe des marteaux ?"

amitiés

Bravo jmd,

J'en tiendrai compte

j'ai beaucoup aimé le tournevis et le marteau

Tu peux s'il te plait jeter un coup d’œil sur mon post peut être que tu as une solution pour moi?

https://forum.excel-pratique.com/viewtopic.php?f=2&t=124455&start=10

merci, ça j'ai su faire.

C'est plutôt d'une macro dont j'aurai besoin pour automatiser la suppression des lignes inutiles

Bonjour à tous,

@ Alex

Pour supprimer des lignes en fonction d'un critère ... tu as deux possibilités :

1. La macro qui utilise le principe de la boucle ... avec un code excellent proposé par xorsankukai

2. La macro qui utilise le principe de Autofilter ... avec un code qui supprime les cellules visibles après avoir appliqué ta condition

En espèrant que cela t'aide

Même si je suis entièrement d'accord avec vos recommandations, mais puisqu'Alex veut absolument une macro,

En voici une (ce code te semblera bien familier Ausecour, ).

[...]

Le temps d'exécution du code que j'avais initialement écrit est bien plus long...donc merci à toi pour l'inspiration (il faut absolument que je me familiarise avec l'utilisation des tableaux... ).

Bonjour xorsankukai

Oui ça me parait bien familier comme code! C'est sûr que se familiariser avec des tableaux ça permet de bien accélérer le code, bonne chance pour ton apprentissage

Merci pour votre solutions, au fait j'ai une plus grande macro qui fait d'autre traitement et j'avais besoin de ce bout de code pour la finaliser

Rechercher des sujets similaires à "suppression lignes"