Remplir des champs sous condition

TEMAGOULTFARID

XLDnaute Occasionnel
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
 

Pièces jointes

  • Classeur4.xlsm
    15.2 KB · Affichages: 6

TEMAGOULTFARID

XLDnaute Occasionnel
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
 

Pièces jointes

  • Classeur4 (1).xlsm
    13.3 KB · Affichages: 3

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
 

Discussions similaires