Bonjour à tous,
Alors voilà mon soucis,
J'essaye de faire une macro qui :
- Efface Sheets("Feuil1").Range("B1") et Range("B4") si Sheet("Feuil1").Range("B4") = "no"
- S'active si Sheet("Feuil1").Range("B4") = "yes"
- Si "yes", alors, trouve la l'adresse de Sheets("Feuil1").Range("B1") dans l'intégralité du classeur (sauf Feuil1)
- Reporte la date d'aujourd'hui dans une des cellules vides à côté de la cellule de la valeur cherchée dans le classeur
Hors cela me met la valeur sur la 10e ligne à chaque fois ; Pourriez-vous svp m'aider à résoudre mon problème ?
Je débute un peu dans VBA et je ne comprends pas d'où vient mon erreur...
Merci d'avance de votre aide
Très bonne journée à tous !
----------------------------------------------------------------------------------------
Sub Worksheet_Change(ByVal Target As Range)
Dim sWk As Worksheet
Dim rCel As Range, c As Range
Dim j As Integer
x = Sheets("Feuil1").Range("B4").Value
Select Case x
Case Is = "no"
MsgBox "Action Annulée"
Sheets("Feuil1").Range("B4") = Empty 'Vide la cellule d'activation
Sheets("Feuil1").Range("B1") = Empty 'Vide la cellule de recherche
Application.Goto Reference:=Worksheets("Feuil1").Range("B1") 'Sélectionne la cellule de recherche
Exit Sub
Case Is = "yes"
sFlag = Sheets("Feuil1").Range("B1").Value
For Each sWk In ThisWorkbook.Worksheets
If sWk.Name <> "Feuil1" Then
iRow = sWk.Range("A" & Rows.Count).End(xlUp).Row
Set rCel = sWk.Range("A1:A" & iRow).Find(sFlag, LookIn:=xlValues, lookat:=xlWhole)
If Not rCel Is Nothing Then
iLig = rCel.Row
For j = 2 To 10
If sWk.Cells(iRow, j).Value = "" Then Exit For
Next
sWk.Cells(iRow, j).Value = Format(Now, "dd/mm/yyyy")
MsgBox "Action OK"
Sheets("Feuil1").Range("B4") = Empty 'Vide la cellule d'activation
Sheets("Feuil1").Range("B1") = Empty 'Vide la cellule de recherche
Application.Goto Reference:=Worksheets("Feuil1").Range("B1")
Exit Sub
End If
End If
Next
Application.EnableEvents = True
End Select
End Sub
Alors voilà mon soucis,
J'essaye de faire une macro qui :
- Efface Sheets("Feuil1").Range("B1") et Range("B4") si Sheet("Feuil1").Range("B4") = "no"
- S'active si Sheet("Feuil1").Range("B4") = "yes"
- Si "yes", alors, trouve la l'adresse de Sheets("Feuil1").Range("B1") dans l'intégralité du classeur (sauf Feuil1)
- Reporte la date d'aujourd'hui dans une des cellules vides à côté de la cellule de la valeur cherchée dans le classeur
Hors cela me met la valeur sur la 10e ligne à chaque fois ; Pourriez-vous svp m'aider à résoudre mon problème ?
Je débute un peu dans VBA et je ne comprends pas d'où vient mon erreur...
Merci d'avance de votre aide
Très bonne journée à tous !
----------------------------------------------------------------------------------------
Sub Worksheet_Change(ByVal Target As Range)
Dim sWk As Worksheet
Dim rCel As Range, c As Range
Dim j As Integer
x = Sheets("Feuil1").Range("B4").Value
Select Case x
Case Is = "no"
MsgBox "Action Annulée"
Sheets("Feuil1").Range("B4") = Empty 'Vide la cellule d'activation
Sheets("Feuil1").Range("B1") = Empty 'Vide la cellule de recherche
Application.Goto Reference:=Worksheets("Feuil1").Range("B1") 'Sélectionne la cellule de recherche
Exit Sub
Case Is = "yes"
sFlag = Sheets("Feuil1").Range("B1").Value
For Each sWk In ThisWorkbook.Worksheets
If sWk.Name <> "Feuil1" Then
iRow = sWk.Range("A" & Rows.Count).End(xlUp).Row
Set rCel = sWk.Range("A1:A" & iRow).Find(sFlag, LookIn:=xlValues, lookat:=xlWhole)
If Not rCel Is Nothing Then
iLig = rCel.Row
For j = 2 To 10
If sWk.Cells(iRow, j).Value = "" Then Exit For
Next
sWk.Cells(iRow, j).Value = Format(Now, "dd/mm/yyyy")
MsgBox "Action OK"
Sheets("Feuil1").Range("B4") = Empty 'Vide la cellule d'activation
Sheets("Feuil1").Range("B1") = Empty 'Vide la cellule de recherche
Application.Goto Reference:=Worksheets("Feuil1").Range("B1")
Exit Sub
End If
End If
Next
Application.EnableEvents = True
End Select
End Sub
Pièces jointes
Dernière édition: