Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/09/2011, 14h40   #1
Invité régulier
 
veronique guyon
Inscription : mai 2010
Messages : 18
Détails du profil
Informations personnelles :
Nom : veronique guyon

Informations forums :
Inscription : mai 2010
Messages : 18
Points : 5
Points : 5
Par défaut extraire d'une liste sous condition de critère avec combox

Bjr,

J'ai créé cette macro. Elle marche trés bien, mais je souhaiterai créer une combox pour qu'il me demande le nom du critère, qui permet de faire l'extraction :

Par exemple : jacques allaire, la macro se lance jusqu'au bout puis ensuite me redemande si j'ai un autre nom a rentrer, jusqu'à ce qu'à la fin je dis non et la macro s'arrêt.

Je vous mets la macro ci-dessous, mais je ne sais pas comment on met les diese sur le côté. Merci de me l'expliquer

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub EXTRAIREC()
 
   Selection.AutoFilter Field:=1, Criteria1:="EC"
   Selection.AutoFilter Field:=7, Criteria1:="ALLAIRE JACQUES"
 
' Copie de la feuille active
 
    ActiveSheet.Copy
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
 
'Sauvegarde la copie
 
    ActiveSheet.SaveAs Filename:="G:\Direction Région Paris Ile France\RECLAMATIONS\- REPORTING\ENVOI RECL TOUS LES 15 J\ALLAIRE\RECL MAJ" & Format(Date, "ddmmyy")
    '& " " & ActiveSheet.Name
 
'Envoi Mail
 
    Dim dest As String
    dest = "veronique.guyon@lamy.net"
    ActiveWorkbook.SendMail Recipients:=dest, Subject:="Reporting des réclamations en cours", ReturnReceipt:=True
    ActiveWorkbook.Close SaveChanges:=True
 
    Selection.AutoFilter Field:=7
End Sub
puis de nouveau relancer avec un autre nom :
Code :
Selection.AutoFilter Field:=7, Criteria1:="DAVID MARTIN"
la macro repart jusqu'à ce que je n'ai plus de nom dans la liste et que je mette non.

Merci de votre aide !

Vérolyde
VEROLYDE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 15h23   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Où se situe la liste de noms destinée à remplir la combobox. Est-ce qu'il faut enregistrer dans la dossier Allaire parce que Jacques Allaire a été sélectionné, et si oui, ce dossier préexiste-t-il ?
Est-ce qu'une inputbox ne ferait pas mieux l'affaire ?
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 13h18   #3
Invité régulier
 
veronique guyon
Inscription : mai 2010
Messages : 18
Détails du profil
Informations personnelles :
Nom : veronique guyon

Informations forums :
Inscription : mai 2010
Messages : 18
Points : 5
Points : 5
Bjr,

Il existe une liste déroulante créée sur une feuille dans le classeur.

Puis sur une autre feuille, Il y un tableau avec différentes infos où je sélectionne le nom de la personne dans une liste déroulante.

Tous les 15 jours, le vendredi, je dois extraire chaque ligne de la liste où apparait ce nom, l'enregistrer dans un fichier avec la date du jour et adresser la liste complète à ladite personne, pour qu'elle examine cette liste par mail.

Il faudrait que cela se fasse tout seul, en reprenant les noms un par un et que s'il ne trouve pas ce nom, aille au suivant, etc... jusqu'à la fin ou que je rentre la saisie du nom, jusqu'à ce que j'ai saisi tous les noms présents à ce moment là sur le tableau. Ils n'ont pas toujours de réclamation.

Je ne peux plus joindre de pièce jointe. Apparemment, on ne peut dépasser par personne de fichiers joints.

Ma colonne est commence en F3.

Merci de votre aide !

verolyde
VEROLYDE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 14h35   #4
Membre confirmé
 
Inscription : juillet 2007
Messages : 209
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 209
Points : 219
Points : 219
Bonjour,

Dans la macro actuelle, le fichier envoyé est complet , seul le filtre est posé .
Est ce le résultat attendu ?
Si on prend comme postulat que le filtre est positionné toujours sur la même colonne, on peut imaginer concevoir une macro qui lit la valeur du critére et génére un fichier avec les lignes correspondantes.

Dans ce cas de figure, la macro est lancée après avoir posé le filtre.. Il ne me parait pas concevable de réaliser un mécanisme qui se lance automatiquement après le positionnement du filtre.
CodeFacile est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 14h51   #5
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjoour,

Sous réserve des observations de CodeFacile, j'ai recopié ton code (sans tester) dans ma macro évènementielle se déclenchant lors d'un choix dans la combobox :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub ComboBox1_Click()
    Selection.AutoFilter Field:=1, Criteria1:="EC"
    Selection.AutoFilter Field:=7, Criteria1:=ActiveSheet.ComboBox1.Value
 
    ' Copie de la feuille active
 
    ActiveSheet.Copy
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
 
    'Sauvegarde la copie
 
    ActiveSheet.SaveAs Filename:="G:\Direction Région Paris Ile France\RECLAMATIONS\- REPORTING\ENVOI RECL TOUS LES 15 J\ALLAIRE\RECL MAJ" & Format(Date, "ddmmyy")
    '& " " & ActiveSheet.Name
 
    'Envoi Mail
 
    Dim dest As String
    dest = "veronique.guyon@lamy.net"
    ActiveWorkbook.SendMail Recipients:=dest, Subject:="Reporting des réclamations en cours", ReturnReceipt:=True
    ActiveWorkbook.Close SaveChanges:=True
 
    Selection.AutoFilter Field:=7
End Sub
De préférence, remplace "Selection" par la plage elle-même.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h44.


 
 
 
 
Partenaires

Hébergement Web