Posté(e) le 3 octobre 201113 a Bonjour!! J'ai un petit soucis avec un fichier.... En ayant pour base un fichier je dois en supprimer certaines lignes en fonction de la valeur de certaines cellules.... Je suis tombe tombé sur un code que j'ai employé à bon escient et sans problème... Sub New_efface_vieux_avec_tri()Dim i As IntegerWith ThisWorkbook.Sheets("wbra007brut")'Précisez le nom de votre feuille For i = .Range("O" & .Rows.Count).End(xlUp).Row To 2 Step -1'je travaille sur la colonne O'Rows.count permet de retourner le nombre de ligne de la plage range If .Range("O" & i).Value = "XXX" Then .Rows(i).Delete End If Next iEnd With End Sub Mon problème réside dans le fait que le code suivant (en tous points identiques) bugue lui.... Sub test()Dim i As IntegerWith ThisWorkbook.Sheets("wbra007brut")'Précisez le nom de votre feuille For i = .Range("T" & .Rows.Count).End(xlUp).Row To 2 Step -1'je travaille sur la colonne T'Rows.count permet de retourner le nombre de ligne de la plage range If .Range("T" & i).Value = "2" Then .Rows(i).Delete End If Next iEnd WithEnd Sub sur la ligne If .Range("T" & i).Value = "2" Then Sans que je comprenne pourquoi et sans supprimer les lignes ad hoc.... Est ce que quelqu'un a une idée de la raison pour laquelle ça foire? :) (La colonne T est une colonne ne contenant pas de formules, que des valeurs) Merci! Edit: problème de la formule non résolu mais contourné: Sub delete_doubleDim i As IntegerDim z As Integeri = 1With ThisWorkbook.Sheets("wbra007brut")While Not IsEmpty(Range("M" & i)) = Truei = i + 1If Range("M" & i).Value = 2 ThenRows(i).SelectApplication.CutCopyMode = FalseSelection.Delete Shift:=xlUpi = i - 1End IfWendEnd WithEnd Sub Par cette macro qui elle marche... dommage que l'autre macro ne fonctionne pas elle était beaucoup plus "clean" :) Modifié le 3 octobre 201113 a par tleguen84
Posté(e) le 3 octobre 201113 a quel est le message d'erreur? le prog ne rentre pas dans le if donc? peut être en enlevant les guillemets (normalement pas besoin mais c'est sensé marcher avec ou sans) EDIT: dans ton contournement, remplacer Rows(i).SelectApplication.CutCopyMode = FalseSelection.Delete Shift:=xlUp par Rows(i).delete ne marche pas ?
Posté(e) le 3 octobre 201113 a Auteur quel est le message d'erreur? le prog ne rentre pas dans le if donc? peut être en enlevant les guillemets (normalement pas besoin mais c'est sensé marcher sans) Merci de ta réponse! :) Il me mettait erreur dans la ligne gnagnanga (citée plus haut) en me donnant la possibilité d'afficher l'aide :)
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.