TEST CELLULES VIDES

Résolu
cs_Marathon Man Messages postés 71 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 6 septembre 2006 - 26 août 2006 à 08:44
cs_Marathon Man Messages postés 71 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 6 septembre 2006 - 26 août 2006 à 22:44
Bonjour,

Je souhaiterais créer une macro afin de tester si plusieurs cellules sont vides sur plusieurs colonnes
Après des heures de recherche, je n'ai pas réussi.

Si vous avez une solution je vous en remercie par avance.

101 réponses

chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 août 2006 à 18:15
Vrai.
Envoies !
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 août 2006 à 18:20
Public Sub Cherche_Cellules_Vides_Dans_Selection()  
    Dim MaCell As Range  

bolEnvoiMail = False

For Each MaCell In Range("L17:L66")
    If MaCell.Value <> "" Then bolEnvoiMail = True: Exit Sub 
Next MaCell  

For Each MaCell In Range("X15:X66")
    If MaCell.Value = <> "" Then bolEnvoiMail = True: Exit Sub  
Next MaCell 
'Erreur 1, oublie des parenthèses dans la condition ci-dessus !

'Erreur 2, oublie de l'underscore ci-dessous !
If bolEnvoiMail = False Then _
    MsgBox "Il n'y a aucune données à traiter dans les plages  L17:L66 et X15:X66, _
                    vbCritical, "Envoi de la pièce jointe annulée"

End Sub 

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_Marathon Man Messages postés 71 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 6 septembre 2006
26 août 2006 à 18:23
If bolEnvoiMail = False Then _
    MsgBox "Il n'y a aucune données à traiter dans les plages  L17:L66 et X15:X66, _
                    vbCritical, "Envoi de la pièce jointe annulée"

il me fait une erreur de syntaxe ?
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 août 2006 à 18:25
MsgBox "Il n'y a aucune données à traiter dans les plages" _
& "  L17:L66 et X15:X66,   vbCritical, "Envoi de la pièce jointe annulée"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 août 2006 à 18:27
Arf, Chaibat, t'es passé au travers de mon erreur, c'est le guillemet manquant après
L17:L66 et X15:X66

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 août 2006 à 18:29
En plus il faut revoir les tests pour sortir avec les paramètres de la cellule
 ou il manque les données et la signaler dans le msgbox.
0
cs_Marathon Man Messages postés 71 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 6 septembre 2006
26 août 2006 à 18:32
ok super les gars
ça marche nickel

il reste un détail c'est lorsque que je clique sur le bouton quiter de mon userform
confirmation show à la fin il ne va pas à la feuille de menu

Mais c'est un détail par rapport au travail que vous avez effectuez

Merci encore
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 août 2006 à 18:35
Tu dis quoi Mortalino ?
On continue ?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 août 2006 à 18:35
Dans ta procédure Mail, met en dernier (avant le End Sub) :
Sheets("Nom de ta feuille").Select

Elle se sélectionnera (met le bon nom)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 août 2006 à 18:37
Re : TEST CELLULES VIDES

par : [auteurdetail.aspx?ID= 736628 chaibat05]
le 26/08/2006 18:35:34
Re : TEST CELLULES VIDES
par : [auteurdetail.aspx?ID =647037 mortalino]([membreclub.aspx Membre Club ]) le 26/08/2006 18:35:34

Chaibat, plus syncro : IMPOSSIBLE !
@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 août 2006 à 18:40
Qui dit mieux ?
0
cs_Marathon Man Messages postés 71 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 6 septembre 2006
26 août 2006 à 18:51
j'ai mis en rouge comme tu m'as dit en bas
C'est bien le nom de la feuille c'est à dire MENU et non Feuil 1 dans vb ?
Dim bolEnvoiMail As Boolean
' *** ces variables sont à placer dans les déclarations


Sub mail()
'
' mail Macro
' Macro enregistrée le 25/08/2006 par User name placeholder


Call Cherche_Cellules_Vides_Dans_Selection
If bolEnvoiMail = False Then Exit Sub


Worksheets("DISPOSITIFS").Select


' *** laisse les ElseIf !
If Range("K6").Value = "" Then
    MsgBox ("Indiquer votre service SVP"): Exit Sub
ElseIf Range("Q6").Value = "" Then
  MsgBox ("Veuillez indiquer votre Unité Fonctionnelle merci."): Exit Sub
