[VBA] Test sur plusieurs plages
Résolu
tyranausor
Messages postés
3545
Date d'inscription
Statut
Membre
Dernière intervention
-
tyranausor Messages postés 3545 Date d'inscription Statut Membre Dernière intervention -
tyranausor Messages postés 3545 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un classeur avec les nom des collaborateurs et tous les jours de la semaine. Je cherche à modifier mon code VBA pour que si la semaine est finie, ça copie tout dans une autre feuille et, si il manque un jour ou deux (sauf jours férié et non travaillé), la macro me renvoie une erreur.
J'ai le début de mon code qui est
or, dans mon code, la plage C6:I12 est copiée même si la semaine n'est pas complète! Et si je mets
C'est pareil.
Je pensais éventuellement définir les plages dans Range, mais Excel ne veut pas!
j'ai un classeur avec les nom des collaborateurs et tous les jours de la semaine. Je cherche à modifier mon code VBA pour que si la semaine est finie, ça copie tout dans une autre feuille et, si il manque un jour ou deux (sauf jours férié et non travaillé), la macro me renvoie une erreur.
J'ai le début de mon code qui est
If Application.CountA(Range("C6:I12")) = 0 Then"
'Si la plage C6:I12 est vide, on n'exécute pas la macro
MsgBox "Aucune heure n'a été saisie!", vbCritical + vbOKOnly, "Application de paie"
'Affiche un message d'erreur
Else: Range("A6:I12").Select
... (exécution des instructions)
or, dans mon code, la plage C6:I12 est copiée même si la semaine n'est pas complète! Et si je mets
If Application.CountA(Range("C6:I12")) = "" Then"
'Si la plage C6:I12 est vide, on n'exécute pas la macro
C'est pareil.
Je pensais éventuellement définir les plages dans Range, mais Excel ne veut pas!
Range("C6:C12","D6:D12","E6 :E12","F6 :F12,"G6:G12","H6 :H12","I6 :I12"
A voir également:
- [VBA] Test sur plusieurs plages
- Test performance pc - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test steam deck oled - Guide
- Test composant pc - Guide
- Test batterie pc - Guide
2 réponses
Bonjour,
si toutes les cellules doivent etre non vides (6*7=42 cellules non vide)
si toutes les cellules doivent etre non vides (6*7=42 cellules non vide)
'Si la plage C6:I12 est vide, on n'exécute pas la macro If Application.CountA(Range("C6:I12")) < 42 Then ' Affiche un message d'erreur MsgBox "Aucune heure n'a été saisie!", vbCritical + vbOKOnly, "Application de paie"