Récupérer quelques cellules fixes dans un classeur contenant

Bonjour tout le monde,

J’ai un problème de taille sur Excel pour aller trouver des données et les coller au bon endroit.

Je m’explique.

J’ai un classeur Excel avec de nombreux onglets, nommés selon la date à laquelle l’onglet a été créé. Actuellement, le fichier démarre au 3 janvier et va jusqu’au 3 juin. Les onglets sont nommés au format date : 3 janvier est « 03-01 » et 3 juin est « 03-06 », chronologiquement de gauche à droite. De façon aléatoire, une journée ou plusieurs manquent parfois, et l’on peut donc sauter du 4 mai « 05-04 » au 9 mai « 05-09 ». Chaque jour en théorie, un onglet est rajouté au fichier. Il y’a d’autres onglets dans le classeur qui n’ont rien à voir, avant le début de la série des dates et également après.

J’ai créé un onglet « collecte », et je voudrais une macro qui fonctionne dessus de la manière suivante :

1/ on demande à l’utilisateur une date de début et une date de fin (la date de début doit donc être supérieure ou égale au 03-01)

2/ en fonction de cette plage de date, la macro va aller récupérer 3 contenus de cellule fixe dans tous les onglets concernés, et les coller dans l’onglet « collecte ». Les cellules concernées sont toujours au même endroit :

  • « poids » dans la cellule $F$14
  • « Volume » dans la cellule $E$8
  • « Prix » dans la cellule $F$9

Merci beaucoup d’avance si quelqu’un peut m’aider avec ça !

Laure

16exemple.zip (4.18 Ko)

Bonjour

une solution mi macro-mi formules

Cordialement

21exemple.zip (15.33 Ko)

Bonjour à tous,

Une solution par macro :

Merci à tous les deux.

Amadeus je ne comprends pas grand chose à ta solution

Vba-New, ça a l'air assez simple, mais il y'a pas mal de choses qui ne marchent pas, par exemple quand je prends les dates du 03/01 au 03/06, j'obtiens simplement "40603" qui s'affiche à la place de la ou devrait s'afficher la premiere date (03/01)

=> Il faut que plusieurs lignes s'affichent avec les 3 infos demandées par ligne (plus la date) correspondant à 3 cellules différentes sur chaque onglet, et que les dates s'affichent correctement

Merci bcp !!

Bonjour

Amadeus je ne comprends pas grand chose à ta solution

Si cela veut dire que le résultat n'est pas là, il serait intéressant de savoir où est l'erreur?

Bien sur, pour arranger ça..

Cordialement

Bonjour,

Voici ma petite pierre à l'édifice :

En vba, pour le plaisir

Pour la démo , cliques sur le bouton :Collecte lorsque le fichier excel sera ouvert

16exemple1.zip (16.99 Ko)
Misterno a écrit :

Bonjour,

Voici ma petite pierre à l'édifice :

En vba, pour le plaisir

Pour la démo , cliques sur le bouton :Collecte lorsque le fichier excel sera ouvert

Merci bcp Misterno, j'ai essayé et c'est très proche de ce que je voulais. J'ai juste vu quelques pbs sur la sélection des dates, par exemple :

exemple1 : de 03-01 à 04-01 ça marche niquel

