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 :

Changer le format d'une cellule via une macro excel 2013


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Par défaut Changer le format d'une cellule via une macro excel 2013
    Environnement : excel 2013

    Bonjour à toutes et tous,
    mon problème consiste à traduire des lignes de mise en forme conditionnelle (qui fonctionne tel que désiré), dans une macro.
    Je précise que j'ai déja essayé d'enregistrer la macro en créant ces mises en formes sans succès.

    Le règles sont les suivantes:

    Formule := $B1 = "Enlapsed_Time" Format hh:mm:ss S'applique à :$C$1:$C$1000
    Formule := $B1 = "Start_Time" Format hh:mm:ss S'applique à :$C$1:$C$1000
    Formule := $B1 = "Stop_Time" Format hh:mm:ss S'applique à :$C$1:$C$1000
    Formule := $B1 = "EDate" Format jj/mm/aaaa S'applique à :$C$1:$C$1000
    Le but de la macro est d'éclater une ligne d'information en tableau puis d'afficher le bon format en fonction du type de donnée dans la colonne B.
    A l'heure actuelle ma macro crée mon tableau correctement il me manque juste l'affichage correcte du type de donnée.

    Ci-dessous la macro utilisée (non fonctionnelle à partir de l'instruction FOR):

    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
    Sub Macro3()
    '
    ' Macro3 Macro
    '
     
    '
        Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=False, Comma:=True, Space:=False, Other:=True, OtherChar:= _
            ".", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), _
            Array(6, 1), Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
        Range("C:C,E:H").Select
        Range("E1").Activate
        Selection.Delete Shift:=xlToLeft
        Columns("A:A").ColumnWidth = 42
        Columns("B:B").ColumnWidth = 22
        Columns("C:C").Select
        ActiveWindow.Close
     
        For i = 1 To 1000
            If ("$Bi" = "Start_Time") Then
                Range("$Ci").Select
                'Selection.NumberFormat = "h:mm:ss"
            End If
            Next i
    End Sub
    Je n'utilise pas assez excel pour en connaitre toutes les subtilités donc quel que soient vos propositions, je suis à l'écoute.

    D'avance merci pour votre aide !

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To 1000
            If ("$Bi" = "Start_Time") Then
                Range("$Ci").Select
                'Selection.NumberFormat = "h:mm:ss"
            End If
            Next i
    Bi étant une cellule, il ne faut pas la mettre entre guillemets
    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        For i = 1 To 1000
            If Range("B" & i) = "Start_Time" Then
                Range("C" & i).NumberFormat = "h:mm:ss"
            End If
        Next i

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Par défaut
    Bonjour parmi,

    Je viens de faire l'essai et malheureusement ça ne fonctionne pas.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Est-ce que Start_Time est le texte trouvé en B ?
    Si c'est le nom d'une variable, enlève les guillemets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        For i = 1 To 1000
            Select Case Range("B" & I)
                Case "Enlapsed_Time", "Start_Time", "Stop_Time"
                    Range("C" & I).NumberFormat = "h:mm:ss"
                Case "EDate"
                    Range("C" & I).NumberFormat = "dd/mm/yyyy"
            End Select
        Next i

Discussions similaires

  1. Ajouter une colonne dans une table via une requête
    Par Alien_psy dans le forum Requêtes et SQL.
    Réponses: 25
    Dernier message: 23/02/2013, 05h24
  2. Modifier le style d'une page dans une frame via une autre frame
    Par Menontona dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/12/2011, 18h54
  3. [AC-2003] Lier les tables d'une Base1 dans une Base3 via une Base2
    Par ted the Ors dans le forum VBA Access
    Réponses: 0
    Dernier message: 30/12/2009, 11h58
  4. Réponses: 14
    Dernier message: 10/09/2009, 19h08
  5. Réponses: 2
    Dernier message: 17/04/2007, 17h14

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