Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2012, 10h11   #1
Membre du Club
 
Avatar de Wolfy
 
Homme
Autodidacte passionné
Inscription : février 2004
Messages : 92
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Autodidacte passionné
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : février 2004
Messages : 92
Points : 60
Points : 60
Par défaut VBA Recherche et Mise en forme

Bonjour à tous,

Je suis actuellement entrain de faire un système de gestion de congés. J'ai réalisé sur une unique page les 12 mois avec tout les jours. ça Ok

Je cherche a faire une macro pour formater certaine cellule en fonction d'autres... Pour faire simple mettre toutes les cases qui ont comme valeur "sam" et "dim" en gris ainsi que les 5 cellules en dessous (par exemple B6:B11) ...
et comme j'ai tout les jours de l'année, je dois les faire sur les 52 samedi et dimanche de l'année... vous voyez !

J'ai fait un des recherches et j'ai trouvé la fonction FIND, mais je la comprend finalement pas très bien et j'arrive encore moins a faire une boucle.

Bref si vous aviez des idées, ou informations pour m'aider ça serait super.. car la je rame

@+
__________________
Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème.
Wolfy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 10h37   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Tu peux aussi faire une mise en forme conditionnelle.

Sinon, pourrais-tu décrire un peu plus la structure de la feuille pour voir s'il vaut mieux un Find, une boucle, un Match...
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 10h45   #3
Membre du Club
 
Avatar de Wolfy
 
Homme
Autodidacte passionné
Inscription : février 2004
Messages : 92
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Autodidacte passionné
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : février 2004
Messages : 92
Points : 60
Points : 60
La forme conditionnel, j'y avais pensé mais ça s'applique uniquement à la cellule.
Alors qu'en fin de compte, je veux teinter une colonne...

J'ai mis en pièce jointe une capture de mon tableau.
Chaque date est réalisé de la forme suivante : =DATE($B$1;A2;1) + cellule au format date.
Comme ça je change la cellule de l'année et tout se met à jour, et l'idée c'est qu'au moment du changement de valeur, la macro soit automatique, soit en cliquant sur un bouton ré-applique au nouveau calendrier les grisés aux samedi et dimanche

J'ai l'impression que mon explication est confuse...
Images attachées
Type de fichier : png capture.png (14,5 Ko, 3 affichages)
__________________
Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème.
Wolfy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 11h04   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Non, tu peux faire de la mise en forme conditionnelle avec des formules sur d'autres cellules sans problème.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 11h12   #5
Membre du Club
 
Avatar de Wolfy
 
Homme
Autodidacte passionné
Inscription : février 2004
Messages : 92
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Autodidacte passionné
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : février 2004
Messages : 92
Points : 60
Points : 60
Je n'ai jamais regarder les formules en conditionnel, ça m’intéresse... Je vais regarder ça de plus prêt !
Maintenant, j'ai déjà 3 formats conditionnels utilisé... voir peut être même plus...

Donc il faut que je reste sur le principe en VBA m’intéresse nettement plus car je vais ensuite pouvoir le détourner
__________________
Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème.
Wolfy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 11h37   #6
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Voici ce qu'on pourrait faire, à adapter sans doute légèrement

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Option Explicit
 
Public Sub MiseEnFormeWE()
    Dim ws As Worksheet
    Dim iRow, iCol As Integer
    Dim rg As Range
 
    Set ws = Worksheets("Feuil1") 'A modifier en fonction de ta feuille de calendrier
 
    iRow = 3
 
    Do While ws.Cells(iRow, "B").Value <> "" 'Tant qu'il y a un mois
        iCol = 2
 
        Do While ws.Cells(iRow, iCol).Value <> "" 'Tant qu'il y a des jours dans le mois
            Set rg = ws.Cells(iRow, iCol)
 
            If rg.Value = "sam" Or rg.Value = "dim" Then
                ws.Range(rg.Offset(2, 0), rg.Offset(6, 0)).Interior.Color = vbgrey 'On met en gris les cellules des heures
            End If
 
            iCol = iCol + 1
        Loop
 
        iRow = iRow + 11 'Mois suivant
    Loop
End Sub
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 12h01   #7
Membre du Club
 
Avatar de Wolfy
 
Homme
Autodidacte passionné
Inscription : février 2004
Messages : 92
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Autodidacte passionné
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : février 2004
Messages : 92
Points : 60
Points : 60
Super ça fonctionne plutôt bien !!
J'ai fait une correction car la valeur (renvoi une date) et non le texte...

mais le principe est très claire et moins bourrin que ce que j'avais imaginé !
finalement tu cibles directement les lignes concernées.

et je comprend mieux le principe de boucle pour parcourir les lignes et colonnes...

Un Grand Merci
__________________
Ne me dites pas que ce problème est difficile.
S'il n'était pas difficile, ce ne serait pas un problème.
Wolfy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h47.


 
 
 
 
Partenaires

Hébergement Web