cs_Marathon Man
Messages postés71Date d'inscriptionlundi 24 juillet 2006StatutMembreDernière intervention 6 septembre 2006
-
26 août 2006 à 08:44
cs_Marathon Man
Messages postés71Date d'inscriptionlundi 24 juillet 2006StatutMembreDerniè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.
cs_Marathon Man
Messages postés71Date d'inscriptionlundi 24 juillet 2006StatutMembreDernière intervention 6 septembre 2006 26 août 2006 à 16:54
oui j'avais essayé cela cette nuit
mais je n'ais pas réussi à trouver la command pour dire toutes cellules des plages sont
supérieures à 0 alors commande vide
tu connais peut-être la commande pour tester plusieurs cellules en même temps
++
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 août 2006 à 16:57
Je suis à 200 % d'accord avec MPi, excel est l'outil le plus puissant de la suite Office, autant s'en servir, étant l'application hôte !
(et ça t'économisera moultes lignes de code, obsolètes, en utilisant la fonction proposée par MPi)
Bien vu MPi
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 août 2006 à 17:17
"On voit qu'il s'électionne les plages pour faire le contrôle dans ta macro
est-ce qu'il est possible de ne pas le voir ?"
Peux tu donner plus de précisions stp ? (merci)
Pour ton message, voici la modif :
MaCell1.Select
For Each MaCell In Selection
If MaCell.Value <> "" Then bolEnvoiMail = True: Exit Sub
Next MaCell
MaCell2.Select
For Each MaCell In Selection
If MaCell.Value = "" Then bolEnvoiMail = True: Exit Sub
Next MaCell
' *** rajoute juste la prochaine instruction :
If bolEnvoiMail = False Then MsgBox "Il n'y a aucune données à traiter dans les plages " & _
MaCell1.Address & " et " & MaCell2.Address, vbCritical, "Envoi de la pièce jointe annulée"
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 août 2006 à 17:27
/!\ Attention, j'ai refait la même erreur que tout à l'heure :
MaCell1.Select
For Each MaCell In Selection
If MaCell.Value <> "" Then bolEnvoiMail = True: Exit Sub
Next MaCell
MaCell2.Select
For Each MaCell In Selection If MaCell.Value <> Then bolEnvoiMail True: Exit Sub ' <--*** en rouge
Next MaCell
' *** rajoute juste la prochaine instruction :
If bolEnvoiMail = False Then MsgBox "Il n'y a aucune données à traiter dans les plages " & _
MaCell1.Address & " et " & MaCell2.Address, vbCritical, "Envoi de la pièce jointe annulée"
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Dim cmdB As CommandBar
For Each cmdB In Application.CommandBars
cmdB.Enabled = False
Next cmdB
' si tu veux masquer en plus la barre d'état
' la barre de formule
' les onglets...
With Application
.DisplayFullScreen = True
.DisplayStatusBar = False
.DisplayFormulaBar = False
End With
With ActiveWindow
.DisplayWorkbookTabs = False
.DisplayHeadings = False
End With
'
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim cmdB As CommandBar
For Each cmdB In Application.CommandBars
cmdB.Enabled = True
Next cmdB
With Application
.DisplayFullScreen = False
.DisplayStatusBar = True
.DisplayFormulaBar = True
End With
With ActiveWindow
.DisplayWorkbookTabs = True
.DisplayHeadings = True
End With
End Sub
_________________________________________________________
' *** maintenant, insère ceci dans un Module (un seul, pas dans plusieurs) :
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
Confirmation.Show
Range("L17:L66").Clear
Range("X15:X66").Clear
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 Sub
Next MaCell
For Each MaCell In Range("X15:X66")
If MaCell.Value = <> Then bolEnvoiMail = True: Exit Sub
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"
cs_Marathon Man
Messages postés71Date d'inscriptionlundi 24 juillet 2006StatutMembreDernière intervention 6 septembre 2006 26 août 2006 à 17:54
Merci à tous car grâce à vous j'ai réussi
c'est vraiment un travil d'équipe
deux dernières choses pour finr
tout à la finde ma macro mail
Que dois-je mettre pour qu'il ne me demande pas d'enregistrer les modificatons, en fait forcer le choix ?
Et je voudrais repartir vers une autre feuille qui est un menu ?
Après j'ai fini
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 août 2006 à 18:06
Ouaich !
(bonne idée)
Marathon Man, ton topic, malgrè le record des visités pour la journée ainsi que des réponses, doit être valider si une réponse te convient pour le clotûrer !
(et puis ça nous fera plaisir, après avoir passé 10 heures à t'aider)
Pour mémoire :
Sujet | Rép. |, , Date |Auteur |Vus |
[infomsg_TEST-CELLULES-VIDES_802946.aspx#57 TEST CELLULES VIDES], 57, 08:44, Marathon Man, 338
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 août 2006 à 18:09
Chaibat, pas besoin non plus, une seule valeur lui satisfait !
S'il y'en a une, pourquoi s'embêter à faire le test de l'autre plage ?
1/ qques milisecondes de gagner, c'est toujours ça
2/ ça bouffent des ressources.
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
cs_Marathon Man
Messages postés71Date d'inscriptionlundi 24 juillet 2006StatutMembreDernière intervention 6 septembre 2006 26 août 2006 à 18:15
pas de problème mais j'ai deux erreurs dans ta dernière macro
l'une que j'ai résolu et l'autre que je ne n'avais pas c'est our cela que je regarde ton avant
dernière macro
A tout de suite