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 31/08/2011, 11h34   #1
Candidat au titre de Membre du Club
 
Femme
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 12
Points : 12
Par défaut MFC avec formule

Bonjour,

J'ai un petit souci.
On m'a bien aidé déjà auparavant et c'ets grace à ce forum que j'avais trouvé ce code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Worksheet_Change(ByVal Target As Range) 
 
Application.ScreenUpdating = False
 
If Intersect(Target, [$D$4:$GE$39]) Is Nothing Then Exit Sub 
    For Each Cel In Target 
        Set Cel_R = Sheets("Feuil1").[$B$2:$B$31].Find(Cel, LookIn:=xlValues, LookAt:=xlWhole) 
            If Cel_R Is Nothing Then
                Cel.Interior.ColorIndex = xlNone
            Else
        Cel.Interior.ColorIndex = Cel_R.Interior.ColorIndex 
        Cel.Font.ColorIndex = Cel_R.Font.ColorIndex 
        Cel.Font.Bold = Cel_R.Font.Bold 
            End If
    Next Cel
 
End Sub
Ce code marche très bien si je rentre ma ou mes lettres correspondantes.

Par contre, j'ai une feuille qui dans chaque case renvoie à une cellule d'une autre feuille, et la dans cette feuille, ce code ne marche pas...

Quelqu'un peut-il m'aider?

Merci

Cordialement
bbcancer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 11h41   #2
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Salut.

1. Pourquoi ne pas placer une vraie MFC, plutôt que de faire mouliner du code?

2. En la plaçant par code événementiel, tu attaches la modification du format à une feuille particulière. Il te faudrait donc soit dupliquer ton code dans le module de l'autre feuille, soit attacher le code à un événement de classeur
Code :
1
2
3
4
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    ...
    ...
End Sub
Mais là aussi, je pense qu'il est plus simple de gérer une vraie MFC (voir ma signature à propos du développement VBA en Excel)
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 13h54   #3
Candidat au titre de Membre du Club
 
Femme
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 12
Points : 12
Bonjour

Je ne maitrise pas encore tout j'ai débuter en vba il n'y a pas trop longtemps.

Je ne pouvais pas mettre de vrai MFC car j'ai plus que 3 couleurs
Et le code que tu donnes je l'ajoute en module ou je laisse sur les feuilles (comme il est fait pour là)?

JE peux mettre un exemple de fichier si c'est plus simple.

Merci
bbcancer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h04   #4
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Ok pour la mfc par macro.

Je n'ai pas compris ceci
Citation:
Par contre, j'ai une feuille qui dans chaque case renvoie à une cellule d'une autre feuille, et la dans cette feuille, ce code ne marche pas...
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h15   #5
Candidat au titre de Membre du Club
 
