XL 2013 aid esur macro

Big66677

XLDnaute Occasionnel
Bonjour.
Ce je veux obtenir, c'est que dans une plage.
"$C$2:$AZ$35"
Les textes contenus dans ces cellules est une dimension définie dans la macro afin de mieux remplir la cellule.
Bien sûr, il y a plusieurs types de texte plus ou moins long.
-------------------------
J'ai trouvé ce code que j'ai essayé d'adapter, mais bien sûr ça ne fonctionne pas
--------------------------
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$C$5:$AW$35" Then
        If Target = "CE" Then
            Range("$C$5:$AW$35").Font.Size = 14
        ElseIf Target = "Prépa CT Psdle" Then
            Range("$C$5:$AW$35").Font.Size = 10
        ElseIf Target = "Prépa CT Psdle matin" Then
             Range("$C$5:$AW$35").Font.Size = 10
        ElseIf Target = "Prépa CT OS" Then
            Range("$C$5:$AW$35").Font.Size = 12
        ElseIf Target = "CT" Then
            Range("$C$5:$AW$35").Font.Size = 14
        ElseIf Target = "Prép CAP CCP" Then
            Range("$C$5:$AW$35").Font.Size = 12
        ElseIf Target = "Prép CAP CCP Psdle matin" Then
            Range("$C$5:$AW$35").Font.Size = 12

        End If
    End If

End
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Big66677
Si pressé qu'on en oublie le petit Bonjour qui va bien... :rolleyes:

Quant au titre de la question, rien de tres explicite.

Toujours la précipitation, sans doute. ;)

Pour ta question, choisis une police comme: Courier New par exemple.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour @Big66677, le fil,

je te propose ce code VBA :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub
    If Intersect(Target, [C5:AW35]) Is Nothing Then Exit Sub
    'attention : taille par défaut = 10
    Dim k As Byte: k = 10: Application.ScreenUpdating = 0
    Select Case .Value
      Case "Prépa CT OS", "Prép CAP CCP", "Prép CAP CCP Psdle matin": k = 12
      Case "CE", "CT": k = 14
      'ajouter ici les autres cas ; un seul Case par taille ! et taille
      'autre que 10 puisque 10 est la taille par défaut.
    End Select
    .Font.Size = k
  End With
End Sub

soan
 

Big66677

XLDnaute Occasionnel
Bonjour,

Honte a moi. Stalle .
-------
La confédération générale des travailleurs de mon département77
pour qui je fais toutes ces applis m'interdit l’impolitesse
enfin a une personne prés.

-------
J’essaie le code.
-------
bon voila
-------
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub
    If Intersect(Target, [C5:AW35]) Is Nothing Then Exit Sub
    'attention : taille par défaut = 10
    Dim k As Byte: k = 10: Application.ScreenUpdating = 0
    Select Case .Value
      Case "Prépa CT OS", "Prép CAP CCP", "Prépa CT Psdle", "Prép CHSCT OS", "Distri Bât Dép", "Vœux aux Agents", "vœux aux Élus", "Journée de l'agents", "Convivialité Syndiqué": k = 12
      Case "CE", "CT", "CHSCT", "CM", "CD", "CR", "CDS", "ATTEE", "CFC", "CEF", "CAP CCP": k = 14
      Case "Prépa CT Psdle matin", "Prép CAP CCP Psdle matin", "Prép CHSCT  Psdle", "RB CFDT-CFE-CGC", "CD", "CR", "CDS", "ATTEE", "CFC", "CEF": k = 14
      'ajouter ici les autres cas ; un seul Case par taille ! et taille
      'autre que 10 puisque 10 est la taille par défaut.
    End Select
    .Font.Size = k
  End With
End Sub
Sub Macro3()
'
' Macro3 Macro
'

'
End Sub
j'ai certainement fait une bêtise...
Merci
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonjour @Big66677, le fil,

à propos de ton post #5 :

1) ce n'est pas « Stalle » mais « Staple ».

2) le code VBA de la sub Worksheet_Change() que tu as copié et modifié est le mien, de soan.

3) j'avais bien précisé en remarque VBA : « un seul Case par taille ! » ; or tu as mis deux Case pour la même taille : k = 14 alors qu'un seul Case suffit.

4) la sub Worksheet_Change() est une sub événementielle à placer dans le module de la feuille qui est concernée par l'événement en question ; la sub Macro3() n'est pas une sub événementielle, à placer dans un module standard, par exemple Module1.​

5) j'ai réécrit la sub Worksheet_Change() : voir le post #8 ci-dessous.

soan
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@Big66677

Lis d'abord mon post #7 précédent. ;)

voici la sub Worksheet_Change() modifiée, avec un seul Case pour chaque taille autre que 10, donc 1 Case pour la taille 12 et 1 Case pour la taille 14 ; note que j'ai utilisé "_" qui a, en bout de ligne VBA, le rôle de « caractère de continuation de ligne ». (c'est-à-dire que la suite de la ligne logique est sur la ligne physique suivante)

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub
    If Intersect(Target, [C5:AW35]) Is Nothing Then Exit Sub
    'attention : taille par défaut = 10
    Dim k As Byte: k = 10: Application.ScreenUpdating = 0
    Select Case .Value
      Case "Prépa CT OS", "Prép CAP CCP", "Prépa CT Psdle", "Prép CHSCT OS", _
        "Distri Bât Dép", "Vœux aux Agents", "vœux aux Élus", _
        "Journée de l'agents", "Convivialité Syndiqué": k = 12
      Case "CE", "CT", "CHSCT", "CM", "CD", "CR", "CDS", "ATTEE", "CFC", "CEF", _
        "CAP CCP", "Prépa CT Psdle matin", "Prép CAP CCP Psdle matin", _
        "Prép CHSCT  Psdle", "RB CFDT-CFE-CGC", "CD", "CR", "CDS", _
        "ATTEE", "CFC", "CEF": k = 14
    End Select
    .Font.Size = k
  End With
End Sub

n'oublie pas de mettre la sub Macro3() dans un module standard tel que Module1 ; de plus, tu n'as pas besoin d'appeler toi-même la sub Worksheet_Change() : c'est fait automatiquement quand tu changes la valeur d'une cellule de la plage C5:AW35.

soan
 

Big66677

XLDnaute Occasionnel
Bonjour,

À priori, je fatigue ...
Désolé Staple pour ton pseudo, je ne voudrais pas que le mien se transforme en bigre.
------------
bon, j'ai bien du mal avec les macros , même si j’ai pu créer une macro, impressionA3 Pdf.
mais ce que je demande me dépasse. ...

----------
La police de mon classeur est désormé Arial Narrow taille 10, c'est ce que j'ai demandé aux options.
----------
Ce que je comprends, c'est que les textes longs, seront formatés en taille 12.
Les textes courts en taille 14 .
-----
Bien qu'il y est trois types de texte cour, moyen long, mais ça, je ne l'ai pas précise.
aussi :
Qu'a chaque retour a la ligne, je dois mettre un _
---------
Pour l'instant, je ne parviens pas à faire fonctionner cette macro.
je poursuit la lutte avec ce classeur .
-------
Merci
 

Discussions similaires

  • Résolu(e)
XL 2021 macro
Réponses
9
Affichages
476

Statistiques des forums

Discussions
312 321
Messages
2 087 260
Membres
103 498
dernier inscrit
FAHDE