Besoin d'aide pour programmation VBA (chercher dans un classeur et mettre en couleur)

highlander

XLDnaute Nouveau
Bonjour,

J'aurais besoin d'aide pour un classeur qui sert pour des emploi du temps.

Voila ce que je voudrais :
- dans un premier onglet : un bouton sert à reperer ce qu'il y a dans la case B1 d'un onglet et renomme l'onglet en fonction de la case B1 ==> ca c'est fait et ca marche
- dans l'onglet edt prof : je voudrais créer un bouton qui ouvre une boite de recherche
- dans cette boite je met un nom : exemple Prof 1
- la recherche se fait dans tout les onglets
- et a chaque fois qu'il trouve "prof 1" dans un onglet il colorie la case en gris

actuellement j'ai ce bouton sur chaque onglet, je dois choissir la plage de donnée, puis je rentre "Prof 1" et il me colorie les cases.
Il faudrait que le bouton se trouve dans l'onglet EDT Prof et qu'il fasse la recherche dans les cases non vide, car selon les semaines les plages de données vont être différentes selon le nombre de classes.

Il faudrait aussi que cela marche pour excell 2002 mais aussi pour 2010

d'avance merci
 

Pièces jointes

  • essai macro.xls
    71 KB · Affichages: 74
  • essai macro.xls
    71 KB · Affichages: 68
  • essai macro.xls
    71 KB · Affichages: 72

Dranreb

XLDnaute Barbatruc
Re : Besoin d'aide pour programmation VBA (chercher dans un classeur et mettre en cou

Bonjour.
Le plus simple serait d'affecter le nom choisi comme référence à un nom dans le classeur, et d'effectuer le coloriage des cellules par une mise en forme conditionnelle dont la formule comparerait le contenu de la cellule avec ce nom.

Ça pourrait donner quelque chose comme ça :
 

Pièces jointes

  • EDTProfs.xls
    61 KB · Affichages: 57
  • EDTProfs.xls
    61 KB · Affichages: 54
  • EDTProfs.xls
    61 KB · Affichages: 55
Dernière édition:

highlander

XLDnaute Nouveau
Re : Besoin d'aide pour programmation VBA (chercher dans un classeur et mettre en cou

Il est vrai que la mise en forme conditionnel permettrait de faire cela facilement. Cependant il faudrait que je rentre chaque nom pour que la mise en forme compare. Hors le but de cette macro est que toute les personnes qui recoivent l'emploi du temps puisse choissir chacun de mettre leur case en gris afin d'imprimer l'emploi du temps. Autre contrainte c'est qu'on cherche a éviter les impression couleur donc avec du gris ca ne compte jamais comme de la couleur. Hors avec une mise en forme conditionnel il faudrait mettre une couleur par prof (au total il y a a peu pres 30 profs).
De plus le but est également de pouvoir l'utiliser d'une année sur l'autre sans toucher au programme.
 

Dranreb

XLDnaute Barbatruc
Re : Besoin d'aide pour programmation VBA (chercher dans un classeur et mettre en cou

Dommage.
Mais avouez que c'était joli !
Il ne vous reste plus qu'à enlever toutes les couleurs, à ne plus laisser que la 1ère condition et à mettre juste un fond gris clair dessus. Ou mieux peut être: police blanc gras sur fond gris sombre. J'ai fait un essai dans ce sens dans la 2ième feuille.
Il serait possible si nécessaire de faire automatiquement l'inventaire des noms de profs dans la ListeDesProfs.

Marche aussi en mettant dans les MeFC la règle : La valeur de la cellule est | Égale à | =NomSél
 

Pièces jointes

  • EDTProfs.xls
    62 KB · Affichages: 49
  • EDTProfs.xls
    62 KB · Affichages: 60
  • EDTProfs.xls
    62 KB · Affichages: 55
Dernière édition:

highlander

XLDnaute Nouveau
Re : Besoin d'aide pour programmation VBA (chercher dans un classeur et mettre en cou

Oui c'était une bonne idée

maintenant peut être qu'il est possible de faire un lien pour la mise en forme conditionnel par rapport a une case a remplir sur l'onglet edt prof

Je sais que certains collègue on besoin de mettre en 2 ou 3 prof en couleur (même couleur)

Pour info j'ai developpé sur excell de quoi faire nos edt avec une couleur par prof, automatisation de la mise en forme etc...

Ce classeur compte le nombre d'heure qu'a réaliser chaque prof en regardant le dernier mot de la case : le nom du prof. Mais certaines fois je suis obligé de mettre d'autres choses devant.

exemple : pour M. Dupont
jetape dans une case : dupont et il se met en forme : M. Dupont et met la case en rouge
apres la mise en forme, Je eput rajouter devant : Maths ce qui donne en fin de compte Maths : M. Dupont, cela compte toujours les heures

afin d'envoyer au prof les edt sans qu'il touche au classeur qui créé l'edt on copie les edt dans celui envoyé et on suprime toutes les couleurs.

il faut donc qu'il trouve dans le fichier tout les endroit ou il verra noter dupont


En tout cas je garde la macro que ta créé car elle est tres interressante et risque de me servir a un moment ou a un autre
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Besoin d'aide pour programmation VBA (chercher dans un classeur et mettre en cou

Mettez peut être dans un module normal une procédure comme ça :
VB:
Option Explicit

Sub ImprimerTout()
Dim Cel As Range, N As Long
For Each Cel In 
[ListeDesProfs]
   If IsEmpty(Cel.Value) Then Exit Sub
   ThisWorkbook.Names.Add "NomSél", "=""" & Cel.Value & """"
   For N = 2 To ThisWorkbook.Worksheets.Count
      ThisWorkbook.Worksheets(N).PrintPreview '.PrintOut '
      Next N
   Next Cel
End Sub

La MeFC marche apparemment en mettant comme formule :
Code:
=CHERCHE(NomSél;D4)
…sauf si une cellule vide est sélectionnée dans ListeDesProfs car alors toutes les cellules contiennent une chaine vide et sont grisées.
 
Dernière édition:

highlander

XLDnaute Nouveau
Re : Besoin d'aide pour programmation VBA (chercher dans un classeur et mettre en cou

voici ou j'en suis

J'ai un bouton avec ce code :

Code:
Private Sub CommandButton1_Click()

    Dim Plage As Range
    Set Plage = Range("A1:BZ650")
    Dim MotRechercher As String
    MotRechercher = InputBox("Entrer la donnée à repérer", "Us")
    If MotRechercher = vbNullString Then Exit Sub

    Dim Cellule As Range
    For Each Cellule In Plage
    If InStr(1, Cellule.Value, MotRechercher) > 0 Then
        Range(Cellule.Address).Select
        With Selection.Interior
            .ColorIndex = 15
            .Pattern = xlSolid
        End With
     End If
     Next Cellule

End Sub

Il est sur une feuille et j'aimerai que quand je clique sur le bouton, il recherche le mot tapper dans la box sur toute les feuilles et lui applique la couleur

merci d'avance a qui pourra m'aider
 

Dranreb

XLDnaute Barbatruc
Re : Besoin d'aide pour programmation VBA (chercher dans un classeur et mettre en cou

Mais bong sang vous n'avez encore pas compris qu'il suffit de programmer :
VB:
ThisWorkbook.Names.Add "NomSél", "=""" & MotRechercher & """"
pour que ce soit immédiatement assumé par la MeFC ?
De plus étant donné qu'il s'agit de trouver un prof, je ne comprends vraiment pas en quoi c'est plus pratique de le taper que de sélectionner la cellule dans la liste !
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 111
dernier inscrit
Eric68350