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 :

Inversion date FR/US avec macro VBA [Débutant(e)] [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Par défaut Inversion date FR/US avec macro VBA
    Bonjour à tous,

    Je suis nouveau sur ce forum et je débute dans le VBA.. Je m'excuse par avance pour le sujet qui d'après mes recherches est vu et revu... mais mes compétences limitées m'ont empêché d'appliquer les solutions.

    Le contexte :
    J'ai un formulaire sur lequel je rentre des données dont la première case (C4) est au format date.
    En cliquant sur un bouton d'enregistrement, j'active la macro qui m'enregistre les données du formulaire dans un onglet "base de données" par une transposition (ajout ligne par ligne).

    Le problème :
    La date est inversée entre ma case C4 et ma base de données = passe du français à l'anglais. Je m'arrache les cheveux a bidouiller !

    Pouvez-vous m'aider please ? Je suis désespéré..

    Merci !!

    Ci-dessous mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub transpose()
     
    With Sheets("Formulaire")
        T = .Range("c4:c17").Value
        With Sheets("Base de données")
            If IsEmpty(.Range("a1")) Then dl = 1 Else: dl = .Range("A65000").End(xlUp).Row + 1
            .Range(.Cells(dl, 1), .Cells(dl, 14)) = Application.transpose(T)
           End With
        .Range("c4:c17").ClearContents
     
    End With
    MsgBox "Votre dialogue sécurité a bien été intégré à la base - Merci pour votre contribution"
    End Sub

  2. #2
    Membre Expert Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 904
    Par défaut
    Bonjour,
    As-tu pensé à changé le format de ta plage de cellules de ton onglet base de données ?
    Cordialement,

  3. #3
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour freakhit

    [Edit]

    Pour éviter la mauvaise interprétation des dates par VBA, lui donner plutôt à interpréter la valeur numérique équivalente contenue dans la propriété Value2 des cellules.

    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
    Sub transpose2()
     
    With Sheets("Formulaire")
     Nformat = .Range("c4").NumberFormat
     
        T = .Range("c4:c17").Value2 'mettre dans T la valeur numérique (Value2) et non la valeur date (Value)
     
     
        With Sheets("Base de données")
            If IsEmpty(.Range("a1")) Then dl = 1 Else: dl = .Range("A65000").End(xlUp).Row + 1
             .Range(.Cells(dl, 1), .Cells(dl, 14)).NumberFormat = Nformat
            .Range(.Cells(dl, 1), .Cells(dl, 14)) = Application.transpose(T)
           End With
        .Range("c4:c17").ClearContents
     
    End With
    MsgBox "Votre dialogue sécurité a bien été intégré à la base - Merci pour votre contribution"
    End Sub
    [/Edit]

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Par défaut
    Super merci beaucoup DocMarti.

    La solution marche à merveille !

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

Discussions similaires

  1. [BO 6.5][VBA] Ouverture rapport avec macro VBA
    Par flyerman_2 dans le forum SDK
    Réponses: 2
    Dernier message: 27/03/2008, 17h27
  2. Réponses: 2
    Dernier message: 19/03/2008, 10h30
  3. Lien Delphi-Excel avec macro VBA
    Par sroge dans le forum Langage
    Réponses: 1
    Dernier message: 06/02/2008, 10h51
  4. [VA-E] trier des données avec macro VBA
    Par M@XflY dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 13/01/2007, 13h24
  5. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 10h51

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