Formater les cellules

Résolu
Bonjour,
je voudrais formater les cellules de "A" à "O" quand ma cellule"D" est pleine
je voudrais leur mettre des bordures
En macro si possible car en MFC les conditions s'effacent avec les lignes et a un moment ça coincera
j'ai fait cette macro mais elle formate la ligne dessous ou que je clique après
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.EnableEvents = False
If Not Intersect(Target, Range("zone_format")) Is Nothing Then
Call form ' ma macro de format
 End If
Application.EnableEvents = True
End Sub
Le debut de la macro
Private Sub form ()
 ActiveCell.Offset(0, -3).Range("A1:O1").Select
    ActiveCell.Activate
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With

etc etc
End Sub
si vous voulez je mettrai un fichier exemple
merci de votre aide

34 réponses

Résumé de la discussion

Formatage des cellules de A à O lorsque la cellule D est remplie et ajout de bordures par une macro VBA est l’objectif, afin que les formats restent appliqués malgré le défilement des lignes. Plusieurs réponses évoquent l’emploi de Worksheet_Change et la désactivation des événements pour exécuter la macro, tout en ciblant la plage concernée et en évitant le décalage d’index lié au clic droit. Certains commentaires signalent des inversions de colonnes et des données qui ne se répercutent pas sur toutes les feuilles, tandis que d’autres suggèrent de partager un fichier exemple pour clarifier la mise en forme.

