IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

VBA et mise en forme [XL-365]


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut VBA et mise en forme
    Bonjour tout le monde,

    j'ai une mise en forme conditionnelle qui s'applique à : =$A$1:$S$103

    Quand je lance ma macro qui insère une ligne (ligne 3) puis rentre les données d'un formulaire sur cette ligne et enlève le remplissage des couleurs de cette ligne ma mise en forme conditionnelle s'applique à =$A$1:$S$2;$A$4:$S$104;$R$3:$S$3

    j'aimerais qu'elle s'applique à : =$A$1:$S$104

    et je ne sais pas comment faire j'ai fait des recherches mais je ne trouve pas.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sans la publication de votre procédure VBA, il sera difficile de vous apporter une réponse pertinente.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Un exemple à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub FormatConditionnel()
        Dim Plage_MFC As Excel.Range
        Dim FC1 As Excel.FormatCondition
        Dim DerLig As Long
     
        Application.ScreenUpdating = False
        DerLig = Range("A" & Rows.Count).End(xlUp).Row 'trouve la dernière ligne
        Set Plage_MFC = Range("A1:S" & DerLig) 'définit la plage sur laquelle va s'appliquer la MFC
        Plage_MFC.FormatConditions.Delete 'Efface les précédentes MFC
     
        Range("A1").Select ' sélectionnez la première cellule où doit s'appliquer la MFC
        Set FC1 = Plage_MFC.FormatConditions.Add(Type:=xlExpression, Formula1:="=ET($A1>=10;$A1<=100)") 'remplacez la formule entre guillemets par la vôtre
        FC1.Interior.Color = RGB(248, 203, 172) 'Choisir la couleur à appliquer
     
        Set FC1 = Nothing
        Set Plage_MFC = Nothing
    End Sub

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    Le problème c'est qu'a chaque fois que je vais utiliser la macro je vais rajouter une mise en forme.
    Il n'y a pas moyen de faire un réglage Excel sans le faire sur VBA ? (Je suis sur téléphone je n’ai pas encore pu tester ta macro)

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sans VBA, si vous travaillez avec des tableaux structurés, chaque nouvelle ligne héritera automatiquement de la mise en forme conditionnelle, des validations de données, des formules, etc.

    A lire Apprendre à utiliser les tableaux structurés Excel : création, manipulations et avantages(1)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    Nom : Ao 1.PNG
Affichages : 205
Taille : 12,3 Ko
    J'ai cette feuille où je rentre les données


    Nom : AO2.PNG
Affichages : 187
Taille : 6,7 Ko
    Cette feuille où je rentre les données

    Nom : Ao 3.PNG
Affichages : 202
Taille : 13,6 Ko
    Avec cette mise en forme


    Quand je clique sur la macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    Sub Bouton7_Cliquer()
     
    Sheets("Contrats et AO").Select
       Rows("3:3").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
     
    Sheets("Formulaire").Select
       Range("D5").Select
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("A3").Select
        ActiveSheet.Paste
        Sheets("Formulaire").Select
        Range("D7").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("B3").Select
        ActiveSheet.Paste
        Sheets("Formulaire").Select
        Range("D9").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("C3").Select
        ActiveSheet.Paste
        Sheets("Formulaire").Select
        Range("D11").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("D3").Select
        ActiveSheet.Paste
        Sheets("Formulaire").Select
        Range("D13").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("E3").Select
        ActiveSheet.Paste
        Sheets("Formulaire").Select
        Range("I4").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("F3").Select
        ActiveSheet.Paste
        Sheets("Formulaire").Select
        Range("I7").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("G3").Select
        ActiveSheet.Paste
        Sheets("Formulaire").Select
        Range("I10").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("H3").Select
        ActiveSheet.Paste
        Sheets("Formulaire").Select
        Range("D15").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("I3").Select
        ActiveSheet.Paste
        Sheets("Formulaire").Select
        Range("D17").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("J3").Select
        ActiveSheet.Paste
     
          Sheets("Formulaire").Select
         Range("B21:E21").Select
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("N3").Select
        ActiveSheet.Paste
               Sheets("Formulaire").Select
        Range("I16").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("K3").Select
        ActiveSheet.Paste
         Sheets("Formulaire").Select
        Range("I18").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("L3").Select
        ActiveSheet.Paste
     
         Sheets("Formulaire").Select
         Range("I20").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Contrats et AO").Select
        Range("M3").Select
        ActiveSheet.Paste
     
     
     
     
     
        Sheets("Formulaire").Select
        Range("D5:D17").Select
        Selection.ClearContents
        Range("B21:E21").Select
        Selection.ClearContents
        Range("I4:I10").Select
        Selection.ClearContents
        Range("C16:C21").Select
        Selection.ClearContents
         Range("I16:I20").Select
        Selection.ClearContents
     
     
         Sheets("Contrats et AO").Select
        Rows("3:3").Select
        With Selection.Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
     
         Sheets("Formulaire").Select
    Range("B17") = "Métier"
     
        Sheets("Contrats et AO").Select
        Range("A2").Select
    End Sub
    J'obtiens cette mise en forme
    Nom : AO4.PNG
Affichages : 191
Taille : 14,2 Ko

    Mais si je fais exactement comme la macro manuellement la mise en forme s’applique bien au

    =$A$1:$S$4

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Mise en forme et VB
    Par Flidy1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/05/2006, 15h57
  2. [VBA-E] Mise en forme CSV (option regional)
    Par BenoitM dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/05/2006, 15h43
  3. [VBA-E]mise en forme commentaire
    Par bill7 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/03/2006, 16h57
  4. [VBA][Excel] mise en forme conditionnelle
    Par titflocon dans le forum Access
    Réponses: 9
    Dernier message: 19/12/2005, 10h13
  5. [VBA-E] Mise en forme conditionelle
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2005, 15h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo