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

et le fichier contenant les données structurées.

Merci par avance pour votre aide!

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

Bonjour,

remplacer

Dim Valeur_Cherchee As String ' Designation de la valeur recherché

par

Dim Valeur_Cherchee As Date ' Designation de la valeur recherché

ok merci, ca marche mais uniquement sur la première trace (3 valeurs) aurai je mal fait une boucle?

essayez en ajoutant .Value

        Sheets("RecalageXY").Cells(LValMes + 1, ColDest).Value = Sheets("Batchtest").Cells(LValMes, cb).Value
        Sheets("RecalageXY").Cells(LDatMes + 1, ColDest).Value = Sheets("Batchtest").Cells(LDatMes, cb).Value
        Sheets("RecalageXY").Cells(LRefMes + 1, ColDest).Value = Sheets("Batchtest").Cells(LRefMes, cb).Value

bonjour, merci de votre aide, mais rien n'y fait ma boucle n'a pas l'air de fonctionner. toujours une seule trace de recalée. je pensais avoir bien structurer mes boucles. c'est comme si une fois la première boucle passée je sortais de ma macro. il y a bien des dates en doubles a cause d'autre pièces mesurées, mais la boucle devrait ecraser la valeur par celle de la prochaine colonne et non sortir de la boucle...

merci de votre aide, mais rien n'y fait ma boucle n'a pas l'air de fonctionner.

dans votre fichier et aussi sur le code affiché ici, il n'y a pas de boucle, alors je ne comprend pas votre question ?

peut être qu'il serait mieux de montrer le résultat attendu...

Bonjour,

ci joint un exemple de resultat souhaité sur quelques lignes. lorsque je parle de boucle je pare de IF et End If mais ce n'est peut etre pas le bon terme.

si vous pouvez m'aider. Merci.

Bonjour,

il faudrait uniformiser le format des dates,

certaine sont texte "29/01/2018"

et d'autre sont de vrai date 2018-01-29

Rechercher des sujets similaires à "recalage donnees date"