Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[RESOLU] Macro avec la fonction If et 2 conditions

chacal33

XLDnaute Junior
Bonsoir à toutes et à tous,

je patauge dans une macro
Mon objectif est de supprimer toutes les lignes x si les cellules (B, x-1) et (B, x+1) contiennent le mot "Mur".
Pour l'instant j'ai ça et évidemment ça ne fonctionne pas (sinon je ne vous demanderais d'aide )

Sub Macro3()
'
' Macro3 Macro

Dim i As Integer
For i = [B65000].End(xlUp).Row To 1 Step -1
If InStr(Cells(2, i - 1), "Mur") > 0 And InStr(Cells(2, i + 1), "Mur") > 0 Then
Rows(i).Delete

End If
Next i

End Sub

Merci d'avance pour votre temps et votre aide.

Matt

EDIT: Rajout de fichier effectué!
 

Pièces jointes

  • Essai.xlsx
    9.9 KB · Affichages: 33
  • Essai.xlsx
    9.9 KB · Affichages: 41
  • Essai.xlsx
    9.9 KB · Affichages: 40
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Macro avec la fonction If et 2 conditions

Bonjour,

mets peut être un tout petit fichier avec le modèle de donnée à traiter et le résultat attendu, plus facile pour t'aider....

bonne soirée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Macro avec la fonction If et 2 conditions

BONJOUR,

En l'état toutes les lignes vons être supprimées, la colonne B contenant systèmatiquement le mot "Mur".... quoique, pas sûr que ce soit la ligne entière que tu veuilles supprimer... d'autre part, pas top toutes ces lignes vides pour gérer aisement un automatisme.... préférable de construire une vraie base de donnée lorsque l'on veut automatiser....
 

chacal33

XLDnaute Junior
Re : Macro avec la fonction If et 2 conditions

Bonjour Pierrot,

C'est effectivement la ligne entière que je souhaite supprimer.
En fait, en fonction classique, ça donnerait (en reprenant le fichier Essai.xls)
SI(ET(TROUVE("Mur ";B8);TROUVE("Mur ";B10);B9="");"Supprimer la ligne 9"; "Essayer ligne suivante")

J'espère que j'arrive à être clair dans mes explications...

Je sais qu'il faudrait des données plus propres. Mais mon objectif là est de nettoyer les données pour les utiliser dans une bdd propre justement.
 

Pierrot93

XLDnaute Barbatruc
Re : Macro avec la fonction If et 2 conditions

Re,

regarde ceci, pas sur que ce soit le résultat attendu.....
Code:
Option Explicit
Sub test()
Dim i As Long
For i = Cells(Rows.Count, 2).End(xlUp).Row To 4 Step -1
    If Cells(i + 1, 2) Like "*Mur*" And Cells(i - 1, 2) Like "*Mur*" Then Rows(i).Delete
Next i
End Sub
 

chacal33

XLDnaute Junior
Re : Macro avec la fonction If et 2 conditions

Re,

Super Pierrot, merci!
J'ai juste rajouté une autre condition, et ça fonctionne nickel!

Question subsidiaire, à quoi sert le code "Option Explicit"?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…