Aller au contenu

[RESOLU] Visual basic


beankylla

Messages recommandés

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

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...