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 --

37klode.zip (33.77 Ko)

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

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

42klode-extrait-2.zip (36.90 Ko)

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

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

45klode-extrait-3.zip (38.79 Ko)

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 Sub

Je 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

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 Sub

Amicalement

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

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 Sub

Bonne 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

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

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

Rechercher des sujets similaires à "exportation donnees"