Repérer texte dans cellule en VBA

yadla

XLDnaute Occasionnel
Bonjour le forum,

Mon problème est de trouver les cellules correspondant à trois critères.

Je m'explique :

  1. J'ai un fichier Excel avec un planning a la semaine.
  2. Mon planning est un tableau à 3 entrées :

    • [*]Saison
      [*]Jour de la semaine
      [*]Salle​
  3. Je recherche les cellules concernant une saison, un jour et une salle
  4. Ce jour de la semaine est le jour de départ
  5. Je veux copier les horaires de cette salle pour toute la semaine, à partir d'un jour demandé (il peut être n'importe lequel), dans une autre feuille
  6. Problème : Le planning peut etre changé n'importe quand. C'est-à-dire que le nombre de lignes ou de colonnes peut changer à tout moment... Et le nom des salles peut changer aussi...

:confused: :confused: :confused:

C'est compliqué hein...

Merci pour vote aide.

YADLA
 

yadla

XLDnaute Occasionnel
Re : Repérer texte dans cellule en VBA

Bonjour Catrice,

lol j'ai oublié de mettre mon fichier...

J'ai ajouter des expications du coup à coté du tableau de planning.

Là mon programme selectionne la bonne plage de cellules (correcpondant à la bonne saison et au bon jour demandé).

Par contre, en fait, je pense que mon code est très lourd pour arriver à ce que je fais... Il n'y a pas des astuces ?? Sinon, aussi, je copie rien dans Feuil1, tu verras. J'ai pas encore fait, ca arrive.

En fait, Je me demandais s'il fallait que je répète ce code encore 7 fois pour pouvoir copier dans Feuil1 toutes les horaires de chaque salle (en fonction de la saison demandée). :confused:

Les heures de début sont en noir, et les heures de fin en rouge. Ca sera en fonction de ca que j'écrierai dans Feuil1 "début" ou "fin".

Voilà, Je pense ca ira mieux si je mets le fichier en pièce jointe :p

Si c'est toujours pas clair, dis le moi.

Merci
 

Pièces jointes

  • Planning.xls
    37 KB · Affichages: 93
  • Planning.xls
    37 KB · Affichages: 102
  • Planning.xls
    37 KB · Affichages: 98

Catrice

XLDnaute Barbatruc
Re : Repérer texte dans cellule en VBA

Re,

Une "vision" dans le fichier joint ...
La macro se trouve dans le Module2.
J'utilise le fait que les zones soient fusionnées ;)
Pour le moment, il n'y a pas pas de gestion d'erreur (il faut bien selectionner les 3 items)

Je crois avoir compris quelles données tu souhaitais récupérer mais je ne suis pas sur d'avoir compris exactement ce qu'il fallait en faire.
Il faudra sans doute adapter ...
 

Pièces jointes

  • Planning.zip
    22.4 KB · Affichages: 75
  • Planning.zip
    22.4 KB · Affichages: 72
  • Planning.zip
    22.4 KB · Affichages: 83

yadla

XLDnaute Occasionnel
Re : Repérer texte dans cellule en VBA

Bonjour Catrice,

Merci pour ton fichier, il est vrai que le code est très court, c'est génial pour ca, merci :)

Par contre, je te le renvoie modifié.

J'ai donné quelques explications directement sur le fichier.

Sinon, quelques hic :
  • si j'ajoute une ligne, par exemple tout en haut, ca ne marche plus. Tu as en fait nommé "Range(2:2)", et c'est ca qui coince, il faut rechercher la bonne ligne correcpondante. Par exemple, si j'ai des horaires en plus
  • si j'ajoute une salle, pareil, ca gère pas ca
  • en plus je suis exigente, j'aimerais que quand j'ajoute tout ca, ca se fasse directement dans tes combobox qui me conviennent parfaitement
  • en fait, si tu fais le test avec ma macro, si t'ajoutes lignes ou colonnes n'importe où, ca te sélectionnera toujours la bonne plage de cellule, mais bon, mon code est trop complexe et trop long.... beaucoup trop long !! Je sais

Ah oui, tu verras en fait j'avais fais une copie et donc un problème (je pense qpas vraiment que ca en soit un vrai) c'est qu'il existe plusieurs plannings, donc plusieurs onglets. C'est rajouté dans le fichier "Planning V2".

Voilà, j'espère t'avoir donné assez de précisions et ne rien avoir oublié de mes exigences ;)

Je te remercie de t'occuper de moi.

A bientot et bonne journée.

YADLA
 

Pièces jointes

  • Planning V2.zip
    17.7 KB · Affichages: 54
  • Planning V2.zip
    17.7 KB · Affichages: 53
  • Planning V2.zip
    17.7 KB · Affichages: 48

