Stopper une macro si cellule vide
Résolu
Dimitri020386
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
Dimitri020386 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Dimitri020386 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je me suis mis à la prog. VBA sur Excel depuis l'année dernière pour la création d'un fichier de suivi de finance.
j'ai finalisé une première fois ce fichier mais j'ai repris à zéro toutes les macros de ce fichier pour le simplifier car j'avais beaucoup trop de manip à faire avant de lancer la macro de mise à jour.
J'ai cherché en vain les lignes de code à intégrer au début de ma macro (peut-être n'ai-je pas cherché au bon endroit)
Voici mon problème :
Je dois copier pour 7 onglets différents les cases non-vides situé entre "M8" et "N38" vers les cases situées après les dernières cases non-vides des colonnes "B" et "C"
La dessus je m'en sort.
Avant de copier ces cellules, je souhaite stopper l’exécution de la macro si au moins une des cellules "M8:N8" sur au moins un onglet est vide.
Et par la même occasion d'afficher une fenêtre d'avertissement avec un message.
Si toutes les cellules "M8:N8" sont non-vides, je souhaite bien entendu continuer l’exécution de ma macro.
J'espère avoir été suffisamment clair dans mes explications.
Si ce n'est pas le cas j'essaierai de clarifier les points sombres.
Merci par avance aux personnes qui prendront de leur temps pour lire et m’éclairer sur la résolution de ce problème.
Dimitri
Je me suis mis à la prog. VBA sur Excel depuis l'année dernière pour la création d'un fichier de suivi de finance.
j'ai finalisé une première fois ce fichier mais j'ai repris à zéro toutes les macros de ce fichier pour le simplifier car j'avais beaucoup trop de manip à faire avant de lancer la macro de mise à jour.
J'ai cherché en vain les lignes de code à intégrer au début de ma macro (peut-être n'ai-je pas cherché au bon endroit)
Voici mon problème :
Je dois copier pour 7 onglets différents les cases non-vides situé entre "M8" et "N38" vers les cases situées après les dernières cases non-vides des colonnes "B" et "C"
La dessus je m'en sort.
Avant de copier ces cellules, je souhaite stopper l’exécution de la macro si au moins une des cellules "M8:N8" sur au moins un onglet est vide.
Et par la même occasion d'afficher une fenêtre d'avertissement avec un message.
Si toutes les cellules "M8:N8" sont non-vides, je souhaite bien entendu continuer l’exécution de ma macro.
J'espère avoir été suffisamment clair dans mes explications.
Si ce n'est pas le cas j'essaierai de clarifier les points sombres.
Merci par avance aux personnes qui prendront de leur temps pour lire et m’éclairer sur la résolution de ce problème.
Dimitri
A voir également:
- Arreter une macro vba
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Incompatibilité de type vba ✓ - Forum Programmation
- Excel récupérer couleur cellule sans macro ✓ - Forum Bureautique
7 réponses
Bonjour,
il faut mettre
C'est tout ce que je peux vous dire, sans fichier ni code sous les yeux !
il faut mettre
exit subaprès la partie de la macro qui vérifie qu'il n'y ait pas de cellule(s) vide(s).
C'est tout ce que je peux vous dire, sans fichier ni code sous les yeux !
Bonjour,
je confirme, impossible de répondre correctement sans fichier de travail.
On ne sait pas si ce sont des valeurs ou des formules. Si une cellule vide est vraiment vide (sans formule), ou bien si "" doit être considérer comme vide, et j'en passe...
cjoint.com et coller ici le lien fourni
eric
je confirme, impossible de répondre correctement sans fichier de travail.
On ne sait pas si ce sont des valeurs ou des formules. Si une cellule vide est vraiment vide (sans formule), ou bien si "" doit être considérer comme vide, et j'en passe...
cjoint.com et coller ici le lien fourni
eric
OK je comprend.
Voici en lien mon fichier :
https://www.cjoint.com/c/JJqlFZOkhFJ
J'ai bien pris note pour le <gras>exit sub (Merci Yoyo01000)
Je confirme que les cellule seront totalement vide, aucune formule dans celles-ci.
Voici en lien mon fichier :
https://www.cjoint.com/c/JJqlFZOkhFJ
J'ai bien pris note pour le <gras>exit sub (Merci Yoyo01000)
Je confirme que les cellule seront totalement vide, aucune formule dans celles-ci.
J'ai supposé que tes onglets étaient les 7 derniers, tu aurais pu préciser...
Si ces onglets sont toujours consécutifs ajoute un nom avec pour formule :
Ca calcule le nombre de saisies entre ces 2 feuilles (incluses).
En cas d'évolution tu n'auras que cette formule à modifier.
Dans le code :
Si ces feuilles sont sujettes à changement, il peut être intéressant de créer une feuille Début, une autre Fin (adapter la formule) et insérer/supprimer entre les 2 sans oublier d'ajuster le nombre de saisies voulues dans la formule.
eric
Si ces onglets sont toujours consécutifs ajoute un nom avec pour formule :
=NBVAL('Data Mon épargne:Data ACTIONS EDF'!$M$8:$N$8)=14
Ca calcule le nombre de saisies entre ces 2 feuilles (incluses).
En cas d'évolution tu n'auras que cette formule à modifier.
Dans le code :
If Not [saisiesOK] Then Exit Sub
Si ces feuilles sont sujettes à changement, il peut être intéressant de créer une feuille Début, une autre Fin (adapter la formule) et insérer/supprimer entre les 2 sans oublier d'ajuster le nombre de saisies voulues dans la formule.
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup Eric,
Effectivement j'ai complètement zappé de préciser, toutes mes excuses.
Je viens de faire un essai, je ne comprend pas grand chose car j'ai testé ce que tu m'as donner :
"NBVAL("Data Mon épargne:Data ACTIONS EDF" & "M8:N8") = 14
If Not NBVAL Then Exit Sub"
Ne fonctionnant pas, j'ai donc tenté une modif car Visual basic ne veux pas des " ' " et du " ! ".
J'ai donc écris ce qui suit mais je pense que j'ai dû faire une (voir plusieurs) erreur(s) dans l'écriture de mon code.
extractionOK = NBVAL("Data Mon épargne:Data ACTIONS EDF" & "M8:N8") = 14
If Not extractionOK Then Exit Sub
La macro bloque sur "NBVAL"
J'ai un message d'erreur me disant :
"Erreur de compilation:
Sub ou fonction non définie"
Peux-tu me dire ce qui ne va pas?
Je suis sous Microsoft visual basic 7.1, est-il possible que certaines fonctions ne soient compatible qu'avec certaines versions de visual basic?
Et au passage, je suis nouveau sur les forums, comment fait-on pour intégrer dans un encadré les lignes de codes VBA ?
Dimitri
Effectivement j'ai complètement zappé de préciser, toutes mes excuses.
Je viens de faire un essai, je ne comprend pas grand chose car j'ai testé ce que tu m'as donner :
"NBVAL("Data Mon épargne:Data ACTIONS EDF" & "M8:N8") = 14
If Not NBVAL Then Exit Sub"
Ne fonctionnant pas, j'ai donc tenté une modif car Visual basic ne veux pas des " ' " et du " ! ".
J'ai donc écris ce qui suit mais je pense que j'ai dû faire une (voir plusieurs) erreur(s) dans l'écriture de mon code.
extractionOK = NBVAL("Data Mon épargne:Data ACTIONS EDF" & "M8:N8") = 14
If Not extractionOK Then Exit Sub
La macro bloque sur "NBVAL"
J'ai un message d'erreur me disant :
"Erreur de compilation:
Sub ou fonction non définie"
Peux-tu me dire ce qui ne va pas?
Je suis sous Microsoft visual basic 7.1, est-il possible que certaines fonctions ne soient compatible qu'avec certaines versions de visual basic?
Et au passage, je suis nouveau sur les forums, comment fait-on pour intégrer dans un encadré les lignes de codes VBA ?
Dimitri