Bobot (l’IA à votre service)
  1. Bonjour,
    Je ne vais pas plus loin et vous laisse voir ce que je trouve pour la question 2 : https://www.cjoint.com/?3EvxcfWn8t6
    Le point 3 est impossible ....!
    0
    1. bonjour,
      merci de votre aide je vais voir au mieux
      je pense faire en déplaçant les colonnes une fois copiés
      merci de votre patience
      a bientot
      0
  2. bonjour
    excusez moi alors je reprends question 1
    Réponse : un clic droit où, on ne voit rien depuis ici... ?
    quand on fait click droit sur un nom du listbox "client" les données se copient dans les divers textbox de droite.
    question2
    Réponse : 1.- quel index qui se décale ?
    quand l'userform s'initialise la colonne 3 est un index de chaque nom qui doit lui etre attribué même dans le combobox "fam" si vous regardez une fois le choix changé les données de la colonne 3 ne correspondent plus a ceux du départ c'est pour cela que le decalage de noms se fait
    3eme
    les modif se font sur la base mais ne sont pas transmises aux autres feuilles
    j ai du fermer et reouvrir le fichier 3 fois pour le voir apparaitre dans la feuille correspondante
    excusez encore mais je n'ai surement pas votre logique
    0
    1. Bonjour,
      Je constate que vous avez l'art de ne jamais répondre exactement aux commentaires mais vous ajouter toujours d'autres problèmes qui sont incompréhensible pour la personne qui n'est pas à l'origine de l'application.
      Je regrette, je veux bien aider le mieux possible mais certainement pas de cette manière.

      0
      1. Bonjour,
        Je viens de regarder en fait ça fonctionne pas bien car quand on fait le clic droit les noms sont décalés
        Réponse : un clic droit où, on ne voit rien depuis ici... ?

        Car d'après ce que je comprends l'index se décale car on ne garde pas l'index de départ non?
        Réponse : 1.- quel index qui se décale ?
        2.-c'est votre application est c'est vous qui savez ce que vous devez avoir comme résultat... !

        Autre chose que je remarque si j'ajoute un nom dans les feuilles j'ouvre l'userform et le nom apparait si je ferme et enregistre le fichier
        a la prochaine ouverture le nom disparait

        Réponse : rien de plus normal car les données de bases sont en feuille [Clients] donc les modifications doivent se faire sur base Oui / Non

        0
        1. oui mais même en rajoutant un Nom dans le feuille [clients] ça se recopie pas dans la feuille correspondante (en fait ca se copie a la 3eme ouverture) après controle
          si vous regardez a l'initialisation de l'userform en fesant un clic droit sur le nom les données sont inscrites a droite
          et des qu'on change la valeur dans le combobox "fam" on perd cette possibilité
          0
      2. Bonjour,
        J'ai corrigé le problème : normalement si vous regardez quand on change de feuille ca modifie la feuille du meme nom "EST,OUEST,SUD" et le soucis majeur vient de la car je n'arrive pas a remettre chaque colonne a sa place car je voudrais garder la structure initiale de la feuille "Clients".
        Il me semble que là c'est correct Oui Ou non ?

        0
        1. Bonjour
          oui mais si je rajoute un nom il ne se recopie pas dans les feuilles en fait seule la feuille clients le prends en compte
          0
      3. Bonjour
        c'est a dire "gentilles surprises...... ! "?
        j'avais deja pas mal épuré
        je viens de regarder en fait ça fonctionne pas bien car quand on fait le clic droit les noms sont décalés
        car d"apres ce que je comprends l'index se decale car on ne garde pas l'index de depart non?
        autre chose que je remarque si j"ajoute un nom dans les feuilles j ouvre l'userform et le nom apparait si je ferme et enregistre le fichier
        a la prochaine ouverture le nom disparait

        Slts A bientôt
        Surplus
        0
        1. Bonjour,
          J'espère que cela va fonctionner sans surprise.
          Votre fichier : https://www.cjoint.com/?3EvqoAiaKWw
          Je vous conseille de sérieusement faire le ménage dans les modules, j'ai eu quelques gentilles surprises...... !

          0
          1. Bonjour,
            J'espère que cela va fonctionner sans surprise.
            Votre fichier : https://www.cjoint.com/?3EvqoAiaKWw
            Je vous conseille de sérieusement faire le ménage dans les modules, j'ai eu quelques gentilles surprises...... !

            1
            1. Bonjour
              c'est a dire "gentilles surprises...... ! "
              j'avais deja pas mal épuré
              slts
              0
          2. Bonjour,
            Vous pouvez chercher longtemps, et surtout avec du code bricolé... ! Sans tenir compte des procédures qui apparemment non rien à y faire... !
            J'ai mis le doigt sur une incohérence entre les données pour la liste client du formulaire et celle pour la feuille extrait des clients selon région ou vous appliquez la même source au deux ce qui n'est pas correct car l'une à 3 colonnes et l'autre 17.
            Je regarde demain comment corriger cela sans tout massacré.
            Note : attention, ce n'est pas le code de f894009 (salutations)il est parfait.

            0
            1. Bonjour
              Je pensais que même si le 1er a 3 colonnes affichés mais 17 au total et l'autre 17 aussi les données restaient bien en place
              mais je fais plus confiance a votre jugement
              bonne nuit
              slts
              0
          3. Bonjour
            c'est vrai que moi je ne trouve pas la solution depuis 4 j mais j'ai pas les mêmes connaissances évidement que vous
            0
            1. Bonjour,
              C'est très gentil de votre part, je l'ai déjà trouvé mais par contre la personne qui à réaliser ce code à vraiment chercher à ce que ce soit introuvable ou alors c'est du rafistolage... !

              0
              1. bonjour
                en fait le code d'apres ce que j'ai travaillé dessus c'est que dans la 3 eme colonne il y a un index de chaque nom ce qui permet de faire le click droit comme a l'initialisation de l'userform.
                Ce que j'essayais de faire c'est de mettre la colonne 4 et 5 en 1er dans le listbox.
                le fichier fonctionne bien si le nom et prénoms sont en colonne 1 et 2
                0
                1. Bonjour,
                  Non merci mais plutôt celui qui a généré le code... !

                  0
                  1. Bonjour
                    vous voulez le fichier original?
                    0
                    1. Bonjour,
                      Merci, dans ce cas je vais voir si je trouve dans les diverses procédures ou se trouve l'origine du problème.

                      0
                      1. Bonjour
                        je l'ai trouvé dans un autre fichier de gestion de stock
                        je me rappelle plus ou mais j'ai l'original dans une clef
                        0
                        1. Bonjour,
                          Merci, et qui est à l'origine de cette macro ... !

                          0
                          1. Bonjour,
                            A première vue il y a une inversion des colonnes [A : B] et [D : E] pour les feuilles [EST,OUEST,SUD].... !
                            Pouvez-vous m'indiquer depuis quel formulaire vous gérez les feuilles... ?

                            0
                            1. bonjour
                              depuis celui la y en a qu'un
                              quand on change de feuille ca se copie dans la feuille nommée a partir de la macro "lifour"
                              0
                          2. Bonjour,
                            Merci pour le fichier, je vais regarder, patience.
                            0
                            • 1
                            • 2