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

Macros et VBA Excel Discussion :

mettre variable pour mise en forme dynamique [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Par défaut mettre variable pour mise en forme dynamique
    Bonjour a tous
    je commence a être un habitué, j'ai l'impression d'être de plus en plus nul enfaite ^^

    Je vous explique mon problème
    Donc en gros j'ai deux feuille, je copie le contenu de la première dans la deuxième
    dans la première j'ai des tableaux de A à L, et de 1 à a 689, avec des cases blanches entre les tableaux et des titres.
    et dans les colonnes A et L j'ai des bandes noir, Ce que je ne copie pas

    Et j'avais des mise en forme conditionnelle, donc elles sont toute décalé

    j'ai donc fait une macro pour les remettre, ce qui donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    For i = 19 To 44 Step 1
        Range("C" & i & ":K" & i).Select
        Selection.FormatConditions.Delete
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$A" & i & " >0"
        With Selection.FormatConditions(1).Font
            .Bold = True
            .Italic = False
        End With
        Selection.FormatConditions(1).Interior.ColorIndex = 37
        Next
    End Sub
    mais ceci fait que 1 tableau, et je me demande si c'est possible de faire une boucle pour englober tout les tableaux.

    Les tableaux ne font pas la même taille, donc ca risque d'être assez dur ^^

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Par défaut
    Youpi j'adore les monologues ^^

    Donc j'ai trouvé quelque chose pour ceux qui on le même problème que moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    For i = 19 To 680 Step 1
        If i = 45 Or i = 46 Or i = 47 Or i = 48 Then 
        Else
            Range("B" & i & ":K" & i).Select
            Selection.FormatConditions.Delete
            Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$A" & i & " >0"
            With Selection.FormatConditions(1).Font
                .Bold = True
                .Italic = False
            End With
            Selection.FormatConditions(1).Interior.ColorIndex = 37
        End If
    Next
    End Sub
    Le seul problème c'est que sur 680 lignes je dois en exclure 34 tableaux soit 136 lignes
    Et je me vois pas mettre 136 fois i=45 Or i=...
    C'est un peu chiant ^^
    Si vous avez une autre solution

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Par défaut
    monologue continu ^^

    donc voila ce que j'ai trouvé :

    Soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For i = 19 To 680 Step 1 '680
        If i = 45 Or i = 46 Or i = 47 Or i = 48 Or i = 60 Or i = 61 Or i = 62 Or i = 63 Or i = 79 Or i = 80 Or i = 81 Or i = 82 Or i = 104 Or i = 105 Or i = 106 Or i = 107      'CA PEU ALLER TRES TRES LOIN -_-
           Else
            Range("B" & i & ":K" & i).Select
            Selection.FormatConditions.Delete
            Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$A" & i & " >0"
            With Selection.FormatConditions(1).Font
                .Bold = True
                .Italic = False
            End With
            Selection.FormatConditions(1).Interior.ColorIndex = 37
        End If
    Next
    Soit : qui est un peu plus court...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For i = 19 To 680 Step 1 '680
        If i > 45 And i < 49 Or i > 60 And i < 64 Or i > 79 And i < 83 Or i > 104 And i < 108 Or i > 122 And i < 126 Or i > 138 And i < 142 Or i > 154 And i < 158 Or i > 169 And i < 173 Or i > 182 And i < 186 Or i > 195 And i < 199 Or i > 210 And i < 214 Or i > 227 And i < 231 Or i > 242 And i < 246 Or i > 255 And i < 259 Or i > 270 And i < 274 Or i > 285 And i < 289 Or i > 294 And i < 298 Or i > 304 And i < 308 Or i > 324 And i < 336 Or i > 356 And i < 360 Or i > 6366 And i < 370 Or i > 372 And i < 384 Or i > 442 And i < 460 Or i > 495 And i < 499 Or i > 505 And i < 509 Or i > 525 And i < 531 Or i > 553 And i < 563 Or i > 574 And i < 578 Or i > 624 And i < 628 Or i > 650 And i < 654 Or i > 667 And i < 671 Then
        Else
            Range("B" & i & ":K" & i).Select
            Selection.FormatConditions.Delete
            Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$A" & i & " >0"
            With Selection.FormatConditions(1).Font
                .Bold = True
                .Italic = False
            End With
            Selection.FormatConditions(1).Interior.ColorIndex = 37
        End If
    Next


    Mais bon si vous avez quelque chose de plus court je suis très beaucoup preneur ^^

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Idéalement, il est préférable de mettre des parenthèses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (i > 45 And i < 49) Or (i > 60 And i < 64) Or (i > 79 And i < 83) ...
    Tu peux aussi utiliser un Select Case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select Case I
        Case Is > 45, Is < 49, Is > 60, Is < 64
     
    End Select
    Et ce serait préférable de mettre les conditions qui s'appliquent plutôt que l'inverse et mettre un Else qui ne sert à rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If I > 10 Then
    Else
    'Faire quelque chose
    End If
    équivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If I <= 10 then
    'Faire quelque chose
    End If

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 238
    Par défaut
    Oui d'accord merci
    pour les conditions qui s'applique plutôt que celles qui ne s'applique pas j'ai compris,
    malheureusement dans mon cas il y a plus de conditions qui s'applique plutôt que de conditions qui ne s'applique pas... ^^
    Mais j'ai compris votre réponse et je vous remercie

    Cordialement !

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

Discussions similaires

  1. Package Ada pour mise en forme d'écran/console
    Par Hibou57 dans le forum Ada
    Réponses: 12
    Dernier message: 07/02/2015, 17h14
  2. Réponses: 10
    Dernier message: 02/11/2007, 14h36
  3. Plug-in pour mise en forme
    Par Le Pharaon dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 22/06/2007, 17h17
  4. [CSS] Besoin d'aide pour mise en forme !
    Par TorF dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 19/03/2005, 19h28

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