Macro-commandes : si cellule =0 alors effacer

Fermé
sand95 - 27 mai 2011 à 18:10
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 31 mai 2011 à 13:38
Bonjour,

J'aurais besoin de votre aide svp pour avoir la formule d'une macro-commande (pas VBA mais la macro traditionnelle) :

J'ai besoin de trier dans la colonne 'prix' si = 0 alors effacer toute la ligne

Merci d'avance


A voir également:

20 réponses

m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
27 mai 2011 à 18:12
Bonjour,

Une macro "traditionnelle", ça n'existe pas, c'est du VBA depuis la version 97 d'Office.

Peux tu être plus explicite sur ce que tu entends par là ?

m@rina
0
Bonsoir m@rina,

En fait je viens d'avoir une formation par mon entreprise sur ça et ça me parait plus parlant que le langage VBA.

Ce sont des formules du type :
=SELECTIONNER()
=EDTITION.SUPPRIMER(3)

Mais le formateur nous a bien dit que c'était toujours compatible dans les nouvelles version excel et que les gens utilisaient toujours !

Sandrine
0
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
27 mai 2011 à 20:24
Sandrine, excuse-moi..., mais je tombe des nues !!

Je ne pensais pas qu'il existait encore des formations en langage Excel Macro 4.
Plus personne n'utilise ce langage actuellement qui a été remplacé par le VBA il y a 14 ans !

J'ai moi même programmé avec ce langage à l'époque, et également avec WordBasic, mais je serais bien incapable de t'aider ça fait trop longtemps que je n'y ai pas touché...
Il y a peut être des "anciens" sur ce forum qui s'en souviennent mieux que moi...

Ton formateur est bien gentil mais il vit à une autre époque !
Par curiosité, quelle version d'Excel utilisez vous dans ta société ?

m@rina
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
27 mai 2011 à 22:40
Bonsoir M@rina,,

veux tu que je te fasse un cours sur Multiplan sous cp/m ou, si tu le préfères, Qbasic sur nano-réseau, c'est très utilisé actuellement dans les entreprises...

pour être sérieux, tu me connais ;-), il y a rarement des utilisations de macroxl4, mais je les vois mal dans un cours de débutant comme la macro dite de Walkenbach pour donner la valeur d'une cellule dans un fichier restant fermé ou celle des noms cachés de Laurent Longre, bref des macros réalisées par 2 newbies surnommés chefs à 3 plumes!....

Quand tu dis que le formateur est gentil, mouuuais....
0
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
Modifié par m@rina le 27/05/2011 à 22:56
Michel

J'ai fréquenté beaucoup d'entreprises, et je n'ai pas vu depuis très longtemps des utilisateurs de macro Excel 4. Et quand je dis que le formateur est gentil, c'est de vouloir faire croire le contraire.

Les compétences de JW et de LL n'ont rien à voir à l'affaire.

Pour tes cours sur tes vieilleries, non merci, ça ne me servirait plus à rien... Et je te rassure, je ne suis pas une débutante... J'ai trempé aussi là-dedans et ces choses là ne me sont pas étrangères.
Et... à propos, c'est Sandrine qui a besoin de ta formation, pas moi !
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 241
27 mai 2011 à 22:30
Bonsoir,

Ah, je suppose que m@rina a eu le même sourire que moi en te lisant ;-)
Je pense aussi que ça serait perdre ton temps que de te pencher sur les anciennes macros excel.
VBA parait obscur au début mais une fois comprise la logique c'est beaucoup plus puissant et lisible.
Ose et lance-toi.... ;-)
eric
0

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

Posez votre question
Ben là je dois dire que je suis un peu dégoutée !!!
Bon je vais essayer de me mettre sur VBA alors.

Est ce que quelqu'un peut m'aider ?

J'aimerai faire un envoie automatique de mail pour envoyer mes factures mensuelles que j'ai enregistré sous c:/

Merci beaucoup
Et si quelqu'un peut me suivre pas à pas, ça serait super tip top :-)

merci d'avance :-)
0
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
30 mai 2011 à 16:06
Bonjour Sandrine,

