bonjour le forum, j'ai un petit programme de comptabilité avec un journal de saisie des écritures, et une feuille à part pour le plan comptable, dans le journal je ne peux ajouter que les numéros qui sont déjà présents dans le plan comptable par une liste déroulante, par contre dans le plan comptable je peux ajouter ou supprimer les comptes sans tenir compte des comptes qui sont déjà saisis dans le journal. L'ajout des comptes dans le plan comptable, ne peut se faire que par une ligne d'édition, l'effacement se fait en sélectionnant une cellule en B,C ou D et ensuite une macro m'efface la ligne. Je voudrais ajouter à ma macro une sécurité supplémentaire, je voudrais empêcher d'effacer un compte si ce compte contient des écritures.
Dans la copie d'écran de la partie supérieur de mon plan comptable ci-dessous, dans la colonne E, apparait le chiffre 1,(ce chiffre indique que ce compte contient déjà des écritures), je voudrais ajouter à ma macro une condition supplémentaire qui m'empêche d'effacer le compte s' il y a le chiffre 1 en colonne E, avec un message qui dit : tu ne peux pas effacer ce compte car il contient déjà des écritures.
je joins ci-dessous ma macro avec laquelle j'efface actuellement une ligne, cette macro possède déjà 2 conditions, c'est que la ligne soit sélectionnée à l'intérieur d'une certaine plage, en effet je ne voudrais pas par erreur effacer la ligne des titres par exemple, ou que tout simplement on a oublié de sélectionner une ligne à effacer.....
Sub PlanCOMPTABLE_EffacerLignePlanComptable()
ActiveSheet.Unprotect
'définition de la plage de sélection autorisée
If ActiveCell.Row >= 7 And ActiveCell.Row <= 106 And ActiveCell.Column >= 2 And ActiveCell.Column <= 4 Then
'message en indiquant les infos de la ligne à effacer
If MsgBox("Veux-tu effacer le compte : " & Cells(ActiveCell.Row, "C"), vbYesNo, "Demande de confirmation") = vbNo Then
Exit Sub
Else
'déprotège la feuille
ActiveSheet.Unprotect
'déprotège la feuille et efface les cellules des colonnes B,C,D, de la ligne sélectionnée
ActiveSheet.Range(Replace("B_,C_,D_", "_", ActiveCell.Row)).ClearContents
're-protège la feuille
ActiveSheet.Protect, DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoRestrictions
End If
Else
'message indiquant que on a oublié de sélectionner une ligne
MsgBox "HOUPS... ! tu as oublié de sélectionner une ligne"
End If
End Sub
voilà, j'espère avoir pu expliquer ce que je désire faire, merci pour votre aide.
Dans la copie d'écran de la partie supérieur de mon plan comptable ci-dessous, dans la colonne E, apparait le chiffre 1,(ce chiffre indique que ce compte contient déjà des écritures), je voudrais ajouter à ma macro une condition supplémentaire qui m'empêche d'effacer le compte s' il y a le chiffre 1 en colonne E, avec un message qui dit : tu ne peux pas effacer ce compte car il contient déjà des écritures.
je joins ci-dessous ma macro avec laquelle j'efface actuellement une ligne, cette macro possède déjà 2 conditions, c'est que la ligne soit sélectionnée à l'intérieur d'une certaine plage, en effet je ne voudrais pas par erreur effacer la ligne des titres par exemple, ou que tout simplement on a oublié de sélectionner une ligne à effacer.....
Sub PlanCOMPTABLE_EffacerLignePlanComptable()
ActiveSheet.Unprotect
'définition de la plage de sélection autorisée
If ActiveCell.Row >= 7 And ActiveCell.Row <= 106 And ActiveCell.Column >= 2 And ActiveCell.Column <= 4 Then
'message en indiquant les infos de la ligne à effacer
If MsgBox("Veux-tu effacer le compte : " & Cells(ActiveCell.Row, "C"), vbYesNo, "Demande de confirmation") = vbNo Then
Exit Sub
Else
'déprotège la feuille
ActiveSheet.Unprotect
'déprotège la feuille et efface les cellules des colonnes B,C,D, de la ligne sélectionnée
ActiveSheet.Range(Replace("B_,C_,D_", "_", ActiveCell.Row)).ClearContents
're-protège la feuille
ActiveSheet.Protect, DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoRestrictions
End If
Else
'message indiquant que on a oublié de sélectionner une ligne
MsgBox "HOUPS... ! tu as oublié de sélectionner une ligne"
End If
End Sub
voilà, j'espère avoir pu expliquer ce que je désire faire, merci pour votre aide.