Bonjour kigalere
En passant, s.v.p, pourrais-tu demeurer sur le même Post lorsque que cela concerne ta question originale. Merci !
Bon maintenant, si j'ai bien compris, tu désire que la macro1 s'exécute lorsque D contient de l'information et que A,B,C de la même ligne n'on rien.
Pour ce faire, tu peux utiliser une procédure évènementiel. Dans ton fichier exemple, j,ai mis cette macro ds le module de la feuille 1:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 4 Then
If Not Target.Value = Empty Then
If Target.Offset(-1, 0).Value = Empty And Target.Offset(-2, 0).Value = Empty And Target.Offset(-3, 0).Value = Empty Then
Call Macro1
End If
End If
End If
End Sub
En gros ce que ça fait, c'est que a chaque fois qu'il y a un changement ds la feuille 1, cette macro s'exécute et exécutera la macro1 si elle rencontre toutes les conditions.
En passant, a titre d'info de connaissance perso., tu sais ce bout de code:
If (Day(Date) = 1) Then
'chaque premier du mois on ajoute une feuille du nom du mois'
'Copier sur la feuille créer la feuille originalRécapMois
'enregistrer la feuille sous le nom du mois correspondant'
If (Month(Date) = 3) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Mars'
End If
If (Month(Date) = 4) Then
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
ActiveSheet.Name = 'Avril'
End If
Tu peux le traiter aussi de cette façon aussi. Etant donner que la ligne de commande qui copy ton sheet est la même:
If (Day(Date) = 1) Then
'chaque premier du mois on ajoute une feuille du nom du mois'
'Copier sur la feuille créer la feuille originalRécapMois
'enregistrer la feuille sous le nom du mois correspondant'
Sheets('OriginalRecapMois').Copy before:=Sheets('OriginalRecapMois')
Select Case Month(Date)
Case 1
ActiveSheet.Name = 'Janvier'
Case 2
ActiveSheet.Name = 'Fevrier'
Case 3
' etc *******
End Select
End If
a+
Message édité par: Hellboy, à: 06/09/2005 14:02