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 :

Modification format cellule par macro [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Juin 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2018
    Messages : 4
    Par défaut Modification format cellule par macro
    Bonjour,

    Je cherche à modifier le formatage d'une série de cellule pour intégrer automatiquement l'année du système dans le formatage.
    Ce code fonctionne seulement si je met l'année en "dur" dans la macro Selection.NumberFormat = "###0""/2020"""

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub Changement_Année()
     
    If Day(Date) = "01" And Month(Date) = "1" Then
     
    Workbooks.Open "D:\amelioration ticket incident\Tableau de suivi des incidents vierge.xlsx"
        Columns("A:A").Select
        Selection.NumberFormat = "###0""/2020"""
        Range("A3").Select
        ActiveCell.FormulaR1C1 = "1"
        Selection.AutoFill Destination:=Range("A3:A3000"), Type:=xlFillSeries
        Range("A3:A3000").Interior.Color = vbGreen
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs "D:\amelioration ticket incident\Tableau de suivi des incidents " & Year(Date) & ".xlsx"
        ActiveWorkbook.Close
        Application.DisplayAlerts = True
    Else
    MsgBox "fin macro"
     
    End If
    End Sub
    Cette macro est destinée à mettre en forme un tableau le premier janvier de chaque année pour remplir les cellules en repartant du N°1.

    Merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Juin 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2018
    Messages : 4
    Par défaut
    Bonjour

    Solution trouvé un simple problème d' écriture il manquait 1 " en fin de ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.NumberFormat = "###0""/" & Year(Date) & """"

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Eloli, Bonjour au Forum,

    Quelques remarques.

    1 - Par soucu de confidentialité, éviter de mentionner des répertoires qui concernent ton lieu de travail
    Les fonctions Day et Month sont numériques de type Byte (à mon avis, car l'aide Microsoft avance Integer)

    2 - Eviter les blocs If trop importants. Pour une lisibilité optimale, procéder de préférence par appel de procédure.
    Supprimer lette s...de Select. Celles-ci n'ont qu'un effet: alourdir le code et, partant, le rendre moins lisible.

    3 - Constater le champ de cellules plutôt que considérer une valeur maximale (ici 3000)

    4 - Si les propriétés et méthodes sont affectées à un même objet Range, alors utiliser le bloc With

    5 - Même s'ils sont tacites, toujours préciser les paramètres (ici Filename)

    6 - Si une chaîne de caractères se reporte plusieurs fois dans une procédure (voire un module), alors la déclarer en lui affectant une variable

    Comme ta discussion est résolue, je te reporte une proposition.

    Tu compares.

    (non testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Option Explicit
     
    Sub Changement_Année_V2()
     
    If Day(Date) = 14 And Month(Date) = 10 Then
     
            Call open_mise_au_format
     
    Else
     
            MsgBox "fin macro"
     
    End If
     
    End Sub
     
    Sub open_mise_au_format()
     
    Dim racine As String
    racine = "D:\amelioration ticket incident\Tableau de suivi des incidents"
     
    Dim dernl As Long
     
    With Application
            .DisplayAlerts = False
            .ScreenUpdating = False
    End With
     
    Workbooks.Open Filename:=racine & " vierge.xlsx"
     
    With ActiveSheet
            dernl = .Cells(.Rows.Count, 1).End(xlUp).Row
            With .Range("A1:A" & dernl)
                    .NumberFormat = "###0""/" & Year(Date) & """"
                    .Value = 1
                    .Interior.Color = vbGreen
            End With
    End With
     
    With ActiveWorkbook
            .SaveAs Filename:=racine & "_" & Year(Date) & ".xlsx"
            .Close
    End With
     
    With Application
            .ScreenUpdating = True
            .DisplayAlerts = True
    End With
     
    End Sub

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Juin 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2018
    Messages : 4
    Par défaut
    Bonsoir MarcelG,

    Merci de ta réponse.

    Ne possédant pas un haut niveau de programmation VBA je n'ai fait qu'un enregistrement de macro puis l'ai modifié légèrement pour la faire correspondre à mes besoins.

    Je suis tout a fait d'accord sur tes remarques , sauf au niveau du point 03, car de base la colonne A est vide c'est pour cela que j'ai défini un nombre précis.

    Demain j'essaye ta version pour voir si elle fonctionne.
    Bonne soirée

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Eloli, Bonjour le Forum,

    sauf au niveau du point 03, car de base la colonne A est vide c'est pour cela que j'ai défini un nombre précis.
    J'avoue ne pas comprendre.

    Ce que signifiait ma remarque.
    Il faut considérer un champ précis en définissant sa dernière cellule (voir le code proposé)

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

Discussions similaires

  1. Lancement macro sur modification de cellule par checkbox
    Par Yves_Man dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/06/2012, 17h20
  2. Sélectionner une chaine de car. dans une cellule par macro
    Par CyrilAtOffice dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/03/2010, 16h22
  3. [VBA][E-03] Modification de formules par Macro
    Par Jibicas dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/06/2008, 12h01
  4. copie de cellule par macro
    Par ptitepo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/06/2008, 11h49
  5. modification format image par VBA
    Par coyote égaré dans le forum VBA Word
    Réponses: 0
    Dernier message: 04/02/2008, 12h17

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