Suppression des lignes en fonction de la valeur de la cellule

zeltron

XLDnaute Occasionnel
Bonjour à tout le forum,

Je ne comprends pas pour ma macro ne fonctionne pas.

Vous verrez en fichier joint, sur le 1er onglet ('Finitial" j'ai un bouton contenant le code. J'ai un 2eme onglet ("Bass") qui contient en colonne Z des valeurs. Je souhaites supprimer tous les lignes contenant en colonne Z la valeur "#REF!".

Pour cela, j'ai le code suivant:

Private Sub CommandButton1_Click()
Dim x As Range

Set x = ThisWorkbook.Sheets("Bass").Range("Z1:Z" & Range("Z65536").End(xlUp).Row)
For Each x In x
If x = "#REF!" Then
x.EntireRow.Delete
End If
Next x
End Sub


Je ne vois pas pourquoi cela ne fonctionne pas.
Pouvez vous m'aider?

Vous remerciant par avance pour votre retour

Cordialement

Zeltron
 

zeltron

XLDnaute Occasionnel
Re : Suppression des lignes en fonction de la valeur de la cellule

J'ai oublié de mettre le fichier joint

Cordialement

Zeltron
 

Pièces jointes

  • Problème.xlsm
    20.4 KB · Affichages: 37
  • Problème.xlsm
    20.4 KB · Affichages: 41
  • Problème.xlsm
    20.4 KB · Affichages: 39

Pierrot93

XLDnaute Barbatruc
Re : Suppression des lignes en fonction de la valeur de la cellule

Bonjour,

A priori ton fichier n'est pas passé... petite info au passage, quand tu supprimes des lignes dans une boucle il faut commencer par la fin et remonter, ce dans une boucle "for" :

Code:
For i = 9999 To 2 Step -1

bon après midi
@+
 

zeltron

XLDnaute Occasionnel
Re : Suppression des lignes en fonction de la valeur de la cellule

Je ne comprends pas.
J'ai rectifier le code comme vous me l'avez indiqué et cela ne fonctionne pas.

J'ai mis le fichier modifié en piece jointe

Merci

Zeltron
 

Pièces jointes

  • Problème2.xlsm
    21.1 KB · Affichages: 35

zeltron

XLDnaute Occasionnel
Re : Suppression des lignes en fonction de la valeur de la cellule

Merci Pierrot de suivre mon problème.

Ton code fonctionne, mais dès que j'essaie de mettre une condition sur la valeur de la cellule cela ne fonctionne pas. Il n'y a pas rien, comme si la valeur à chercher n'était pas dans la colonne. Que cette valeur soit un chifre ou du texte

Je te joint le fichier version 3

Merci

Zeltron
 

Pièces jointes

  • Problème3.xlsm
    21.2 KB · Affichages: 49

job75

XLDnaute Barbatruc
Re : Suppression des lignes en fonction de la valeur de la cellule

Re,

Pour compenser ma grossière erreur voici une solution rapide sur un très grand tableau :

Code:
Private Sub CommandButton1_Click()
Dim t, ncol%, i&, n&, j%
With ThisWorkbook.Sheets("Bass")
  t = .Range("A1", .UsedRange)
  ncol = UBound(t, 2)
  For i = 1 To UBound(t)
    If Not IsError(t(i, 26)) Then
      n = n + 1
      For j = 1 To ncol
        t(n, j) = t(i, j)
      Next
    End If
  Next
  If n Then .Range("A1", .UsedRange).Resize(n) = t
  .Rows(n + 1 & ":" & .Rows.Count).Delete
End With
End Sub
Edit : à condition qu'il n'y ait pas de formules (ni de cellules fusionnées).

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Suppression des lignes en fonction de la valeur de la cellule

Re,

J'ai dupliqué la plage Z1:Z61 jusqu'à la ligne 122000.

Sur Win 8 Excel 2013 voici les durées d'exécution :

- code du post #7 => 47 secondes

- code du post #11 => 1,9 seconde.

A+
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
153
Réponses
7
Affichages
189

Statistiques des forums

Discussions
312 231
Messages
2 086 455
Membres
103 216
dernier inscrit
LoshR7