Déterminer cellule vide sur 2 paramêtres
Résolu
dom
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
D'abord merci à ceux et celles qui liront mon message... et merci aussi à toutes ces personnes de bonne volonté qui partagent leur savoir faire.
Ma problématique : saisie dans un tableau de 3 colonnes
- questions,
- date d'arrivée de la question
- date d'accusée de la question
J'aimerai que tant que la date d'arrivée et la date d'accusée de la question ne sont pas renseignées alors l'opérateur ne puisse enregistrer le document.
J'espère avoir été claire.
Je ne suis peu utilisateur de VBA mais j'essaie d'apprendre.
mon programme ressemble plus à du bricolage qu'à une feuille d'instruction logique..:)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim i As Integer
i = 2 'i = position de la ligne aprés entête de colonne
Do While (Cells(i, 2).Value <> "") 'tant que colonne réception question est remplie
i = i + 1
Cells(i, 2).Select
Loop
If Cells(i, 1).Value <> "" Then 'colonne question est remplie
If Cells(i, 2).Value = "" Then ' colonne date réception question n'est pas remplie
MsgBox "la date réception n'a pas été saisie à la cellule " & "B" & i
Cancel = True
End If
If Cells(i, 3).Value = "" Then 'colonne date accusée de réception n'est pas remplie
MsgBox "la date d'AR n'a pas été saisie à la cellule " & "C" & i
Cancel = True
End If
End If
End If
End Sub
En espérant trouver quelqu'un pour me donner un coup de pouce.
Cordialement
dominique
D'abord merci à ceux et celles qui liront mon message... et merci aussi à toutes ces personnes de bonne volonté qui partagent leur savoir faire.
Ma problématique : saisie dans un tableau de 3 colonnes
- questions,
- date d'arrivée de la question
- date d'accusée de la question
J'aimerai que tant que la date d'arrivée et la date d'accusée de la question ne sont pas renseignées alors l'opérateur ne puisse enregistrer le document.
J'espère avoir été claire.
Je ne suis peu utilisateur de VBA mais j'essaie d'apprendre.
mon programme ressemble plus à du bricolage qu'à une feuille d'instruction logique..:)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim i As Integer
i = 2 'i = position de la ligne aprés entête de colonne
Do While (Cells(i, 2).Value <> "") 'tant que colonne réception question est remplie
i = i + 1
Cells(i, 2).Select
Loop
If Cells(i, 1).Value <> "" Then 'colonne question est remplie
If Cells(i, 2).Value = "" Then ' colonne date réception question n'est pas remplie
MsgBox "la date réception n'a pas été saisie à la cellule " & "B" & i
Cancel = True
End If
If Cells(i, 3).Value = "" Then 'colonne date accusée de réception n'est pas remplie
MsgBox "la date d'AR n'a pas été saisie à la cellule " & "C" & i
Cancel = True
End If
End If
End If
End Sub
En espérant trouver quelqu'un pour me donner un coup de pouce.
Cordialement
dominique
A voir également:
- Déterminer cellule vide sur 2 paramêtres
- Supercopier 2 - Télécharger - Gestion de fichiers
- Comment supprimer une page vide sur word - Guide
- Parametres de mon ordinateur - Guide
- Paramètres dns - Guide
- Excel cellule couleur si condition texte - Guide
3 réponses
Bonjour
Essaie quelque chose comme ça
Cdlmnt
Essaie quelque chose comme ça
Const NF = "Feuil1" Const lideb = 2 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim li As Long, OK As Boolean, lifin As Long OK = True With Sheets(NF) lifin = .Range("A" & Rows.Count).End(xlUp).Row For li = lideb To lifin If .Range("B" & li).Value = "" Or .Range("C" & li).Value = "" Then OK = False MsgBox "remplir les colonnes dates" Range("B" & li).Select Exit For End If Next li If Not OK Then Cancel = True End With End Sub
Cdlmnt