ElseIf Range("H68").Value = "" Then
  MsgBox ("Veuillez indiquer votre Nom en bas de la feuille merci."): Exit Sub
End If


ActiveWorkbook.Saved = True


ActiveWorkbook.SendMail "[mailto:sylvie.G@wanadoo.fr sylvie.G@wanadoo.fr]", _
                                            "COMMANDES DISPOSITIFS MEDICAUX"


Confirmation.Show
Range("L17:L66").Clear
Range("X15:X66").Clear



Sheets("MENU").Select


End Sub
Public Sub Cherche_Cellules_Vides_Dans_Selection()
    Dim MaCell As Range


bolEnvoiMail = False


For Each MaCell In Range("L17:L66")
    If MaCell.Value <> "" Then bolEnvoiMail = True: Exit For
Next MaCell


For Each MaCell In Range("X15:X66")
    If MaCell.Value <> "" Then bolEnvoiMail = True: Exit For
Next MaCell


If bolEnvoiMail = False Then _
    MsgBox "Il n'y a aucune données à traiter dans les plages  L17:L66 et X15:X66", _
                    vbCritical, "Envoi de la pièce jointe annulée"


End Sub


 


 
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 août 2006 à 18:57
Oui !
Il faut que dans excel, au niveau des onglets (là où tu choisies ta feuille afin de la sélectionner), il faut que ce soit noté MENU

N'oublie pas, l'enregistreur de macro t'aide pour ce genre de chose !

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_Marathon Man Messages postés 71 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 6 septembre 2006
26 août 2006 à 19:01
Je t'assure elle s'appelle MENU

Autrement j'ai un bouton qui a une macro MENU d'affecté
Je pense que je peux forcer l'execution à ce stade ?
elle marche et mon bouton aussi
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 août 2006 à 19:07
Essaies un autre nom,
et par la même occasion changes le tiens aussi
ça deviens un vrai Marathon, cher Marathon Man.
Tiens pourquoi pas MARATHON ?



Sheets("MARATHON ").Select
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 août 2006 à 19:13
<small>
Coloration syntaxique automatique </small>




Sub test() 
' *** A placer dans un module, avant d'exécuter cette procédure,
'     met toi sur la feuille MENU
MsgBox ActiveSheet.Index 

' *** Retiens le chiffre que le message te donne, et dans la procédure
'     Mail, remplace Sheets("MENU").Select par Sheets(N°).Select
End Sub 

<small>
Coloration syntaxique automatique </small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_Marathon Man Messages postés 71 Date d'inscription lundi 24 juillet 2006 Statut Membre Dernière intervention 6 septembre 2006
26 août 2006 à 19:20
ok je vais essayé
je vais vous laisser car à force que j'avance j'ai des incohérences
tu m'as donné une commande tout à l'heure pour imprimer la feuille
mais en faite maintenant que j'ai mis ma feuille MENU il faut une commande qui m'imprime
seulement la page 1 de la feuille 2 du classeur ouvert

Pour info je cours au alentour de 3 h au MARATHON

++
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 août 2006 à 19:28
Qu' est ce que tu en dis Mortalino : On court avec lui ?
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 août 2006 à 19:47
"Pour info je cours au alentour de 3 h au MARATHON"

Mais je ne tiendrai pas jusque là ! N'oublie pas que je suis sur ton Topic depuis 9h ce matin.

Quand tu te trouves sur Excel, fait un click droit sur un espace vide de la barre de commande (et ne me demande pas ce que c'est...) et choisi 'Visual Basic'.
Un rectangle s'affiche,
le 1er icone, c'est 'exécuter une macro'
la 2nde icone, c'est 'enregistrer une macro'.

Bah tu cliques sur enregistrer une macro, tu appuies sur Entrée.
Tu fais tes actions (choisir la feuille, imprimer de la feuille x à y, des sélections de cellules, bref, ce que tu veux).
Une fois terminé, clique dans le rectangle sur le carré bleu (arrêter l'enregistrement),
puis sur exécuter macro.
Choisi ta macro (Macro1, par défaut), puis clique sur modifier.

Voilà, t'as le code sous les yeux ! (et tu sais te servir de l'enregistreur de macro)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
26 août 2006 à 19:48
Mortalino,
ThisWorkbook.Sheets("MENU").Select
Non ?
0
Rejoignez-nous