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 :

Recalage de données par date


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Par défaut Recalage de données par date
    Bonjour,
    voici plusieurs semaines de labeur sur ce sujet, je suis arrivé aujourd'hui a un point de blocage.
    explications : j'ai un tableau de mesures de plusieurs "traces" (3 données en colonne Val, Date et Ref piece) dans un onglet "Batchtest" et je souhaite recaler ces ensembles de données dans le même ordre selon la date disponible dans l'onglet "RecalageXY". les premières colonnes dans les 2 onglets sont identiques.

    je suis bloquer par une erreur 1004 sans pourvoir trouvé la solution..pouvez vous m'aider.

    Ci joint la macro
    innovationsS3P xi Yi recaléssuite4nouvellesolutionV1.xlsm(869.62 Kio) Pas encore téléchargéet le fichier contenant les données structurées.
    Merci par avance pour votre aide!

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     Sub recalageXY()
     
     Dim cb As Long '1ere colonne analysée de la feuille de départ "Batchtest"
     Dim LValMes As Long ' Num ligne valeur de mesure
     Dim LDatMes As Long ' Num de ligne de la date de mesure
     Dim LRefMes As Long ' Num de ligne de la ref de la pièce
     Dim ColDest As Long 'Num de colonne de destination des données recalées
     Dim Trouve As Range ' Resultat de la recherche dans la plage de recherche de la feuille "RecalageXY"
     Dim PlageDeRecherche As Range 'Plage de recherche dans la feuille "RecalageXY"
     Dim Valeur_Cherchee As String ' Designation de la valeur recherché
     Dim AdresseTrouvee As String 'variable ou deposer l'adresse du resultat de la recherche
     
     cb = 9 'definition de la colonne de départ dans la feuille "Batchtest"
     LValMes = 2 'definition de la première ligne des valeurs de mesure
     LDatMes = 3 'definition de la première ligne des dates de mesure
     LRefMes = 4 'definition de la première ligne des ref de pièce mesurées
     
     
     'Definition de la plage de recherche dans la feuille recalageXY (liste des dates)
     
     Set PlageDeRecherche = Sheets("RecalageXY").Range("I2:HA2")
     
     If Sheets("Batchtest").Cells(LValMes, 9).Value <> "" Then 'action uniquement si il y a une nouvelle mesures a recalée
     'definition de la valeur a rechercher (LDatMes en cours et colonne en cours dans la feuille de départ "Bacthtest"
     Valeur_Cherchee = Sheets("Batchtest").Cells(LDatMes, cb)
     'recherche de la valeur cherchée
     Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
     'si on trouve rien
     If Trouve Is Nothing Then
     AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address
     'si il y a un resultat, recherche de la colonne trouvée dans la feuille recalageXY
     Else
     AdresseTrouvee = Trouve.Address
     ColDest = Trouve.Column
     End If
     
     'copie des valeurs d'une feuille à l'autre vers la bonne colonne de destination ColDest Recealge XY(il y a une ligne d'écart entre les 2 feuilles
     Sheets("RecalageXY").Cells(LValMes + 1, ColDest) = Sheets("Batchtest").Cells(LValMes, cb)
     Sheets("RecalageXY").Cells(LDatMes + 1, ColDest) = Sheets("Batchtest").Cells(LDatMes, cb)
     Sheets("RecalageXY").Cells(LRefMes + 1, ColDest) = Sheets("Batchtest").Cells(LRefMes, cb)
     'passage a la colonne suivante
     cb = cb + 1
     'test si il ya des valeurs dans la colonne suivante pour la même trace
     If Sheets("Batchtest").Cells(LValMes, cb).Value <> "" Then
     LValMes = LValMes
     LDatMes = LDatMes
     LRefMes = LRefMes
     'si plus de mesure pour cette trace passage a la suivante (decalage de 3)
     Else
     LValMes = LValMes + 3
     LDatMes = LDatMes + 3
     LRefMes = LRefMes + 3
     End If
     
     Else
     MsgBox "fin"
     
     End If
     Set PlageDeRecherche = Nothing
     Set Trouve = Nothing
     End Sub


     Haut
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Extraction de données par dates
    Par fancho dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/03/2009, 18h47
  2. [XSLT] Regrouper des données par date
    Par sofuzion dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/02/2009, 11h07
  3. [MySQL] Suppression donnée par date
    Par tiesto95 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/01/2009, 04h40
  4. Trier les données par date au format jour mois année...
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/08/2007, 11h41
  5. Extraire données par date du jour
    Par Hombe dans le forum Oracle
    Réponses: 6
    Dernier message: 08/11/2006, 11h14

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