exemple2 : de 04-01 à 02-03, la macro dit que la date de fin est supérieure à la date du début (j'ai excel en anglais ?..)

exemple3: de 03-01 à 04-01, ça marche mais cela rajoute une date non

choisie : 03-06

exemple4: de 03-01 à 03-06, cela m'affiche seulement 2 lignes correspondant à la date de départ et date de fin, et pas toutes les dates intermédiaires disponibles

Pour info je suis sur Excel 2010 en Anglais.

Merci bcp si tu peux me dire d'où ça vient.

Laure

Laure,

En effet Excel Anglais ne simplifie pas la vie , mais bon ...

J'ai verrouillé les dates en ne passant que par des chaine de caractères.

Technique que j'utilise pour programmer sur des programmes internationaux.

Cela devrait résoudre le problème.

11exemple1.zip (16.71 Ko)

Merci mais hélas, le pb demeure

Je reprends les même exemples que le précédent post:

ex1 : n'affiche plus aucun résultat

ex2 : meme problème

ex3 : n'affiche plus aucun résultat

ex 4 : là par contre maintenant ça marche niquel !!

Merci d'avance

laure

A nouveau un essai à effectuer,

J'ai enlevé toutes les fonctions date pour le traitement ,

le principe est d'assembler l'année, le mois et le jour de façon à obtenir un nombre plus grand lorsque l'on va vers le futur et plus petit lorsque l'on retourne vers le passé.

9exemple1.zip (17.16 Ko)

Merci bcp ! Ca marche presqu'en saisissant les dates au format jj/mm/aaaa

y'a que pour l'exemple 2 que ça rate encore

Je pense que ça vient clairement des dates en anglais, car en effet au format américan mm/jj/aaaa, l'exemple 1 et 3 fonctionnent aussi. Voila ce que ça donne :

exemple 1

- 03-01 à 04-01 : n'affiche plus aucun résultat

- 03/01 à 04/01 : n'affiche aucun résultat

- 03-01-2011 à 04-01-2011 : ça marche !

- 03/01/2011 à 04/01/2011 : ça marche !

exemple 2

- 04-01 à 03-02 : date fin < date début

- 04/01 à 03/02 : date fin < date début

- 04-01-2011 à 03-02-2011 : date fin < date début

- 04/01/2011 à 03/02/2011 : date fin < date début

exemple3

- 03-01 à 03-06 : n'affiche plus aucun résultat

- 03/01 à 03/06 : n'affiche plus aucun résultat

- 03-01-2011 à 03-06-2011 : ça marche

- 03/01/2011 à 03/06/2011 : ça marche

Edit après réflexion : je pense que Excel ne comprends les dates que je saisis que au format anglais, c'est pour cela que par hasard, ça marche dans l'exemple 1 et l'exemple 3, mais dans l'exemple 2 ça ne marche plus :

Quand je rentre mes dates au format fr, excel les comprends en format anglais :

exemple 1 devient : 1er mars < 1er avril (US) OK par hasard

exemple 2 devient : 1 avril > 2 mars problème

exemple 3 devient : 1er mars < 6 mars OK par hasard

Merci bcp

Laure

Bonsoir

avec des contrôles calendrier (DTpicker, Calendar) peut-être ,

8copiesidates.zip (15.85 Ko)

Bonjour Bon us,

Merci pour le coup de main,

Pour moi ta solution est également ok.

Mais Laure utilise une version anglaise d'Excel alors , il n'y à que sur son poste que l'on pourra avoir le verdict

Donc attendons son retour

Rebonjour, et merci cette fois tous les deux !

Plus ça passe et plus je me sens coupable !

Une bonne nouvelle et une mauvaise. Je commence par la mauvaise : la solution de BonUS ne marche pas car apparemment il me manque des choses sur mon ordi, msg à l'ouverture du fichier : "could not load some objects because they are not available on this machine".

La bonne nouvelle, c'est que j'ai probablement trouvé un moyen de contourner le problème, en faisant apparaitre les dates en dur à l'intérieur de chaque onglet. Désormais, les dates sont affichées en cellule $G$2 au format anglais. Je pense que ça doit être plus pratique qu'utiliser les noms d'onglets qui étaient en date version fr, alors que la saisie doit se faire en anglais. Maintenant tout est en anglais.

exemple mis à jour :

9exemple-ls.zip (4.50 Ko)

Bonsoir,

Nouveau code pour nouvelle donne :

7exemple-ls.zip (16.51 Ko)

Salut

je m'en doutais aussi j'avais donné 2 contrôles.

Pour éviter de les installer (pourtant pratiques), j'ai changé le code.

Teste avec ta version et dis nous (pas les mêmes résultats que le dernier fichier de Misterno ).

merci à tous les deux

le fichier de Misterno est assez proche mais créé certaines erreurs, le fichier de bonUS marche niquel

problème résolu !!

merci bcp à vous tous

Rechercher des sujets similaires à "recuperer fixes classeur contenant"