bug etrange dans suppression

F

fredo

Guest
bonjour ,

veuillez trouver ci joint mon code, qui me parait etrange.
en effet il ne marche pas et si je remplace le c.entirerow.delete par c.entirerow.clear, la ça fonctionne mais moi ce qui m'interesse c'est la fonction delete pour pouvoir enchainer avec un shift;=x1up pour remonter mes lignes....
j'espere que vous pourrez m'aider ...
merci

For Each c In Selection
If c.Value <> "" Then
If c.Offset(0, 21).Value = "" Then
c.EntireRow.Delete
End If
End If
Next c
 
E

EricS

Guest
Bonjour

je ne sais pas ce qui ne fonctionne pas dans ton code mais attention lorsque tu utilises le delete, cela change ton nb de lignes et la cellule pointée par ton curseur (activecell)

j'ai peut-être un exemple dans mes fichiers, si tu veux que je le recherche, dis le moi

A+

Eric
 
P

Pascal76

Guest
Bonjour,

Dans la même pensée qu'Eric, J'aurais plutôt tendance à faire ceci en imaginant que ta collone de début soit la A

For x = Range("A65536").End(xlUp).Row To 1 Step -1
If Range("A" & x) <> "" And Range("U" & x) = "" Then Rows(x).Delete
Next

Bon courage

Pascal
 
F

fredo

Guest
j'aurais besoin d'un dernier coup de pouce,
grace a la macro de pascal, je supprime mes lignes dont la colonne A est remplie ET la colonne V est vide ùais je voudrais aller plus loin:

si A est remplie, et que V est vide, alors je voudrais enregistrer la valeur de A et effacer toute les lignes contenant la meme valeur dans leur colonne A ...meme si leur colonne V n'est pas vide.

En resumé, j'ai des groupes de lignes qui ont la meme valeur en A et si je trouve parmi ce groupe une ligne dont la valeur en V est nulle, je veux pourvoir effacer le groupe entier de ligne....

voila j'espere que des ames charitables pourront se plonger dans mon probleme
merci bcp

fredo
 
P

Pascal76

Guest
Re

essaies ceci

Sub toto()

ReDim tableau(1 To 1)
y = 0

For x = 1 To Range("A65536").End(xlUp).Row
If Range("A" & x) <> "" And Range("B" & x) = "" Then
y = y + 1
ReDim Preserve tableau(1 To y)
tableau(y) = Range("A" & x)
End If
Next
For x = Range("A65536").End(xlUp).Row To 1 Step -1
For z = 1 To y
If Range("A" & x) = tableau(z) Then
Rows(x).Delete
Exit For
End If
Next
Next
End Sub


Bon courage

Pascal
 

Discussions similaires

Statistiques des forums

Discussions
313 060
Messages
2 094 924
Membres
106 128
dernier inscrit
lopierre