Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 17/12/2012, 23h38   #21
Philippe Tulliez
Expert Confirmé Sénior
 
Homme Philippe Tulliez
Formateur Office et développeur VBA (Excel, Access et Word)
Inscription : janvier 2010
Messages : 3 052
Détails du profil
Informations personnelles :
Nom : Homme Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Formateur Office et développeur VBA (Excel, Access et Word)

Informations forums :
Inscription : janvier 2010
Messages : 3 052
Points : 6 891
Points : 6 891
Bonjour Chris,
Effectivement j'avais le même message d'erreur lors de mes tests (#NOM?) ce qui est normal comme message d'erreur mais curieux pour le résultat positif qu'il engendre. A creuser.
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
Dernier article : Excel – Créer un affichage personnalisé sans VBA
Mes contributions : Fonction Incrémentation d'un n° (Compteur) - Procédure de tri pour Excel 2003-2010
Philippe Tulliez est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2012, 10h13   #22
fredo38
Membre du Club
 
Inscription : octobre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : octobre 2006
Messages : 57
Points : 40
Points : 40
Par défaut Super !!!!

Bravo et merci pour ce tutoriel qui m'a permis de découvrir cette fonctionnalité de façon rapide et claire
__________________
L'erreur n'annule pas la valeur de l'effort accompli.
Frédéric
fredo38 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2012, 11h59   #23
Philippe Tulliez
Expert Confirmé Sénior
 
Homme Philippe Tulliez
Formateur Office et développeur VBA (Excel, Access et Word)
Inscription : janvier 2010
Messages : 3 052
Détails du profil
Informations personnelles :
Nom : Homme Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Formateur Office et développeur VBA (Excel, Access et Word)

Informations forums :
Inscription : janvier 2010
Messages : 3 052
Points : 6 891
Points : 6 891
Bonjour Frédéric,
Merci pour tes congratulations.
Philippe
Citation:
Envoyé par fredo38 Voir le message
Bravo et merci pour ce tutoriel qui m'a permis de découvrir cette fonctionnalité de façon rapide et claire
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
Dernier article : Excel – Créer un affichage personnalisé sans VBA
Mes contributions : Fonction Incrémentation d'un n° (Compteur) - Procédure de tri pour Excel 2003-2010
Philippe Tulliez est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2012, 15h31   #24
Darkzinus
Membre Expert
 
Homme Nicolas
Ingénieur d'Etude Mainframe
Inscription : novembre 2012
Messages : 231
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Âge : 32
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'Etude Mainframe
Secteur : Finance

Informations forums :
Inscription : novembre 2012
Messages : 231
Points : 1 409
Points : 1 409
Merci beaucoup pour ce tutoriel ! Autant le filtre de "base" est connu autant ce genre de filtre élaboré est assez bluffant en terme de possibilités !
Darkzinus est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/12/2012, 17h05   #25
issoram
Membre chevronné
 
Avatar de issoram
 
Homme Zeco
Développeur informatique
Inscription : janvier 2009
Messages : 505
Détails du profil
Informations personnelles :
Nom : Homme Zeco
Localisation : France, Saône et Loire (Bourgogne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 505
Points : 606
Points : 606
Envoyer un message via MSN à issoram
Merci Philippe pour ce tutoriel.

Une fonctionnalité d'Excel que je ne connaissais pas et qui m'a l'air fort pratique.
Je teste tout ça de suite.

Suite du message: Je viens de finir le tutoriel, c'est super clair, merci encore et félicitations!
En somme c'est un équivalent du SELECT FROM WHERE Sql sur une table de données => super pratique.

Par contre en termes de performance, ça donne quoi sur des grosses tables avec filtres complexes?
issoram est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 19/12/2012, 07h33   #26
Philippe Tulliez
Expert Confirmé Sénior
 
Homme Philippe Tulliez
Formateur Office et développeur VBA (Excel, Access et Word)
Inscription : janvier 2010
Messages : 3 052
Détails du profil
Informations personnelles :
Nom : Homme Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Formateur Office et développeur VBA (Excel, Access et Word)

Informations forums :
Inscription : janvier 2010
Messages : 3 052
Points : 6 891
Points : 6 891
Bonjour Darkzimus,
Citation:
Envoyé par Darkzinus Voir le message
Merci beaucoup pour ce tutoriel ! Autant le filtre de "base" est connu autant ce genre de filtre élaboré est assez bluffant en terme de possibilités !
Merci pour ton appréciation qui me fait extrêmement plaisir.
Philippe
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
Dernier article : Excel – Créer un affichage personnalisé sans VBA
Mes contributions : Fonction Incrémentation d'un n° (Compteur) - Procédure de tri pour Excel 2003-2010
Philippe Tulliez est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2012, 07h54   #27
Philippe Tulliez
Expert Confirmé Sénior
 
Homme Philippe Tulliez
Formateur Office et développeur VBA (Excel, Access et Word)
Inscription : janvier 2010
Messages : 3 052
Détails du profil
Informations personnelles :
Nom : Homme Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Formateur Office et développeur VBA (Excel, Access et Word)

Informations forums :
Inscription : janvier 2010
Messages : 3 052
Points : 6 891
Points : 6 891
Bonjour Zeco,
Citation:
Envoyé par issoram Voir le message
Merci Philippe pour ce tutoriel.
Une fonctionnalité d'Excel que je ne connaissais pas et qui m'a l'air fort pratique.
Je teste tout ça de suite.
Suite du message: Je viens de finir le tutoriel, c'est super clair, merci encore et félicitations!
En somme c'est un équivalent du SELECT FROM WHERE Sql sur une table de données => super pratique.
Par contre en termes de performance, ça donne quoi sur des grosses tables avec filtres complexes?
Merci aussi pour ton gentil commentaire qui donne envie de continuer à partager ses connaissances.
Pour ce qui est des performances, je viens à l'instant de faire un test sur une liste de données de 65000 lignes et 4 colonnes ($A$1:$D$65001) avec un filtre portant sur une zone de critères de 2 lignes et 3 colonnes ($G$1:$I$3).
Sexe|Crit |Véhicule
...F...|FAUX|
.......|........|Opel
Le critère calculé est =ANNEE(C2)=1966

Test effectué à l'aide de la fonction qui est présente dans le classeur qui accompagne le tutoriel.
Dans cet exemple 10 038 lignes sont exportées avec création de la feuille qui reçoit les lignes exportées. Temps 2 secondes 32
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
Dernier article : Excel – Créer un affichage personnalisé sans VBA
Mes contributions : Fonction Incrémentation d'un n° (Compteur) - Procédure de tri pour Excel 2003-2010
Philippe Tulliez est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2012, 14h46   #28
issoram
Membre chevronné
 
Avatar de issoram
 
Homme Zeco
Développeur informatique
Inscription : janvier 2009
Messages : 505
Détails du profil
Informations personnelles :
Nom : Homme Zeco
Localisation : France, Saône et Loire (Bourgogne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 505
Points : 606
Points : 606
Envoyer un message via MSN à issoram
Merci pour la réponse,

Si j'ai un peu de temps je ferais des comparatifs de performances vs l'utilisation de tableaux en VBA.

Et merci encore de partager (de ton temps et tes connaissances) et de contribuer à enrichir la bibliothèque des tutoriels.
issoram est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2012, 15h27   #29
Ormonth
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 646
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 646
Points : 6 296
Points : 6 296
Bonjour issoram;

Citation:
Envoyé par issoram Voir le message
Si j'ai un peu de temps je ferais des comparatifs de performances vs l'utilisation de tableaux en VBA.
Au niveau du contexte, via Excel, on passe en langage natif, les similitudes entre ll’organisation d'une feuille et les variables tableaux, plus le fait qu'on puisse dans les deux sens injecter l'un dans l'autre direct, laisse à penser que c'est, en partie, le mode de fonctionnement d'Excel.
Donc si on pilote Excel sur des fonctions natives via VBA, on doit gagner par rapport à monter une plage dans un tableau, exécuter du code et redescendre.

mes test pour ce fil vont dans le même sens que Philippe :
Citation:
Sinon, dès que les données sont nombreuses tu as intérêt à éviter les boucles quel quelles soient car elles sont chronophages.

Dans un cas comme le tien passer par un filtre auto ou avancé, à un stade donné, pour récupérer les données voulues serait surement bien plus rapide.
Pour exemple, sur un fichier de données de villes de 146 727 lignes et 2 346 687 cellules, je récupère une table de 2329 lignes et 37 249 cellules en l'espace de moins d'une seconde avec une extraction vers autre emplacement d'un filtre avancé...
cordialement,

Didier
__________________
Didier Gonard

Nouveau tutoriel
(octobre 2012) : Le VBA qu'est ce que c'est ?
Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/03/2013, 11h20   #30
Philippe Tulliez
Expert Confirmé Sénior
 
Homme Philippe Tulliez
Formateur Office et développeur VBA (Excel, Access et Word)
Inscription : janvier 2010
Messages : 3 052
Détails du profil
Informations personnelles :
Nom : Homme Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Formateur Office et développeur VBA (Excel, Access et Word)

Informations forums :
Inscription : janvier 2010
Messages : 3 052
Points : 6 891
Points : 6 891
Bonjour,
Cette discussion sur le forum m'a inspiré un nouvel exemple dans l'utilisation des filtres avancés.
Dans un classeur Excel nous avons une liste de données ayant en colonne A le nom de différents services d'une entreprise et dans les autres colonnes d'autres données.
L'idée est d'envoyer un classeur contenant une feuille à chacun des services concernés avec les données qui lui sont propres.
Les zones :
de données en feuille [db] avec en colonne A le nom des services,
de critères cellules $C$1:$C$2 dans la feuille [Param]
La feuille [Param] contiendra également la liste des services qui aura été exportée sans les doublons par la même méthode advancedFilter
La procédure
Elle se déroulera en deux étapes dont la deuxième est subdivisée en trois parties.
Etape 1 : Création d'une liste unique basée sur la colonne 1 (Services).
Etape 2 : Dans une boucle
2.1 Création nouvelle feuille
2.2 Exportation vers nouvelle feuille
2.3 Déplacement de cette nouvelle feuille vers un nouveau classeur
Le code de la procédure
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
25
26
27
28
29
30
Sub ExportDataByAdvancedFilter()
 ' Déclaration + Initialisation des variables
 Dim rngList As Range, rngData As Range, rngCriteria As Range, r As Long
 Set rngData = shtData.Range("A1").CurrentRegion
 With shtParam
  Set rngList = .Range("A1"): Set rngCriteria = .Range("C1:C2")
 End With
 ' Etape 1 - Création d'une liste unique basée sur la colonne 1
 With rngData
 .Resize(, 1).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=rngList, Unique:=True
 End With
 ' Etape 2 - Boucle sur la liste avec placement du critère
 '           Création nouvelle feuille
 '           Exportation vers nouvelle feuille
 '           Déplacement de cette nouvelle feuille vers un nouveau classeur
 For r = 1 To rngList.CurrentRegion.Rows.Count - 1
  rngCriteria.Cells(2, 1) = rngList.Offset(r) ' Insère le critère
  ' 2.1 - Création d'une feuille
  Sheets.Add before:=Sheets(1): Sheets(1).Name = rngList.Offset(r)
  ' 2.2 - Exportation vers nlle feuille suivant critère
  With rngData
  .AdvancedFilter xlFilterCopy, rngCriteria, Sheets(1).Range("A1")
  End With
  ' 2.3 - Déplacement de la feuille cers un nouveau classeur
  Sheets(1).Move
  '
  ' Ici code pour sauver classeur, Envoyer par email etc...
  '
 Next
End Sub
Fichiers attachés
Type de fichier : xls AdvancedFilter - Export WorkBook.xls (56,5 Ko, 2 affichages)
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
Dernier article : Excel – Créer un affichage personnalisé sans VBA
Mes contributions : Fonction Incrémentation d'un n° (Compteur) - Procédure de tri pour Excel 2003-2010
Philippe Tulliez est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h29.


 
 
 
 
Partenaires

Hébergement Web