Résolu Remplir des champs sous condition

TEMAGOULTFARID

XLDnaute Occasionnel
Supporter XLD
Bonjour a vous tous,
me revoilà , quand on aime et bien on aime.
Ma question , je voudrais que lorsque mes techniciens saisissent des informations dans certaines cellules , ils ne peuvent le faire que si certaines cellules sont informés .
Dans mon exemple
les saisies se font D11:L23 , mais a condition que les champs D9:H9 soient renseigné , sinon un boite leurs informant de saisir tant que les champs ne sont pas renseigné.
et si possible en VBA
para avance , merci beaucoup.
Prenez soins de vous.
Cordialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
En PJ un essai avec une macro simple :
VB:
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("D11:L23")) Is Nothing Then
    If [D9] = "" Or [E9] = "" Or [F9] = "" Or [G9] = "" Or [H9] = "" Then
        MsgBox "Veuillez déjà renseigner la zone D9:H9"
        [D9].Select
    End If
End If
End Sub
 

Fichiers joints

TEMAGOULTFARID

XLDnaute Occasionnel
Supporter XLD
Bonsoir,
En PJ un essai avec une macro simple :
VB:
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("D11:L23")) Is Nothing Then
    If [D9] = "" Or [E9] = "" Or [F9] = "" Or [G9] = "" Or [H9] = "" Then
        MsgBox "Veuillez déjà renseigner la zone D9:H9"
        [D9].Select
    End If
End If
End Sub
Bonjour Sylvanu,
merci pour votre implication , une nouvelle fois et j'en suis honnoré.Le fichier exmeple que vous m'avez fourni ne fonctionne pas, car je peux saisir dans les cellules D11:L23 sans que les cellules D9:H9 soient renseignées.Peut être que ma demande est mal exprimée.
Donc, je ne peux saisir quoique ce soit dans les cellules D11:L23 si les cellules D9:H9 ne sont pas informées c'est a dire les 5 obligatoirement.
J’espère vous clarifiez
par avance , merci
prenez bien soins de vous
 

Fichiers joints

jmfmarques

XLDnaute Accro
Bonjour
Je choisirais personnellement de mettre ce code :
VB:
If WorksheetFunction.CountA(Range("D9:H9")) < 4 Then
  Range("D9:H9").SpecialCells(xlCellTypeBlanks).Select
  MsgBox " ET ALORS ? (cellule(s) restée(s) vide(s) )"
End If
dans l'évènement worksheet_selectionchange (sans condition d'intersection)
Ce qui m'obligerait à n'aller nulle part ailleurs tant que pas "rempli" et me montrerait ce qui ne l'est pas (rempli).
 

Fred0o

XLDnaute Barbatruc
Bonjour TEMAGOULTFARID, sylvanu, jmfmarques

Une autre proposition a partir de celle de sylvanu :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("D11:L23")) Is Nothing Then
        If [D9] = "" Or [E9] = "" Or [F9] = "" Or [G9] = "" Or [H9] = "" And Target.Value <> "" Then
            MsgBox "Veuillez déjà renseigner la zone D9:H9"
            Application.EnableEvents = False
            Target.ClearContents
            Application.EnableEvents = True
            [D9].Select
        End If
    End If
End Sub
 

TEMAGOULTFARID

XLDnaute Occasionnel
Supporter XLD
Bonjour a vous tous ,
je vous remercie Sylvanu,FredOo,jmfmarques pour votre implication et les 3 fonctionnent .
merci infiniment en vous souhaitant une bonne journée
prenez bien soins de vous et de vos famille.
bien cordialement
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas