Si une cellule est vide dans une plage

Bonjour,

Je n'arrive pas à faire fonctionner ma VBA: je veux lui faire dire "Si dans une plage donnée, il y a une cellule vide, alors tu crées un onglet, et tu liste les en-têtes".

Voici mon code:

Sub Macro2()

If IsEmpty(Workbooks("Suivi comptes et AG du 311215 au 301216.xlsx").Sheets("MBO K1").Range("I11:O11")) = True Then

Sheets.Add After:=ActiveSheet

Range("A12").Select

ActiveCell.FormulaR1C1 = "Société : "

End If

ActiveSheet.Range("B12").Select

ActiveCell.FormulaR1C1 = _

"='[Suivi comptes et AG du 311215 au 301216.xlsx]MBO K1'!R11C6"

ActiveSheet.Range("B13").Select

ActiveCell.FormulaR1C1 = _

"='[Suivi comptes et AG du 311215 au 301216.xlsx]MBO K1'!R10C9"

ActiveSheet.Range("B14").Select

ActiveCell.FormulaR1C1 = _

"='[Suivi comptes et AG du 311215 au 301216.xlsx]MBO K1'!R10C10"

ActiveSheet.Range("B15").Select

ActiveCell.FormulaR1C1 = _

"='[Suivi comptes et AG du 311215 au 301216.xlsx]MBO K1'!R10C11"

ActiveSheet.Range("B16").Select

Windows("Suivi comptes et AG du 311215 au 301216.xlsx").Activate

ActiveSheet.Range("L10").Select

Windows("Courriers suivis docs.xlsm").Activate

ActiveCell.FormulaR1C1 = _

"='[Suivi comptes et AG du 311215 au 301216.xlsx]MBO K1'!R10C12"

ActiveSheet.Range("B17").Select

ActiveWindow.SmallScroll ToRight:=6

Windows("Courriers suivis docs.xlsm").Activate

ActiveCell.FormulaR1C1 = _

"='[Suivi comptes et AG du 311215 au 301216.xlsx]MBO K1'!R10C13"

ActiveSheet.Range("B18").Select

ActiveCell.FormulaR1C1 = _

"='[Suivi comptes et AG du 311215 au 301216.xlsx]MBO K1'!R10C14"

Range("B19").Select

ActiveCell.FormulaR1C1 = _

"='[Suivi comptes et AG du 311215 au 301216.xlsx]MBO K1'!R10C15"

ActiveSheet.Range("A12:B12").Select

selection.Font.Bold = True

End Sub

Quand j'indique "true", il ne crée pas d'onglet, quand j'indique "false", il crée l'onglet que cela soit plein ou non.

Merci de votre aide!

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

Bye !

Bonjour!

Merci déjà pour ça.

En fait, il faudrait que lorsque, dans le fichier de "suivi des comptes", une des cellules de I11 à 011 est remplie, l'en-tête juste au dessus (ligne 10) n'apparaisse pas dans la liste sur l'onglet créé dans le fichier "courrier suivi". Par contre, si la cellule ne contient rien, il faut que l'en-tête soit dans l'onglet créé.

J'ai essayé de faire nommer le nouvel onglet du nom de l'entreprise, mais ça bug... J'ai dû m’emmêler dans les variables. Je suis reparti de votre Macro.

En tout cas chapeau pour la rédaction du VBA!

L'idée après sera de faire une boucle pour décliner ça par ligne... Mais je chercherai de mon côté, avant de vous solliciter!

Bonne journée!

Bonjour,

J'ai finalement réussi à peu près ce que je voulais créer.

Cependant, il faut que j'apprenne à boucler cette formule sur les autres lignes.

Quelqu'un sait-il comment je pourrais faire?

Merci!

Bonjour

Nouvelle version à tester.

Bye !

36flopi.zip (29.77 Ko)

Bonjour gmb.

Merci beaucoup, je ne savais pas boucler.

On se rapproche de la perfection: la macro fonctionne, mais la création des onglets ne prend en compte que le contenu dans la ligne 11.

Je regarde comment améliorer ça, et je reviens vers vous.

Merci beaucoup en tout cas, ça fait une bonne base de travail.

Bon je n'y arrive pas... J'ai encore besoin de votre aide, gmb.

Il faudrait que lorsqu'on passe à la filiale suivante, on vérifie sur la ligne de la filiale la présence de contenu ou non...

J'ai essayé en rajoutant "+1" après la désignation de la cellule à vérifier, mais ça ne fonctionne pas.

Pouvez-vous jeter un oeil?

Je pense aussi m'acheter VBA pour les Nuls, c'est une bonne référence?

Flopi a écrit :

on vérifie sur la ligne de la filiale la présence de contenu ou non...

OK mais dans quelle cellule ? dans toutes ? C'est à dire que s'il y a une seule cellule vide dans les colonnes H à R ( ? )on crée une nouvelle feuille ?

A te relire

En fait, si P11 est vide, alors on crée un onglet, ayant pour nom F11 (nom qu'on retrouve dans l'onglet pour faire office de titre à la liste créée). On y liste les points comme cela: si I11 est vide, on indique dans le nouvel onglet I10, si J11 est vide, on indique dans le nouvel onglet J10... ainsi de suite jusqu'à la colonne O;

Puis on passe à la ligne 12: si P12 est vide, on crée un onglet ayant pour nom F12. On y liste les points comme cela: si I12 est vide, on indique dans le nouvel onglet (n°2) I10, si J12 est vide, on indique dans le même onglet n°2 J10 etc... jusqu'à O;

Puis on passe à la ligne 13... et ainsi de suite jusqu'à la ligne 17.

Par contre, si une cellule de la colonne "P" est pleine, on passe à la ligne du dessous directement, sans créer d'onglet. J'ai mis un "Msgbox", parce que je ne savais pas comment dire "end if [tu ne fais rien]".

L'idée, c'est que pour chaque société (colonne F), un onglet soit créé dans le fichier de la macro avec la liste des éléments qui manquent (plage I10 à O10).

N'hésitez pas à me poser des questions si je ne suis pas assez clair.

Merci pour votre aide.

Nouvelle version à tester.

Bye !

48flopi.zip (28.72 Ko)

C'est tout simplement génial, c'est exactement ça!!

Merci!!

Vous pensez que "VBA pour les Nuls" me permettrait d'apprendre à faire ça?

Il me reste à faire une macro de mise en forme des onglets nouvellement créés, les faire convertir en pdf, et les insérer dans des mails.

Je devrais pouvoir y arriver, j'ai déjà des macros qui ressemblent à ça de prêtes.

Merci infiniment!

Me revoici,

J'ai bien avancé, j'ai même pu rajouter quelques petits éléments sur la macro, notamment un logo.

J'essaie à présent de crééer une seconde macro pour ces mêmes fichiers. Le but et d'entourer les listes créées sur les onglets d'un corps de texte pour en faire un courrier formalisé.

Je bute sur une chose: mettre la date indiquée dans le fichier de suivi dans la cellule D12...

J'ai du mal à faire glisser la formule pour qu'a chaque onglet, ce soit la bonne date du fichier de suivi qui soit indiquée: G11 pour la 1e société, G12 pour la suivante, G13 encore après etc...

Pouvez-vous m'aider svp?

Merci!

PS: j'ai volontairement fait disparaître la 1e macro, pour cacher les données plus sensibles que j'ai commencées à rentrer dedans.

Nouvelle version.

Je suis parti de ma dernière macro...

Bye !

44flopi.zip (30.03 Ko)

Yes ca marche! La date se renseigne avant le texte, mais ce n'est pas grave. Les macros n'ont pas vocation à être utilisées indépendamment.

J'ai fusionné les deux macros dans le même fichier.

Merci beaucoup!

Je me mets sur la partie "pdf" demain!

Rechercher des sujets similaires à "vide plage"