Catrice

XLDnaute Barbatruc
Re : Repérer texte dans cellule en VBA

Bonjour,

Je vois un peu plus clair ;)
Globalement les attentes ont l'air réalisables.
Pour les listes qui se metent à jour automaiquement ça devrait aller aussi.
Pour ce qui concerne l'insertion d'une ligne, oui, ça peut poser pb mais on va automatiser ça.
Tu confirmes qu'il y aura x onglets qui contiendront x plannings du meme format ? (seuls les nb de lignes, de colonnes et le contenu varieront).

Autre question, tu dis :
A la suite, dans le tableau, il faut que tous les autres jours de la semaine s'insèrent
Ca veut dire que dès qu'on choisit Jeudi pour le Planning 1 par exemple, tous les autres jours doivent apparaitre à la suite ? ou bien les jours ne s'ajoutent que si on passe par la boite de dialogue (donc 1 jour à la fois) ?
Je vais regarder ça aujourd'hui.
A+
 
Dernière édition:

yadla

XLDnaute Occasionnel
Re : Repérer texte dans cellule en VBA

Merci beaucoup, tu m'aides vraiment.

T'as tout a fait compris.

Il y aura x onglets dans le même classeur, et chaque onglet aura le même format, c'est juste le contenu qui va varier (et le nb de colonnes et lignes).

Sinon, en fait, oui, mon tableau (ici, dans Feuil1) aura 7 "grandes lignes".
1 ligne par jour. Tous les autres jours doivent apparaitre à la suite. On ne repasse donc pas par la boite de dialogue.

Encore merci,

YADLA
 

Catrice

XLDnaute Barbatruc
Re : Repérer texte dans cellule en VBA

Re,

Dernieres petites questions ...
Chaque planning x contient les 7 jours de la semaine, pas plus ?
Donc si on commence le Jeudi, doivent suivrent V, S, D puis L, M, M du début de tableau (au dessus de Jeudi) ?
Dans Feuil1, les colonnes C et D doivent etre fusionnées sur le nombre de lignes corespondant à 7 jours ?
Ou bien on aura :
P1 HS Jeudi
P1 HS Vendredi
P1 HS Samedi
.....
Soit C, D, E fusionnées de la meme maniere

Si on relance la macro, on doit pouvoir choisir un autre planning, par exemple, qui se mettra à la suite des données déjà récupérées dans Feuil1 ?
A+
 
Dernière édition:

yadla

XLDnaute Occasionnel
Re : Repérer texte dans cellule en VBA

Re,

Chaque planning x contient les 7 jours de la semaine et pas plus. Je pense que tu fais allusion aux jours fériés, mais ils sont traités à part.

Si on commence le Jeudi, doivent suivrent V, S, D puis L, M, M du début de tableau "Planning" mais au dessous de Jeudi. On aura donc dans l'ordre : J, V, S, D, L, M, M. (Mercredi, donc, en dernier).

Dans Feuil1, ca serait bien que les colonnes C et D soient fusionnées sur le nombre de lignes corespondant à 7 jours
Mais si on a:
P1 HS Jeudi
P1 HS Vendredi
P1 HS Samedi
.....
C'est pas bien grave.

Si on relance la macro, on doit pouvoir choisir un autre planning. Par contre, ce qui serait bien (et c'est toi qui m'y fait penser), ca serait de faire une "Feuil1" par planning. On appellerait donc plus ca "Feuil1" mais "Semaine Planning 1", "Semaine Planning 2", ... Donc si on fait appel à un autre planning, ca vient écraser les données qu'il y avait déjà dans son onglet correspondant ("Semaine Planning 3" par exemple pour "Planning 3").

Dans chaque onglet "Semaine Planning x", on doit avoir une semaine complète, qui commence par le jour spécifié dans le combobox. Mais qu'une seule semaine. Si on appelle deux fois le même planning on doit effacer d'abord le contenu du tableau dans "Semaine Planning x" avant de le reremplir.

J'en demande pas trop :confused:
 

Catrice

XLDnaute Barbatruc
Re : Repérer texte dans cellule en VBA

Re,

Ca roule ...
Je vais plutot travailler dessus ce soir mais j'ai dèjà avancé un peu.
Derniere petite question, sur une saison et un jour (donc n salles) il ne peut pas y avoir des horaires qui se chevauchent ?
=> HS - Salle 1 - Samedi - 600:1100 et HS - Salle 2 - Samedi - 1000:1200
C'est impossible ?
 
Dernière édition:

yadla

XLDnaute Occasionnel
Re : Repérer texte dans cellule en VBA

Pas de problème, c'est déjà super sympa de t'occuper de m'aider :p

Sinon pour ta question, je ne suis pas sure de l'avoir vriament comprise.

