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 24/08/2011, 16h29   #1
Invité de passage
 
Homme Rémi
Comptable
Inscription : août 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Rémi
Localisation : Canada

Informations professionnelles :
Activité : Comptable
Secteur : Bâtiment

Informations forums :
Inscription : août 2011
Messages : 3
Points : 0
Points : 0
Par défaut Macro de mise en forme conditionnelle

Bonjour,

J'ai téléchargé un fichier dernièrement sur ce Forum et j'ai essayé de le modifier pour mes besoins et je n'arrive pas à changer la "cible" de la macro. Voici le code en question :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r, motClé As Range
    If Target.Column > 1 Or Target.Row = 1 Or Target.Cells.Count > 1 Then Exit Sub
    r = Application.Match(Target.Value, Worksheets("Listes").Range("A2:A51"), 0)
    If IsError(r) Then
        Set motClé = Worksheets("Listes").Range("A2")
    Else
        Set motClé = Worksheets("Listes").Range("A" & r + 1)
    End If
    With Target
        .Font.Name = motClé.Font.Name
        If motClé.Offset(0, 1).Value <> "" Then
            .Font.Size = motClé.Offset(0, 1).Value
        End If
        .Font.Bold = motClé.Font.Bold
        .Font.Italic = motClé.Font.Italic
        .Font.ColorIndex = motClé.Font.ColorIndex
        .Interior.ColorIndex = motClé.Interior.ColorIndex
    End With
End Sub
Avec cette Macro, le changement du format se fait uniquement dans la Colonne A dans la première feuille et j'essaie de changer cette cible pour qu'elle soit dans la Colonne N, sans changer l'emplacement des données de la feuille "Liste".

J'ai essayé de changer les noms des colonnes dans la macro (dans les lignes de "range") mais sans succès et mes connaissances en VBM sont inexistantes alors je ne sais pas comment régler mon "problème".

Merci beaucoup de votre soutien et bonne journée.

[EDIT1] : J'ai changé la partie :
Code :
If Target.Column > 1 Or Target.Row = 1 Or Target.Cells.Count > 1
pour y inscrire :
Code :
If Target.Column = 14 Or Target.Row = 1 Or Target.Cells.Count > 1
et maintenant la macro est active dans toute la ligne et non pas dans la colonne N tel que j'aimerais que ce soit.

Il me reste uniquement à restreindre l'action de la macro uniquement dans la colonne en question... des idées ?
RaiM1986 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 18h04   #2
Invité de passage
 
Homme Rémi
Comptable
Inscription : août 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Rémi
Localisation : Canada

Informations professionnelles :
Activité : Comptable
Secteur : Bâtiment

Informations forums :
Inscription : août 2011
Messages : 3
Points : 0
Points : 0
Désolé pour le double post, mais j'ai une mise à jour dans ce dossier.

J'ai réussi à changer la cible de la macro pour qu'elle ne touche seulement que la colonne en question et pas les autres. Par contre j'ai un autre petit problème qui m'empêche de faire fonctionner le fichier comme je le voudrais.

La partie que je veux qui soit touchée par la macro est en réalité une formule très simple, une soustraction. Lorsque je fais fonctionner la formule en écrivant des données dans les deux cellules qui sont comprises dans la formule, la macro ne s'active pas. Par contre, lorsque j'écrit la donnée qui serait supposée d'être touchée par la macro à la main, tout fonctionne à merveille...

Des idées ?
RaiM1986 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 08h27.


 
 
 
 
Partenaires

Hébergement Web