## Balayage ligne par ligne pour vérifier condition ##

  • Initiateur de la discussion Initiateur de la discussion dagada75
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

dagada75

Guest
Re-Bonjour à Tous,

J'émet à nouveau un message pour résoudre mon problème de contrôle ligne par ligne ...
J'ai réussi à établir le contrôle suivant avec l'aide de 'michel' :
Pour les colonnes A1 et B1, si l'une des deux cellules est vide ALORS ne pas sauvegarder mon fichier...

J'aimerai maintenant élargir ce contrôle à l'ensemble des colonnes A et B en sachant que dès lors qu'une cellule A est renseignée ALORS la cellule B "d'a côté" doit l'être (Si A9 non vide alors B9 non vide SINON pas de sauvegarde).
Comme je l'aie précédemment évoqué ... je n'arrive pas à codifier en vba "telle condition pour CHAQUE ligne de telles colonnes"

Merci de votre précieuse aide ... une ébauche est jointe en fichier zip.
 

Pièces jointes

Bonsoir,

J'ai une proposition.
Telle quelle, elle a un défaut : si la ligne 1 n'est pas completement renseignée (colA ET colB), ça n'est pas détecté.
Si jamais ça pose problème, j'ajouterai cette fonctionnalité

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
DerLig = WorksheetFunction.Max([A65535].End(xlUp).Row, [B65535].End(xlUp).Row)
For Lig = DerLig To 1 Step -1
If Cells(Lig, 1) = "" Or Cells(Lig, 2) = "" Then Exit For
Next Lig
If Lig > 1 Then
Cancel = True
MsgBox "Il reste des cellules non renseignées !"
End If
End Sub

Bonne soirée

Rai
 
Merci ...

C'est superbe !

Ca marche parfaitement ...

Si tu peux ajouter la fonctionnalité qui fait défaut ... cela serait parfait (car je dois intégrer cette fonctionnalité à une autre macro) !
😱)

Merci Beaucoup !!!!

Y a vraiment des CRACKS sur ce site !!

Maintenant .... je vais passer ma soirée à "traduire" ta logique dans ta formule ....

;o)

MERCI Rai
 
Ca marche parfaitement !!
Nickel !

Merci Rai !

SI TU PEUX AJOUTER CETTE FONCTIONNALITE pour corriger le défaut de la première ligne cela serait PARFAIT car je vais intégrer ton programme à une autre macro.

😱)

Je vais essayer de traduire ta logique lors de ma soirée !!

Par contre .... cela ne marche pas si je rajoute un contrôle sur une autre cellule de colonne ? Pourquoi ?
Exemple
DerLig = WorksheetFunction.Max([A65535].End(xlUp).Row, [B65535].End(xlUp).Row, [D65535].End(xlUp).Row)

Merci encore RAi
 
Salut,

Alors, voici une version améliorée de la procédure.
cette fois-ci, elle prend en compte toutes les lignes, de la dernière utilisée à la première.
Le nombre de colonnes est paramétrable, ainsi que la colonne de départ.
Encore une restriction : les colonnes doivent être contigues

Le code :

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

Bonne soirée

Rai

P.S. : Merci pour les compliments, ils me font quand même un peu rougir ;o))
 
... Rien à redire si ce n'est : Comment tu fais pour réfléchir si Vite !

😱(((

J'étais encore entrain de réfléchir à ta première macro !!

Bravo !

La c'est LA PERFECTION !!

pourquoi rougir ? T'es un crack ! point barre !

Et il y en a plusieurs sur ce site ....

MERCI pour tout Rai ! Sincèrement ...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
942
R
Réponses
2
Affichages
1 K
ROGER2tours
R
S
Réponses
7
Affichages
1 K
Retour