beankylla Posté(e) le 3 octobre 2011 Partager Posté(e) le 3 octobre 2011 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" :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
RING3R Posté(e) le 3 octobre 2011 Partager Posté(e) le 3 octobre 2011 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
beankylla Posté(e) le 3 octobre 2011 Auteur Partager Posté(e) le 3 octobre 2011 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 :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.