Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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...

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éponses
1
Affichages
294
Réponses
49
Affichages
1 K
  • Résolu(e)
XL 2021 macro
Réponses
9
Affichages
695
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…