En fait chaque salle a ses horaires, mais tu peux avoir des heures qui se chevauchent.

Donc :
HS - Salle 1 - Samedi - 600:1100 et HS - Salle 2 - Samedi - 1000:1200​
C'est possible

Tu peux même avoir :
HS - Salle 1 - Samedi - 600:1000 et HS - Salle 2 - Samedi - 800:900​

J'espère voir répondu...

Bonne fin de journée ;)
 

Catrice

XLDnaute Barbatruc
Re : Repérer texte dans cellule en VBA

Bonsoir,

Ci-joint une nouvelle version.
En cliquant sur le bouton, on choisit un planning puis une saison puis un jour.
En cliquant sur "Création Planning" on génère un nouvel onglet au format souhaité.

Specifications :
- Le nouvel onglet detruit systematiquement un onglet du meme nom s'il existe déjà.
- On peut définir où doit démarrer le planning dans le nouvel onglet (CelluleBase dans Module1)
- Les boutons apparaissent au fur et à mesure des choix (controle d'execution, de cette façon, on ne peut pas generer un planning si les parametres ne sont pas renseignés. Forcement, les listes ne sont pas visible ;) )
- Quelle que soit la position du planning dans les feuilles planning x, la macro fait le traitement.
- Un format 00":"00 a été ajouter sur les planning x. Quand on saisit 1000 s'affiche : 10:00
- Si on rajoute des saisons et/ou des salles ça fonctionne

Restriction :
- "Jour sem" dans chaque Feuille planning x est obligatoire et la syntaxe est précise. "Jour sem" sert à repérer la position du planning dans la feuille

Interprétation :
- J'ai du composer pour ce qui concerne l'histoire des horaires qui se chevauchent (je ne faisait pas allusion aux jour fériés).
En effet, cas idéal tous les horaires se suivent, il suffit de trier.
Mais quand ils se chevauchent, il faut faire un autrement.
Regarde ce que ça donne dans un tel cas et dis moi.

Enfin, on doit pouvoir optimiser un peu mais on verra dans la V4 :D
A+
 

Pièces jointes

  • Planning V3.zip
    27.8 KB · Affichages: 45
  • Planning V3.zip
    27.8 KB · Affichages: 48
  • Planning V3.zip
    27.8 KB · Affichages: 49

yadla

XLDnaute Occasionnel
Re : Repérer texte dans cellule en VBA

Bonjour,

Alors là, je tiens à te dire que ta restriction sur "Jour sem" me perturbe beaucoup !! lol

Non, évidemment, il n'y a aucun problème. Ce n'est vraiment pas dérangeant.

Sinon, concernant les horaires qui se chevauchent, tu t'es peut etre ennuyé pour rien, je ne sais pas, mais en fait, moi tout ce qui m'importe, c'est d'avoir les heures dans l'ordre, CAD que si j'ai :

=> Salle 1 - 10:00 à 16:00
=> Salle 2 - 12:00 à 15:00

Il faut dans Semaine Planning x que j'ai :

10:00 => Salle 1
12:00 => Salle 2
15:00 => Salle 2
16:00 => Salle 1

Ca veut dire que peut importe de ne pas avoir l'heure de début et de fin de la même salle à la suite. Ca peut peut être simplifier.

Autrement, ton fichier est vraiment génial. C'est juste ce qu'il me fallait, je planchait dessus aussi, mais je suis bien plus lente que toi, et ne connaissant pas beaucoup de choses sur la programmation en Excel, c'était un peu tiré par les cheveux... :rolleyes:

Sinon, j'ai peut être une modification...:p Si au lieu de choisir le jour de la semaine, on peut peut être entrer une date. Ca je sais qu'on peut récupérer le nom du jour de la semaine d'une date...

Bon, je vais regarder... Je commence ma V4 :D

Merci beaucoup,

Bonne journée.

YADLA
 

Catrice

XLDnaute Barbatruc
Re : Repérer texte dans cellule en VBA

Bonjour,

Ci-joint une version qui met les horaires dans l'ordre.

Pour l'histoire des jours, ça veut dire qu'en réalité dans les planning, il y a des jours définis (pas simplement les jours de la semaine) ?
Jeudi 5 Juillet, Vendredi 6 Juillet etc ...

Oui, on peut récupérer les jours en Vba et faire le meme traitement.
 

Pièces jointes

  • Planning V3.zip
    27.8 KB · Affichages: 55
  • Planning V3.zip
    27.8 KB · Affichages: 56
  • Planning V3.zip
    27.8 KB · Affichages: 56

Discussions similaires

Réponses
1
Affichages
167

Statistiques des forums

Discussions
312 109
Messages
2 085 382
Membres
102 877
dernier inscrit
robinet