Formater les cellules

Résolu
surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   -  
surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   -
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

  • 1
  • 2
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.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    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. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
       
      Bonjour
      c'est a dire "gentilles surprises...... ! "
      j'avais deja pas mal épuré
      slts
      0
  2. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Au passage, contrôler que la cellule active dans la procédure [Private Sub form ()] corresponde à la ligne à traiter !

    0
  3. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
     
    Bonjour
    j'avais fait une macro avec les reference relatives
    je n arrive pas a l'adapter
    je vous mets le fichier je vois que la macro n'apparait pas
    https://www.cjoint.com/?DEnnGqPgLb3
    Pour que ca marche il faut remplir la colonne D et les lignes de A à O devraient mettre des bordures
    merci
    0
  4. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Merci de voir les petits commentaires dans les 2 procédures.
    Votre fichier : https://www.cjoint.com/?3EnpmPfok6B

    0
    1. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
       
      Bonjour
      j ai vu le commentaire faudra que je m y penche
      mais je pensais que si la cellule etait vide le formatage s'effaçait aussi
      faut faire la procedure inverse faire une macro avec les cases sans bordure?
      merci
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    En principe dans un tableau les lignes pleines se suivent (sont donc formatées) et si vous avez par hasard une cellule en colonne [D] vide alors pas de formatage.

    0
    1. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
       
      bonjour
      oui pas de formatage D correspond au nom si pas de nom aucune case remplie
      d'ailleurs apres je voudrais faire en sorte de pas laisser de lignes vides
      quand j'effacerais le nom je supprimerai la ligne
      0
    2. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      oui c'est parfait.
      Bonne continuation.
      Salutations.
      Le Pingou
      0
    3. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
       
      bonjour
      "oui c est parfait"
      donc je fais une macro inverse?
      merci
      0
  7. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
     
    Re,
    je viens de mieux regarder les macro
    je ne comprends pas comment elle se déclenche
    Sub active_event()
    Application.EnableEvents = True
    End Sub
    pourquoi avoir rajouté celle ci?
    merci de m'éclairer car si je veux faire l inverse ça va être dur lol
    j arrive pas trop a comprendre déjà la
    merci
    0
  8. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Je l'ai créé pour réactiver les événements du classeur car votre code produisait une désactivation des événements car vos commandes [EnableEvents] n'étaient pas au bon endroit.
    Vous pouvez la supprimer sans autre.

    0
  9. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
     
    bonjour
    oui je l'avais mal placé a force de changer mes macros
    le déclenchement de la macro est bien form Target.Address ?
    qui veut dire macro s'exécute dans l'adresse cliqué
    si je veux si je veux faire une macro si vide aucune bordure
    je réécris la même et je formate sans bordures ?
    merci
    0
    1. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Pourquoi compliquer, il vous suffit de supprimer la ligne vide.....
      En principe on ne laisse pas de ligne vide dans entre les pleines....Oui / non...
      Salutations.
      Le Pingou
      0
  10. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
     
    Bonjour;
    vous avez raison
    mais en dernière position c'est pas un problème mais entre 2 lignes plus dur
    car j'aurais 3 feuilles a gérer a partir d'un userform donc il faudrait que ça se fasse tout seul que si entre 2 en fait
    c'est faisable?
    slts
    0
  11. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Expliquez comment vous décidez la ligne à supprimer dans un tableau dont les lignes se suivent... ?
    Qu'elle est la structure de votre formulaire (UserForm) qui sert à la gestion... ?

    0
  12. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
     
    bonjour
    en fait c'est pour gérer des repas a distribuer a de personnes âgées
    l'userform prendra les cases habituelles "nom" "prénom" "adresse" si régime spécial "avec sel" "sans sel" "vin" pas "vin"
    et on efface le client si il arrête les repas ou malheureusement en cas de décès
    donc ligne a supprimer
    il y aura 3 feuilles des tournées a faire "nord""sud" "est"
    et comme il sera géré par 2 ou 3 personnes je veux le sécuriser au max
    0
  13. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Pour terminer la soirée ; vous devez avoir une commande dans le formulaire qui vous permette de choisir de supprimer la personne y relative ce qui entraine la création d'une procédure qui recherche le nom de la personne dans le/les feuille/s et supprime l'enregistrement correspondant.
    Bonne nuit.

    0
  14. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
     
    bonjour,
    j ai pensé plus a 2 combobox
    le 1er choix des feuilles et le second liste des noms de la feuille du 1er combobox
    donc on supprimera que sur la feuille citée
    je vous l'expose comme ça mais pas facile a mettre en place c sur que je vais roder sur ce forum lol
    bonne nuit
    0
  15. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
     
    bonjour
    j'ai un soucis pour combiner 2 macros sur ce fichier
    je voudrais que les colonnes D H et O se formatent en majuscule
    j'essaie de combiner les 2 mais la majuscule se met que si on re clique dessus
    je vous mets le fichier voir ce que j ai fait
    https://www.cjoint.com/?DEocnI8LZZP
    ou est l'erreur?
    merci
    a bientot
    0
    1. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      je voudrais que les colonnes D H et O se formatent en majuscule :(-

      Et si vous le mettez en majuscule directement lors de la saisie ...... !

      Salutations.
      Le Pingou
      0
  16. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Je vous rappelle que vous aviez précisé : gérer à partir d'un userform...
    Ma question, pourquoi ce formulaire ne figure pas dans votre fichier... ?
    Le dire c'est une chose mais le faire c'est mieux !

    0
    1. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
       
      Bonjour
      exact c est vrai j avais pas les idees claires je mets ça en place et je reviendrai
      merci
      a bientot
      0
    2. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
       
      bonjour
      j ai fait le formulaire enfin j ai voulu me debrouiller seul mais je coince
      mon soucis c'est que quand l'userform s'initialise ca fonctionne bien si je clique sur un nom puis click droit ca se marque a droite
      Mais des que je change les options du choix de liste je me retrouve décalé ou ca ne fonctionne pas.
      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".
      est ce que vous pourrez me le regarder ou j'ouvre un autre post?
      je vous mets le fichier
      https://www.cjoint.com/?DEunJEgfijC
      merci
      surplus
      0
  17. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Merci pour le fichier, je vais regarder, patience.
    0
  18. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    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. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
       
      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
  19. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Merci, et qui est à l'origine de cette macro ... !

    0
  20. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
     
    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
  21. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    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
  • 2