## Balayage ligne par ligne pour vérifier condition ## (Oui mais ...)

R

ROGER2tours

Guest
Bonjour à tous (ou plutôt bonne nuit !!)

C'est avec beaucoup d'intérêt que j'aie suivi le topic résolu par Rai.

Je rencontre la problématique de dagada75 MAIS mon soucis, comme l'a remarqué Rai c'est que mes colonnes NE SONT PAS contigues !

:eek:(

En effet, je connais déja mes colonnes (A, D, F) à contrôlé... et ayant masqué B, C et E (avec obligation de cellule vide), je ne peux appliquer ta formule Rai, ligne par ligne ....

:eek:(

Aurais une V3 de ta soluce qui puisse passer outre cette difficulté (la je crois que la version 3 de ta solution serait finale !).
Les autres XLDnautres (ca existe) peuvent participer à ce projet bien entendu ... Merci à TOUS et à votre talent.


Rappel de la solution V2 de Rai qui nécessite que les colonnes soient contingues :
***********************************************************

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Pcol! = 1 'N° 1ere colonne à examiner
NbCol! = 3 'Nombre de colonnes concernées

For Col! = Pcol To Pcol + NbCol - 1
DerLig = WorksheetFunction.Max(Cells(65535, Col).End(xlUp).Row, DerLig)
Next Col

For Lig! = DerLig To 1 Step -1
For Col! = Pcol To Pcol + NbCol - 2
If Cells(Lig, Col) = "" Or Cells(Lig, Col + 1) = "" Then Flag = True
Next Col
Next Lig

If Flag Then
Cancel = True
MsgBox "Il reste des cellules non renseignées !"
End If
End Sub

***********************************************************
 
R

Rai

Guest
Bonjour Roger,

YaKa demander ;o))
L'adaptation n'était pas trop complexe.
Pour adapter la solution à tes besoins, tu dois renseigner 2 variables :
NBCol qui contient le nombre de colonnes concernées par la vérification
Tcol qui contient un tableau (Array). Ce tableau étant la liste des N° de colonnes à traiter.

Faudra que je regarde comment compter le nombre d'éléments contenus dans un tableau ... ça évitera d'avoir à renseigner NbCol ... dans une V3.1 p'tet ? ;oP

Bonne journée

Rai

--------

NbCol! = 4 'Nombre de colonnes concernées
Tcol = Array(2, 3, 5, 7) 'liste des colonnes
For i! = 0 To NbCol - 1
DerLig = WorksheetFunction.Max(Cells(65535, Tcol(i)).End(xlUp).Row, DerLig)
Next i
For Lig! = DerLig To 1 Step -1
For i! = 0 To NbCol - 2
If Cells(Lig, Tcol(i)) = "" Or Cells(Lig, Tcol(i + 1)) = "" Then
Flag = True
Lig = 1
Exit For
End If
Next i
Next Lig
If Flag Then
Cancel = True
MsgBox "Il reste des cellules non renseignées !"
End If
 

Discussions similaires

Statistiques des forums

Discussions
312 491
Messages
2 088 889
Membres
103 982
dernier inscrit
krakencolas