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 :

Export de données avec reconnaissance de date [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut Export de données avec reconnaissance de date
    Bonjour à tous,

    Je suis TRES loin d'être un expert en VBA et je ne sais absolument pas comment coder ce que je souhaite réaliser. J'imagine un code de taille et je comprendrais que je n'ai pas de réponse ou que l'on me dise d'aller voir ailleurs. ^^

    Bref, j'explique tout de même mon souhait : j'importe depuis une base de données des séries de valeurs.
    - Sur la première colonne je trouve une date d'un style particulier : 20121011 pour 11-oct-12.
    - Sur une seconde colonne je trouve les données que je veux déplacer.

    Tous les jours, la base de données est mise à jour et mon fichier excel importe les 7 dernières valeurs avec les dates correspondantes.
    Je voudrais donc stocker ces valeurs dans une autre feuille excel en utilisant une fonction.

    1) Celle-ci devrait comparer la date du format particulier (20121011) avec les dates (d'un format date = 11/10/2012) de mon autre feuille dans un premier temps.
    2) Lorsque les deux dates concordent, il faut copier la valeur (situé sur l'onglet mis à jour tous les jours) à la place souhaitée sur le second onglet.

    J'imagine que vous n'avez rien compris. Je vous met donc un fichier excel exemple en pièce jointe, qui, lui, j'espère, sera suffisamment précis.

    Je vous remercie infiniment par avance de votre dévotion ! Je sais que vous n'êtes pas au service des autres mais vous arrivez à proposer des solutions même parfois complexe !
    Je reste bien entendu à votre disposition pour toute précision !

    Kimy
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    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
    Sub UpdateData()
    Dim Str As String
    Dim Dte As Date
    Dim c As Range
     
    With Worksheets("Feuil1")
        Str = .Range("A24")
        Dte = DateSerial(Left(Str, 4), Mid(Str, 5, 2), Right(Str, 2))
        Set c = .Range("J:J").Find(Dte, LookIn:=xlFormulas, lookat:=xlWhole)
        If Not c Is Nothing Then
            c.Offset(0, 1) = .Range("B24")
            c.Offset(0, 2) = .Range("E24")
            c.Offset(0, 3) = .Range("H24")
            Set c = Nothing
        End If
    End With
    End Sub

  3. #3
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour à tous, bonjour Mercatog,

    Tout d'abord merci de ta réponse qui fonctionne parfaitement sur le fichier que j'ai envoyé. En revanche la transposition pose un petit peu plus de soucis. Je met ci-dessous les modifications que j'y ai apporté pour répondre à mon problème :
    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
    Sub UpdateData()
    Dim Str As String
    Dim Dte As Date
    Dim c As Range
     
    ' With Worksheets("AutomatedAnaliticsPro")
        Str = Worksheets("AutomatedAnaliticsPro").Range("A12")
        Dte = DateSerial(Left(Str, 4), Mid(Str, 5, 2), Right(Str, 2))
        Set c = Worksheets("BeamriseRawStats").Range("C:C").Find(Dte, LookIn:=xlFormulas, lookat:=xlWhole)
        If Not c Is Nothing Then
            Worksheets("BeamriseRawStats").c.Offset(0, 3) = Worksheets("AutomatedAnaliticsPro").Range("B12")
            Worksheets("BeamriseRawStats").c.Offset(0, 8) = Worksheets("AutomatedAnaliticsPro").Range("E12")
            Worksheets("BeamriseRawStats").c.Offset(0, 13) = Worksheets("AutomatedAnaliticsPro").Range("H12")
            Worksheets("BeamriseRawStats").c.Offset(0, 15) = Worksheets("AutomatedAnaliticsPro").Range("K12")
            Worksheets("BeamriseRawStats").c.Offset(0, 16) = Worksheets("AutomatedAnaliticsPro").Range("N12")
            Worksheets("BeamriseRawStats").c.Offset(0, 20) = Worksheets("AutomatedAnaliticsPro").Range("Q12")
            Worksheets("BeamriseRawStats").c.Offset(0, 18) = Worksheets("AutomatedAnaliticsPro").Range("T12")
            Worksheets("BeamriseRawStats").c.Offset(0, 21) = Worksheets("AutomatedAnaliticsPro").Range("W12")
            Set c = Nothing
        End If
    ' End With
    End Sub
    Tout d'abord, lors de l'enregistrement sur mes onglets ou sur ma page de module je reçois le message d'avertissement suivant :
    Avertissement concernant la confidentialité : ce document contient des macros, des contrôles ActiveX, des informations sur le kit d'extension XML ou des composants Web. Ils peuvent renfermer des informations personnelles qui ne peuvent pas être supprimées par l'Inspecteur de document.
    N'ayant jamais vu ce message, je ne sais pas l'importance qu'il a même si son contenu "ne me fait pas peur".
    Ensuite, rien ne se passe quant à la macro... Je souhaite déplacer les éléments contenu dans les cellules (B,E,H,K,...12) de la feuille AutomatedAnaliticsPro vers les cellules (c+Offset(0, 3),Offset(0, 8),Offset(0, 13),Offset(0, 15),...) de la page BeamriseRawStats.

    J'imagine que la formule ne rentre pas dans le "if" puisque il n'y a aucune cellule qui se met à jour.

    Merci encore pour tout !!!

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Je ne sais pas pourquoi tu as changé la structure du code (surtout avec le nom de ta feuille juste avant la variable c)
    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
    Sub UpdateData()
    Dim Str As String
    Dim Dte As Date
    Dim c As Range
     
    With Worksheets("AutomatedAnaliticsPro")
        Str = Worksheets("AutomatedAnaliticsPro").Range("A12")
        Dte = DateSerial(Left(Str, 4), Mid(Str, 5, 2), Right(Str, 2))
        Set c = Worksheets("BeamriseRawStats").Range("C:C").Find(Dte, LookIn:=xlFormulas, lookat:=xlWhole)
        If Not c Is Nothing Then
            c.Offset(0, 3) = .Range("B12")
            c.Offset(0, 8) = .Range("E12")
            c.Offset(0, 13) = .Range("H12")
            c.Offset(0, 15) = .Range("K12")
            c.Offset(0, 16) = .Range("N12")
            c.Offset(0, 20) = .Range("Q12")
            c.Offset(0, 18) = .Range("T12")
            c.Offset(0, 21) = .Range("W12")
            Set c = Nothing
        End If
    End With
    End Sub
    Pour le fonctionnement du code tu as bien des dates en valeurs en colonne C ou issus d'une formule?

  5. #5
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Je suis juste un imbécile... J'avais essayé plein de choses différentes puisque cela ne fonctionnait pas et j'ai seulement mis le dernier code que j'avais utilisé.

    Bref, le tiens marche niquel et je te remercie INFINIMENT pour ton aide !!!

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour à tous,

    Pour info, ce genre de conversion de date fonctionne très bien également:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
      Dim dte As Date
      Dim strDate As String
     
      strDate = "20121011"
      dte = CDate(Format(strDate, "0000/00/00"))
      MsgBox dte
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. [XL-2007] Transfert de données avec reconnaissance de date
    Par Kimy_Ire dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/10/2012, 19h03
  2. Trie d'un fichier de données avec une colonne date
    Par lil-works dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 03/03/2009, 00h27
  3. Exportation des données avec Insert
    Par AdHoc dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 23/07/2007, 11h35
  4. Réponses: 4
    Dernier message: 09/05/2006, 08h55
  5. Exporter des données avec les insert
    Par maximenet dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/04/2006, 16h20

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