Lancer procédure à condition

Bonjour,

J'ai crée ce macro pour chercher et supprimer un ligne d'une feuille excel (supprimer seulement de la cellule 6, les autres cellules contiennent des formules stxt)

Private Sub textbox1_Change()
If Len(Me.TextBox1.Value) = 8 Then
ActiveSheet.Unprotect
Dim plage As Range
Dim Cell As Range
Dim Dernligne As Long
Dim L As Long
Dim coderech As String
Dernligne = Sheets("Source").Range("A" & Rows.Count).End(xlUp).Row
coderech = ComboBox2.Value
With Sheets("Source")
Set plage = .Range("A2:A" & Dernligne)
For Each Cell In plage
 If Cell.Value = coderech Then
  .Cells(Cell.Row, 6).ClearContents
 End If
Next Cell
End With
ComboBox2.Value = ""
MsgBox "sortie effectuée"
With Sheets("Source")
L = Dernligne + 1
.Cells(L, 6).ClearContents
End With
Sheets("Source").Range("I2:I1051").Copy
Sheets("Source").Range("D2").PasteSpecial Paste:=xlPasteValues
Call Macro50
Unload Me
ActiveSheet.Protect
UserForm2.Show
End If
End Sub

Je voulais lancer cette procédure seulement si ("feuil4") contient le même mot que textbox1 si non afficher un message exemple : Error

Merci d'avance

Bonjour xxmedxx, bonjour le forum,

Tu parles de Feuil4 mais ton code ne le mentionne jamais. Il faudra bien que tu comprennes un jour que nous se sommes pas devins et que sans le fichier qui va bien il est impossible de t'aider...

Deux With Sheets(Source)... End With, un code sans pratiquement aucune identation, là encore tu ne nous aides pas.

Bonjour ThauThème je suis désolé, j'ai oublié de joindre le fichier

6projetv1-7.xlsm (148.49 Ko)

Bonjour xxmedxx, bonjour le forum,

Si j'ai bien compris... Le code modifié :

Private Sub TextBox1_Change()
Dim OS As Worksheet
Dim F4 As Worksheet
Dim R As Range
Dim Dernligne As Long
Dim L As Long
Dim CodeRech As String

Set OS = Worksheets("Source")
Set F4 = Worksheets("Feuil4")
If Len(Me.TextBox1.Value) = 8 Then
    Set R = F4.Cells.Find(Me.TextBox1.Value, , xlValues, xlWhole)
    If R Is Nothing Then
        MsgBox "Nº de lot pas trouvé !"
        Exit Sub
    Else
        OS.Unprotect
        Dernligne = OS.Cells(Application.Rows.Count, "A").End(xlUp).Row
        CodeRech = ComboBox2.Value
        Set R = OS.Columns(1).Find(CodeRech, , xlValues, xlWhole)
        If Not R Is Nothing Then R.Offset(0, 5).ClearContents
        ComboBox2.Value = ""
        MsgBox "sortie effectuée"
        L = Dernligne + 1
        OS.Cells(L, 6).ClearContents
        OS.Range("I2:I1051").Copy
        OS.Range("D2").PasteSpecial Paste:=xlPasteValues
        Call Macro50
        Unload Me
        OS.Protect
        UserForm2.Show
    End If
End If
End Sub

Quel est l'intérêt du bouton GO ? Si tu le garde il faut y mettre aussi ce code.

Merci pour votre réponse ThauThème, vous êtes le meilleur

Rechercher des sujets similaires à "lancer procedure condition"