Exportation de données
Bonjour à tous,
J'ai un classeur contenant plusieurs feuilles, dont deux plus particulièrement dont j'aimerais exporter certaines données vers l'autre et par la suite, la compléter et finalement l'imprimer. Le seul critère de recherche est la date de départ. Présentement, je le fais manuellement. Comme j'aurai bientôt au-delà 500 dates de départ non classées chronologiquement, cela sera impossible de le faire manuellement. Je suis sûr qu'il y a une façon de le faire plus facilement, mais pour la programmation en VBA, je n'en suis qu'à mes premiers pas.
Je joins une copie du classeur avec les 2 feuilles, Liste et Booking et un exemple de la feuille Booking contenant les renseignements de la feuille Liste que j'ai besoin.
Merci à tous de votre aide,
Claude
Bonjour.
Ne serait-il pas suffisant de faire un tableau filtrant.
Ainsi, tu fais ta recherche avec les dates que tu choisis en fonction des départs comme tu l'a demandé et en plus, tu n'a besoin que d'une feuille.
-- 20 Juil 2010, 13:48 --
Bonjour,
Merci pour ta réponse. Si tu as regardé les 2 feuilles, tu as sûrement remarqué que j'ai besoin également de compléter la feuille "Booking" en inscrivant des renseignements supplémentaires manuellement. Si je veux imprimer la feuille "Liste" après avoir utilisé le tableau filtrant, cela ne fonctionne pas, le tableau déborde. Je préfèrerais avoir une feuille supplémentaire au format déjà préparé.
Merci,
Claude
Pour le tableau filtrant:
Onglet "insertion"
Clic sur "Tableau"
Sélectionne la plage de données
Ton tableau se fera automatiquement avec des filtres sur chaque colonne.
Pour la feuille booking, j'aurai eu une solution si tu n'avais pas de doublons dans tes départs. Mais là, je n'arrive à récupérer que la première valeur de la date sélectionnée par liste déroulante. Si tu à deux valeurs pour la même date, alors je n'arrive à récupérer que la première. Le résultat n'est donc pas satisfaisant.
Des personnes bien meilleures que moi devraient savoir ce genre de choses.
Sans doute attribuer un "nom" à une formule pour avoir un choix de liste déroulante en fonction de la première liste déroulante concernant les dates de départs.
Je bloque là-dessus...
[quote="pass-pass"
Pour la feuille booking, j'aurai eu une solution si tu n'avais pas de doublons dans tes départs. Mais là, je n'arrive à récupérer que la première valeur de la date sélectionnée par liste déroulante. Si tu à deux valeurs pour la même date, alors je n'arrive à récupérer que la première. Le résultat n'est donc pas satisfaisant.[/quote]
Bonjour pass-pass,
Ce que j'ai pensé, c'est de me servir d'un calendrier pour choisir la date requise et importer tous les départs pour cette date et les insérer dans la feuille "Booking". Comme tu as remarqué, à certaines dates j'ai plusieurs départs et ce n'est pas évident de repasser environ 250 entrées pour trouver ces dates de départ et en plus, il y a toujours la possibilité d'en oublier et c'est ce que je veux éviter. Le tableau filtrant est un bon départ, mais ce n'est pas vraiment ce que j'ai besoin.
Merci,
Claude
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonsoir à tous,
Avec filtre élaboré,
La feuille d'extraction "Booking" récupère les données mais aussi les formats (bordures),
Tu remarqueras que les en-têtes doivent être identiques sur les 2 feuilles.
Amicalement
Claude
édit: J'ai changé le fichier joint,
pour ne pas modifier la structure de la feuille "Liste", à cause des autres macros
Bonsoir Dubois, bonsoir à tous,
Ton filtre élaboré est très intéressant. Je l'ai essayé à quelques reprises et cela fonctionne très bien. Je crois pouvoir me débrouiller avec. J'ai remarqué que le format se transférait également. Donc, si je veux un format particulier, je peux l'obtenir en modifiant légèrement ma feuille "Liste".
Cependant, je n'aime pas où est placé la cellule pour saisir la date à extraire. Si je veux imprimer ma feuille, tout s'imprime également. Cela doit sûrement être possible de la déplacer en dehors de la feuille, je l'ai fait avec le bouton "extraire" et il fonctionne toujours. Aussi, est-ce possible de faire l'extraction à partir d'une plage de dates?
Au lieu d'entrer la date, j'aimerais faire apparaître un calendrier et choisir ma date comme je l'ai fait sur une autre feuille.
Si tu peux m'aider pour la cellule de date à déplacer et la plage de dates, je pourrai m'occuper du reste.
Merci beaucoup de ton aide, c'est très apprécié,
Claude
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonjour,
Tu peux faire démarrer la zone d'impression à la ligne 3,
sinon prépare la feuille comme tu souhaite (avec le calendrier),
je verrais pour adapter le code
Amicalement
Claude
Re-bonjour Dubois,
J'ai modifié la feuille "Booking" selon mes besoins et j'ai également inclus 2 calendriers pour faire mes recherches de départs.
Merci pour ton aide,
Claude
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonsoir,
L'Userform et "Calendar" ne marche pas chez moi,
mais tu peux écrire le nouveau critère de filtre
en S2 (feuille Booking)
=ET(Liste!D2>=$M$2;Liste!D2<$O$2)et le code macro modifié
Sub ExtraitDate()
Dim Lg%
With Sheets("Liste")
Lg = .Range("A65536").End(xlUp).Row
.Range("a1:m" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("s1:s2"), CopyToRange:=Range("a2:h2"), Unique:=False
End With
Range("a1").Activate
End SubJe n'ai pas pu tester
Amicalement
Claude
Bonjour Claude,
Je viens juste de finir d'inclure les codes et faire des essais qui sont très concluants. Par contre, il y a quelques petits détails que j'aimerais peaufiner.
1- Lorsque je choisis une plage d'une journée, rien ne s'affiche. Je dois choisir une plage de 2 jours. Par exemple, date début 3 juillet et date de fin 3 juillet, rien ne s'affiche. Si je choisis date début 3 juillet et date de fin 4 juillet, alors les départs du 3 juillet s'affichent. Est-il possible de choisir seulement une plage d'une journée? Ce qui me paraîtrait plus logique pour avoir les départ d'un jour donné.
2- Si je choisis une plage de plusieurs jours, les dates de départ ne sont pas triées. J'imagine que les dates sont recopiées selon l'ordre qu'elles sont inscrites dans la feuille "Liste". Est-il possible que les dates soient triées lorsqu'elles sont copiées dans la feuille "Booking"?
À part ces 2 items, le reste est super!
Merci,
Claude
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
re,
Les critères sont maintenant indépendants et varient suivant date fin renseignée ou pas
avec tri colonnes A et B
Sub ExtraitDate()
Dim Lg%
''Macros par Claude Dubois pour "klode" Excel-Pratique le 21/07/10
With Sheets("Liste")
Lg = .Range("A65536").End(xlUp).Row
If Range("o2") <> "" Then
Range("s2") = "=Liste!d2>=$m$2"
.Range("a1:m" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("s1:t2"), CopyToRange:=Range("a2:h2"), Unique:=False
Else
Range("s2") = "=Liste!d2=$m$2"
.Range("a1:m" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("s1:s2"), CopyToRange:=Range("a2:h2"), Unique:=False
End If
End With
'---- tri ---
Range("a2:k" & Range("a65000").End(xlUp).Row).Sort _
Key1:=Range("a3"), Order1:=xlAscending, _
Key2:=Range("A6"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
Range("a1").Activate
End SubAmicalement
Claude
Bonjour Claude,
J'ai terminé les modifications sur mes feuilles "Liste" et "Booking". Le tout fonctionne très bien. Le seul soucis que j'ai, c'est que mes remarques dans la feuille "Liste" ne sont pas copiées dans la feuille "Booking". J'ai cherché et modifié quelques paramètres dans le VBA, mais je n'arrive pas à trouver la solution. Je sais qu'on peut omettre des colonnes pour qu'elles ne soient pas recopiées, mais je ne sais pas si l'inverse est possible. Il faudrait peut-être que j'ajoute quelques ligne de code, mais je ne sais pas quoi. Si tu as quelques instants pour y jeter un coup d'oeil, j'apprécierais.
Merci encore,
Claude
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonjour,
Je l'avais oublié celui-là !
--- petit rappel des filtres ---
La plage d'en-têtes d'extraction doit être contigue (tous les champs doivent figurés
dans la base), l'ordre est indifférent.
Sur ton fichier,
1) pas de modif sur la feuille "Booking"
2) sur la feuille "Liste" tu ajoute en N1:O1
les deux en-têtes "Bus" et "Driver"
et tu remplace la macro par celle-ci
Sub ExtraitDate()
Dim Lg%, Crit As Range
''Macros par Claude Dubois pour "klode" Excel-Pratique le 22/07/10
With Sheets("Liste")
Lg = .Range("A65536").End(xlUp).Row
If Range("o2") <> "" Then
Range("s2") = "=Liste!d2>=$m$2"
Set Crit = Range("s1:t2")
Else
Range("s2") = "=Liste!d2=$m$2"
Set Crit = Range("s1:s2")
End If
.Range("a1:o" & Lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Crit, CopyToRange:=Range("a2:k2"), Unique:=False
End With
'---- tri ---
Range("a2:k" & Range("a65000").End(xlUp).Row).Sort _
Key1:=Range("a3"), Order1:=xlAscending, _
Key2:=Range("A6"), Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
Range("a1").Activate
End SubBonne journée
Claude
dubois a écrit :Bonjour,
Je l'avais oublié celui-là !
--- petit rappel des filtres ---
La plage d'en-têtes d'extraction doit être contigue (tous les champs doivent figurés
dans la base), l'ordre est indifférent.
Bonne journée
Claude
Bonjour Claude,
Oui, tu en avais fait mention au début. J'y ai pensé, mais peut-être qu'il était possible d'y parvenir en ajoutant quelques lignes de code. C'est pour cela que je suis revenu sur le sujet. Je ferai donc les modifications dans ma feuille "Liste".
Merci,
Claude
Bonsoir à tous du forum, je sais que c'est un fil qui date un peu, mais comme j'ai un soucis le concernant et que toutes les infos sont déjà là alors j'en profite.
Comme le tout fonctionne bien, j'aurais besoin d'ajouter un critère de recherche, tri ou filtre selon ce qui serait le plus adapté à ma situation. En plus des dates de début et de fin, j'aimerais avoir la possibilité de choisir un client donné. J'ai déjà créé une liste déroulante qui contient tous mes clients. Je bloque sur comment l'intégrer à VBA tout en cliquant sur le bouton rechercher. Si quelqu'un pourrait m'aider, j'en serais très content.
Merci,
Claude
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonjour à tous,
Ton fichier aurait besoin d'un bon coup de ménage !
1) Dans "Liste", à quoi servent les lignes 2 à 4 , peut-on les supprimer ?
2) les Modules et UserForm sont-ils toujours d'actualité ? Sinon les virer.
3) Supprimer tous les noms définis qui ne sont plus à jour.
Tout çà gène pour faire quelque chose de propre !
Ensuite, tu me renvoie le fichier, on y verra + clair.
Amicalement
Claude
Bonjour à tous,
Ton fichier aurait besoin d'un bon coup de ménage !
Bonjour à tous et à toi Claude! Je ne veux pas te décevoir, mais j'ai élaboré mon fichier depuis le temps. Il a pris quelques kilo...octets! J'ai maintenant un classeur d'environ 10 pages. C'est pas parfait, mais il fait le travail que j'ai besoin. Je sais qu'il a besoin d'un bon ménage et des fonctions supplémentaires que j'aimerais ajouter. C'est pourquoi je reviens ici à l'occasion afin d'avoir de nouvelles idées pour améliorer mon classeur.
1) Dans "Liste", à quoi servent les lignes 2 à 4 , peut-on les supprimer ?
2) les Modules et UserForm sont-ils toujours d'actualité ? Sinon les virer.
3) Supprimer tous les noms définis qui ne sont plus à jour.
J'ai déjà passé un coup de balai en supprimant les lignes inutiles comme tu as suggéré. En ce qui concerne les modules et userforms, je m'en sers toujours mais si tu as des suggestions je suis preneur.
Tout çà gène pour faire quelque chose de propre !
Ensuite, tu me renvoie le fichier, on y verra + clair.
Amicalement
Claude
Voici les 2 choses dont j'aurais besoin.
Lors de l'appel du userform3 pour entrer les infos d'un nouveau client, lorsque je clique sur le bouton créer, j'aimerais qu'il soit placé en ordre alphabétique dans la feuille BDD Clients. Pour me dépanner, j'ai fait une Macro (module4) qui me permet de faire le tri dans la feuille BDD Clients en faisant CTRL+T.
Dans la feuille "Booking" j'aurais besoin d'ajouter un autre critère de tri ou filtre. J'aimerais avoir la possibilité de choisir d'afficher les voyages de tous les clients ou seulement un seul client pour une période définie de dates. J'ai déjà fait une liste déroulante avec tous mes clients, mais je ne sais pas vraiment comment l'intégrer au bouton rechercher.
Désolé, je ne peux pas inclure mon fichier, il fait plus de 200 ko.
Merci beaucoup,
Claude
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonsoir;
pour joindre le fichier,
utilise ce lien http://www.cjoint.com
Pour le filtre Clients, on pourrait choisir un mois/année,
ce serait + facile à saisir que 2 dates.
qu'en pense-tu ?
Claude
Bonjour Claude et à tous du forum,
Voici le lien pour le fichier:
C'est que je me sers de cette feuille pour faire ma facturation à chaque semaine, donc j'ai besoin de choisir 2 dates. Le calendrier qui apparaît dans chaque cellule est le userform2. C'est aussi pourquoi j'ai besoin de choisir le client. Les infos figurant dans cette feuille sont recopiés automatiquement dans la feuille "Nolisés". Je n'ai qu'à ajouter le nom du client dans l'en-tête et créer la facture. Tout se fait automatiquement, inscription dans la feuille "Factures" et l'envoi par courriel.
Merci,
Claude