Femme
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 12
Points : 12
En fait, j'ai plusieurs feuille dans mon classeur.
Sur une feuille, j'ai ma légende (lettre et format à appliquer)
Sur une 2 autres feuilles (matin et après midi), quand je rentre la légende (c'est un planning), ma MFC s'applique automatiquement grace à ce code.
Sur une autre feuille (we), chaque cellule est renvoyé en fonction des feuilles matin et aprem (='matin'!D4). C'est pour éviter de réécrire manuellement la légende.
C'est plus clair?
bbcancer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 19h27   #6
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Ok.

Tu dois donc adapter aussi le format de cellules qui contiennent les formules telles que Cela signifie que tu dois insérer le code dans la boucle, en fonction de la relation qui unit les cellules de la feuille Matin et de la feuille qui contient la formule citée plus haut. Sur cette feuille, la plage à modifier est la même que celle de la plage source ([$D$4:$GE$39])?
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 09h01   #7
Candidat au titre de Membre du Club
 
Femme
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 12
Points : 12
Oui ma plage source est la même. Du coup comment je dois adapter mon code?
Merci
bbcancer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 09h08   #8
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Tu pourrais essayer ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Worksheet_Change(ByVal Target As Range) 
 
Application.ScreenUpdating = False
 
If Intersect(Target, [$D$4:$GE$39]) Is Nothing Then Exit Sub 
    For Each Cel In Target 
        Set Cel_R = Sheets("Feuil1").[$B$2:$B$31].Find(Cel, LookIn:=xlValues, LookAt:=xlWhole) 
            If Cel_R Is Nothing Then
                Cel.Interior.ColorIndex = xlNone
            Else
            Cel.Interior.ColorIndex = Cel_R.Interior.ColorIndex 
            Cel.Font.ColorIndex = Cel_R.Font.ColorIndex 
            Cel.Font.Bold = Cel_R.Font.Bold 
            with worksheets("feuille").range(Cel.address)
                .Interior.ColorIndex = Cel_R.Interior.ColorIndex 
                .Font.ColorIndex = Cel_R.Font.ColorIndex 
                .Font.Bold = Cel_R.Font.Bold
            End With 
            End If
    Next Cel
 
End Sub
[EDIT] Il faut bien entendu adapter le nom de la feuille à ton cas [/EDIT]

L'idée est de faire correspondre le format conditionnel de la cellule dépendante à celui de la cellule antécédante, au moment de la modification de cette dernière.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 09h25   #9
Candidat au titre de Membre du Club
 
Femme
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 12
Points : 12
Soit je me suis trompée dans le nom de ma feuille (feuille à adapter), soit je comprends pas pourquoi ca en marche pas

Pour le nom de la feuille à adapter, je mets bien le nom de la feuille sur laquelle la formule est renvoyé? (Par exemple ma feuille matin)?
bbcancer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 09h27   #10
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Non, c'est le nom de la feuille qui contient "=matin!d4" que tu dois renseigner
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 09h33   #11
Candidat au titre de Membre du Club
 
Femme
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 12
Points : 12
Ça marche pas
Tu veux que je t'envoie un exemple de mon fichier?
bbcancer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 09h41   #12
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
A ce stade, ce serait peut-être une bonne chose, en effet
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 11h08   #13
Candidat au titre de Membre du Club
 
Femme
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 12
Points : 12
Voilà je te joins mon exemple.
Mon problème se situe donc sur ma feuille WE qui renvoie aux feuilles matin et aprem.
J'espère que du coup ca sera un peu plus clair.
Je te remercie

oup's je crois que mon fichier ne s'est pas inséré
En fait il était trop gros donc j'ai du le simplifier. Les colonnes vont jusqu'au mois de juin et pour le reste de l'année j'ai fait 3 autres onglets

Est-il possible dans mon code de lui dire de marquer tout en majuscule, ou s'il y a possibilité de respecter la case? (Car par exemple pour le lieux Je souhaiterais mettre Aaa donc 1er lettre en majuscule et le reste en minuscule) au sinon tout le reste est forcément en majuscule


Une autre question : pourquoi quand je supprime une ligne ou une colonne (pareil lorsque je colle), mon fichier plante et je suis obligé de le forcer à se fermer (mais j'annule pour qu'il me prenne en compte mes changements). je sais pas si c'est très clair

Je n'arrive pas à envoyer le fichier je comprends pas pourquoi j'ai essayer de l'alléger. Et il me marque :"Échec de l'upload du fichier. "
Bon je réessaye.
Je te remercie encore pour ton aide

Bon ca y est ca marche...
Dur dur pour le simplifier

Bon du coup j'ai été obligé de supprimer pas mal de chose...

Alors sur mon fichier original
Ma feuille "Légende" va de la ligne 2 à 32
Ma feuille " Planning Matin S1" va de la ligne 4 à 46 et de la colonne B à GB
Ma feuille " Planning Aprem S1" va de la ligne 4 à 39 et de la colonne B à GB
Ma feuille " Planning we S1" va de la ligne 4 à 73 et de la colonne B à GB

Ma feuille we est un recap des feuilles matin et aprem

Merci
Fichiers attachés
Type de fichier : xls Co Planning test.xls (126,5 Ko, 4 affichages)
bbcancer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 14h44   #14
Candidat au titre de Membre du Club
 
Femme
Inscription : octobre 2010
Messages : 101
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : octobre 2010
Messages : 101
Points : 12
Points : 12
Bonjour,

Apparemment mon problème est trop compliqué ou c'est juste que tu n'as pas eu le temps de voir pourquoi ca ne marchait pas...
Merci encore
bbcancer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h37.


 
 
 
 
Partenaires

Hébergement Web