Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Repérer texte dans cellule en VBA

  • Initiateur de la discussion Initiateur de la discussion yadla
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

😕 😕 😕

C'est compliqué hein...

Merci pour vote aide.

YADLA
 
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). 😕

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 😛

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

Merci
 

Pièces jointes

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

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

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:
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
 
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:
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 😕
 
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:
Re : Repérer texte dans cellule en VBA

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

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 😉
 
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 😀
A+
 

Pièces jointes

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

Sinon, j'ai peut être une modification...😛 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 😀

Merci beaucoup,

Bonne journée.

YADLA
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
31
Affichages
2 K
Réponses
40
Affichages
3 K
Réponses
4
Affichages
365
D
Réponses
4
Affichages
433
DidPouAxi
D
Réponses
8
Affichages
832
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…