Ben oui, je comprends que tu sois dégoûtée... :(

Voici un code VBA basique qui permet d'envoyer le classeur courant à une adresse mail via Outlook :

Sub envoimail()

Dim ol As Object, item As Object, adresse, objet, corps

Set ol = CreateObject("outlook.application")
Set item = ol.CreateItem(olMailItem)
adresse = "adresse@adresse.com" 'adresse mail
objet = "objet du mail" 'objet du mail
corps = "Je vous prie de trouver ci-joint..." 'corps du mail

item.To = adresse
item.Subject = objet
item.Body = corps
Set myAttachments = item.Attachments
myAttachments.Add ActiveWorkbook.FullName

item.Send
Set ol = Nothing
End Sub


m@rina
0
C'est super m@rina, merci, ça marche !!!
Par contre, comment fais tu pour envoyer non pas un fichier actif mais un document (genre une facture) ?

Sandrine
0
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
30 mai 2011 à 16:21
La facture en question, ce n'est pas le document Excel ?

Parce que sinon, je ne vois pas bien l'intérêt de passe par Excel, autant travailler directement depuis Outlook.

m@rina
0
C'est que j'ai une liste de 50destinataires et les factures sont toutes enregistrer sous c:/
Je voudrais créer un bouton (macro) pour chaque contrepartie sous excel générer un mail qui reprendrait en plus toutes les données supplémentaire que je mettrais sous excel et qui figurerait dans le corps de mon mail...
Enfin, je ne sais pas si c très claire !?!:

Sandrine
0
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
30 mai 2011 à 16:39
Non, ce n'est pas du tout clair pour moi, mais ça ressemble plus à du publipostage.

Regarde ici par exemple :
https://faqword.com/index.php/word-tutoriels/toutes-versions/670-publipostage-et-pj.html

m@rina
0
oui effectivement :-(

en fait je vais garder ta formule, elle me va bien :-b

merci bcp pour ton aide

Sandrine
0
m@rina,

comment fait on pour ajouter des destinataires en copy ?
et faire des "aller à la ligne" dans le corps du message ?

merci
Sandrine
0
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
30 mai 2011 à 20:17
Pour mettre plusieurs destinataires, tu les sépares simplement par un point-virgule.

Pour ajouter des retours paragraphe, c'est le caractère 13 (Chr(13)
Il faut séparer les différents morceaux de textes par des &, ce qui donne par exemple :
"Bonjour" & Chr(13) & Chr(13) & "Vous voudrez bien trouver ci-joint la facture machin" & Chr(13) & "Ploum ploum"


m@rina
0
Bonjour m@rina,

Merci encore, toujours aussi efficace tes formules ;-)

Par contre, tu ne m'as pas mis la formule pour mettre en copy conforme un autre destinataire ??

Sandrine
0
m@rina,

j'ai trouvé la formule, j'ai ajouté une ligne adresse2= (adresse) et :
item.CC = adresse2

:-)
0
Maintenant, comment puis je faire référence à une cellule (car ça change tous les mois et cela m'éviterait de le retaper tous les mois) dans le corps de mon message ?
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 241
31 mai 2011 à 10:20
Bonjour,

corps=[B1]
ou, si la feuille n'est pas active : corps=worksheets("Feuil2").[B1]

Tu peux aussi concatener plusieurs valeurs :
corps = [B1] & " " & Format(Date, "dd/mm/yyyy") & ", " & [C1]

eric
0
Merci eric, ça marche !

Y a t il possibilité d'y attacher un document en automatique ?
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 241
Modifié par eriiic le 31/05/2011 à 11:33
oui, c'est ce que faisait m@rina avec
Set myAttachments = item.Attachments
myAttachments.Add ActiveWorkbook.FullName

tu peux y ajouter :
myAttachments.Add "c:\tmp\mondoc.doc"
ou bien si ton nom de doc est dans une cellule :
myAttachments.Add "c:\tmp\" & [B1]

eric

PS : CC signifie Copie Carbone et non copie conforme (un vieux reste des machines à écrire... ;-) )
0
m@rina Messages postés 21089 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 20 novembre 2024 11 361
31 mai 2011 à 11:55
Hello eriiic !
"CC signifie Copie Carbone et non copie conforme (un vieux reste des machines à écrire... ;-) )"

Tu fais dans la vieillerie aussi ? mdr !!

Sinon, je sens que Sandrine va se faire très vite au VBA ! ;)
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 241
31 mai 2011 à 12:31
Coucou m@rina :-)
Ahh, nostalgie, quand tu nous tiens... ;-)
Sinon, je sens que Sandrine va se faire très vite au VBA !
Elle a l'air intéressée oui, elle a même été trouver le .cc toute seule :-)
De toute façon, une du 95 j'étais confiant tout de suite.. ;-)

eric
0
eh oui balaise la nana du 95 !!!
0
HAHAHA !!!

C'est clair, faut se mettre à l'air du temps lol MDR

Bon ça marche mais l'adresse me prend la tête. Voici mon problème, rien à avoir avec les écritures de formule mais je voulais avoir votre expérience :

J'ai un certain nombre de facture généré automatiquement dans l'intranet de ma boite. Le problème est que toutes ces factures mensuelles sont enregistrées dans une dossier nommé :
201103 (pour mars 2011)
201104 (pour avril 2011)

Alors dans la formule :
myAttachments.Add "c:\tmp\mondoc.doc"

Comment puis je faire pour que ça prenne en automatique la modification du mois ??? Sachant que je traite le M-1 ???
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 241
Modifié par eriiic le 31/05/2011 à 12:44
Re,

Si tu traites réellement mois-1 en cours :
myAttachments.Add "c:\" & Year(Date) & Right("0" & Month(Date) - 1, 2) & "\" & [B1]

sinon si tu as une date avec le bon mois quelque part (en A1 par exemple) :
myAttachments.Add "c:\" & Format([A1], "yyyymm") & "\" & [B1]

avec le nom du doc en B1.

eric

PS : alors ! vba n'est pas mieux que les macros xl4 ? ;-)
0
Vraiment rien à envier à l'ancienne macro, trop tip top mais faut juste trouver les bonnes formules et vous m'êtes vraiment d'une aide ultra précieuse tous les 2 :-)

Merci beaucoup ça marche impec !!!!

Maintenant je vais m'attaquer au traitement des factures : comparaison de ma facture avec la facture de la contrepartie et ressortir automatiquement les écarts... une autre paire de manche !!!

Si pb, je vais poster un autre sujet car cela devient un peu long :-b Mais j'espère que vous me suivrez dans mon aventure l hihihi ... !!!

@ bientôt
Sandrine
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 241
31 mai 2011 à 13:38
Comme tu penses t'installer ici pour un moment tu devrais t'inscrire, ça te permettra de retrouver et suivre plus facilement tes questions.

Et dans vbe tu devrais afficher la fenetre 'espions' (menu affichage).
Tu sélectionnes une variable (ou une expression comme Year(Date) & Right("0" & Month(Date) - 1, 2)) dans le code et tu fais un cliqué-glissé vers la fenetre espions.
Ca te permet de suivre l'évolution de la valeur si tu exécutes ton code en pas à pas (mettre le curseur dans le sub et faire F8 pour exécuter instruction par instruction)

eric
0