Imposer le remplissage de colonnes ne se suivants pas

Estelleb

XLDnaute Nouveau
Bonjour,
J'ai un souci avec des cellules obligatoires à remplir : pour une ligne donnée, je n'ai pas une colonne obligatoire à remplir mais plusieurs colonnes qui ne se suivent pas, et elles sont toutes à remplir à partir du moment où l'une des cellules de la ligne est remplie.

Concrètement : soit toute la ligne est remplie, soit rien dans la ligne n'est rempli et cela pour les colonnes A, B, C, D, E, G, H, K, L, M, N, R, S et T. Les autres colonnes ne sont pas concernées, et je ne peux pas faire en sorte que ces colonnes se suivent.

Par exemple, si C4 est remplie, alors doivent être remplies A4, B4, D4, E4, G4, H4, K4, L4, M4, N4, R4, S4 et T4. Le nombre de lignes est aléatoires, il peut y en avoir 10 comme 1000, selon les cas (ce fichier est destiné à plusieurs personnes), et la première ligne pouvant être remplie est la 3e.

Comment je peux procéder ? J'avais trouver le code pour une case remplie, la case de la colonne suivante doit l'être, mais je n'arrive pas à modifier à ma façon avec plusieurs colonnes ne se suivant pas.
 

Dranreb

XLDnaute Barbatruc
Re : Imposer le remplissage de colonnes ne se suivants pas

Bonjour.
Et vous n'auriez pas pu, à défaut de joindre le fichier, citer entre balises Code le code que vous n'arrivez pas à adapter ?
Parce que comme ça on ne sait pas du tout comment vous voulez que ça réagisse:
Quand on tente de sauvegarder le classeur sans que toutes les cellules obligatoires soient renseignées ?
Quand on sélectionne une autre cellule que la suivante à devoir l'être ?
Quand on en valide une obligatoire, la sélection de la suivante se faisant tout seul ?
Précisez un peu
À+
 

Estelleb

XLDnaute Nouveau
Re : Imposer le remplissage de colonnes ne se suivants pas

Bonjour Dranreb,

Je n'ose pas mettre ici ce code car comme ce n'est pas le mien, je ne voudrais pas heurter la personne qui l'a fait. Si je peux le faire sans problème, je le mettrai volontiers car je l'ai gardé.

La seule restriction que j'aimerai en fait, c'est que la personne ne puisse pas enregistrer son fichier ni changer de feuille sans avoir rempli les colonnes obligatoires de la ou des lignes. La majorité des colonnes vont se remplir avec des copié/collé issu de différents fichiers, donc j'aimerai que les personnes soient libres d'aller et venir de cellules en cellules sur la feuille, par contre qu'elle ne puisse pas en sortir si une ou plusieurs cellules d'une lignes sont remplies sans que toutes celles obligatoires sur une lignes le soient.

Je vous joins l'onglet du fichier concerné, à défaut du code que j'ai trouvé. Dans Myworkbook du fichier, j'ai une autre macro et j'en aurai une troisième de mise en forme (je ne sais pas si c'est important donc je le précise).
 

Pièces jointes

  • test.zip
    76.9 KB · Affichages: 23
  • test.zip
    76.9 KB · Affichages: 24
  • test.zip
    76.9 KB · Affichages: 23

Dranreb

XLDnaute Barbatruc
Re : Imposer le remplissage de colonnes ne se suivants pas

À tester:

Dans Thiworkbook:
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
VérifRensCells Cancel
End Sub
Dans un module standard:
VB:
Sub VérifRensCells(Abandon As Boolean)
Dim V As Variant, L As Long, J As Long, C As Long
V = Feuil2.[A1].Resize(Feuil2.[C65536].End(xlUp).Row, 20).Value
For L = 3 To UBound(V)
   If V(L, 3) <> "" Then
      For J = 0 To 12: C = Array(1, 2, 4, 5, 7, 8, 11, 12, 13, 14, 18, 19, 20)(C)
         If V(L, C) = "" Then
            Feuil2.Activate
            Feuil2.Cells(L, C).Select
            MsgBox "Cellule non renseignée", vbExclamation
            Abandon = True: Exit Sub: End If
         Next J
      End If
   Next L
Abandon = False
End Sub
À+
 

Estelleb

XLDnaute Nouveau
Re : Imposer le remplissage de colonnes ne se suivants pas

Je viens d'insérer le code. J'ai un message d'erreur qui dit ceci :

Erreur d'exécution '9':
L'indice n'appartient pas à la sélection

La ligne concernée quand je vais dans débogage est :

For J = 0 To 12: C = Array(1, 2, 4, 5, 7, 8, 11, 12, 13, 14, 18, 19, 20)(C)


Qu'est-ce que cela représente ?
 

Discussions similaires

Réponses
15
Affichages
823

Statistiques des forums

Discussions
312 225
Messages
2 086 411
Membres
103 201
dernier inscrit
centrale vet