[RESOLU] Macro avec la fonction If et 2 conditions

chacal33

XLDnaute Junior
Bonsoir à toutes et à tous,

je patauge dans une macro :confused:
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 :p)

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,

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
 

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 483
Membres
103 557
dernier inscrit
gerard.messerlin68@orange