PB suppression de ligne a cause d'un #VALEUR!

qeelocke

XLDnaute Nouveau
Bonjour à tous

J'essaie en vain de trouver une solution à mon problème, c'est pourquoi je fais appel a vous.

je suis en train de faire une macro qui récupère une plage dans tous les onglets d'un classeur,
je les copie-colle dans un onglet appelé "Compil"
puis je souhaite supprimer la ligne si l'année de la colonne E est différente de 2013
j'ai donc mis une formule en colonne O, qui écrit le numéro de la semaine si colonne E = 2013 et "N/A" si ce n'est pas le cas.
j'utilise ensuite cette colonne pour supprimer les ligne inutiles ( celles qui son N/A)

je rencontre 2 problèmes.
1) si la date en colonne E n'est pas inscrite correctement, ma formule me donne # Valeur!
j'ai essayer de transformer ce texte pour pouvoir le gérer mais je n'y arrive pas.

2) lorsque la macro qui vient supprimer les ligne si colonne O = N/A tombe sur une ligne avec # Valeur!,
ma macro plante
de plus, j'ai allégé le fichier pour le laisser sur le forum, mais il contient env. 50 onglets et représente 5000lignes compilées dans mon onglet "compil".

le temps de suppression des lignes inutile est catastrophique, si quelqu'un a une idée, je suis preneur)
merci à vous
 

Pièces jointes

  • Pb Valeur.xlsm
    159 KB · Affichages: 39

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : PB suppression de ligne a cause d'un #VALEUR!

Bonjour qeelocke,

ces codes fonctionnent pour la suppression (dans le fichier présenté)
Code:
Private Sub DelLigneCompil()
 With ThisWorkbook.Sheets("Compil")
        For i = .Range("O" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Range("O" & i).Text = "N/A" Then
            .Rows(i).Delete
            End If
        Next i
 End With
 End Sub
Code:
Private Sub DelLigneCompil()
 With ThisWorkbook.Sheets("Compil")
        For i = .Range("O" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Range("O" & i).Text = "N/A" Or .Range("O" & i).Text = "#VALEUR!" Then
            .Rows(i).Delete
            End If
        Next i
 End With
 End Sub
à+
Philippe
 
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : PB suppression de ligne a cause d'un #VALEUR!

Re,

ou encore celui-ci pour gagner un peu de temps
Code:
Private Sub DelLigneCompil()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
 With ThisWorkbook.Sheets("Compil")
        For i = .Range("O" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Range("O" & i).Text = "N/A" Or .Range("O" & i).Text = "#VALEUR!" Then
            .Rows(i).Delete
            End If
        Next i
 End With
 Application.ScreenUpdating = True
 Application.Calculation = xlCalculationAutomatic
 End Su

à+
Philippe
 

qeelocke

XLDnaute Nouveau
Re : PB suppression de ligne a cause d'un #VALEUR!

Bonsoir le forum,

tout d'abord merci à phlaurent55 pour la résolution de mon pb de #valeur!,
en voyant ton code, ca me semble evident, il fallait utiliser ".text" à la place de ".value"
j'y ai pas penser, désolé.

Concernant la lenteur de suppression des lignes, malgré le rafraichissement et le calcul auto en off.
je mets 1min30sec env pour les supprimer dans mon fichier original

Donc si quelqu'un connait une autre méthode beaucoup plus rapide, je suis toujours preneur.
 

Pierrot93

XLDnaute Barbatruc
Re : PB suppression de ligne a cause d'un #VALEUR!

Bonjour,

A tester, ceci devrait éviter la boucle :
Code:
On Error Resume Next
With Sheets("Compil")
    .Range("O2:O" & .Cells(Rows.Count, "O").End(xlUp).Row).SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete
End With
On Error GoTo 0

bonne journée
@+
 

qeelocke

XLDnaute Nouveau
Re : PB suppression de ligne a cause d'un #VALEUR!

Bonjour,

J'ai testé le code de Pierrot93, mais rien ne se passe (aucune suppression de ligne n'est réalisée)
Ce que je comprends dans le code fourni, on recherche les "erreurs excel" et on supprime la ligne.
Dans mon cas, je cherche a supprimer la ligne si colonne O = "N/A". Est ce possible?
Merci
 

Discussions similaires

Réponses
22
Affichages
875

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 989
dernier inscrit
jralonso