XL 2019 Créer ordre croissant sur dates + association d'unités

66alex66

XLDnaute Nouveau
Bonsoir !
Je reviens vers vous pour obtenir de l'aide concernant cette problématique.

J'ai deux feuilles de calcul.
La première reprend 2 colonnes de dates.
La deuxième une colonne de dates + une colonne reprenant des unités.

J'aimerais que les dates se trouvant dans la feuille de calcul n°1 s'associe et se mettent dans un ordre croissant dans la colonne A (date la plus ancienne vers la plus récente) ET associer par date (toujours dans la feuille de calcul n°1) les unités (sans les décimales) se trouvant sur la feuille n°2.

Dans un deuxième temps, si dans la feuille de calcul n°1, je n'ai qu'une seule colonne de date, j'aimerais que l'association s'effectue également (sans décimales).

J'ai essayé de créer plusieurs macros, mais ça fonctionne une fois sur deux et sur plusieurs étapes 😫

Merci d'avance

ASSOCIATION.PNG


OU

1657480071528.png
 

Pièces jointes

  • Association par date.xlsm
    9.6 KB · Affichages: 7
Solution
Bonjour alex,

désolé pour le très gros retard de ma réponse, mais j'ai été débordé ! 😭

Mille mercis @soan 😃
Ça fonctionne parfaitement ! Tu me sauves, je me battais avec ça depuis pas mal de temps 😅

merci pour ton retour ! 😊



serait-il possible, dans la fonction VBA, de supprimer les doublons juste au niveau des dates avant de réaliser l'association ?

Il pourrait survenir que, dans la colonne A et B, des doublons apparaissent au niveau des dates.

oui, c'est tout à fait possible : je l'ai fait dans le fichier joint de ce post. :)

sur la 1ère feuille "OrdreParDate" :

comme y'avait aucun...

66alex66

XLDnaute Nouveau
Merci à toi pour la proposition.
En réalité, ce n'est pas vraiment ça.

Les tableaux d'origines se trouvent dans les colonnes A et B et j'aurai besoin que le rendu final demeure dans ces colonnes.

Le travail que je dois réaliser par la suite oblige cette configuration 😕

Merci quand même !
 

soan

XLDnaute Barbatruc
Inactif
Bonjour alex, riton00,

sur la 1ère feuille "OrdreParDate", fais Ctrl e ➯ travail effectué ! 😊

à toi de faire d'autres tests, sur des feuilles d'une ou 2 colonnes.



code VBA (28 lignes) :

VB:
Option Explicit

Sub Essai()
  If ActiveSheet.Name <> "OrdreParDate" Then Exit Sub
  Dim cel As Range, d&, m&, n&, i&: m = Rows.Count
  d = Cells(m, 1).End(3).Row + 1
  n = Cells(m, 2).End(3).Row
  Application.ScreenUpdating = 0
  If n > 1 Or Not IsEmpty([B1]) _
    Then [B1].Resize(n).Copy Cells(d, 1)
  With Columns(2)
    .ClearContents: .NumberFormat = "#,##0"
    .HorizontalAlignment = 4: .IndentLevel = 1
  End With
  d = d + n - 1: [A1].Resize(d).Sort [A1], 1
  With Worksheets("Origine")
    n = .Cells(m, 1).End(3).Row
    If n = 1 And IsEmpty(.[A1]) Then Exit Sub
    For i = 1 To n
      With .Cells(i, 1)
        Set cel = Columns(1).Find(.Value, , -4163, 1, 1)
        If Not cel Is Nothing Then _
          cel.Offset(, 1) = .Offset(, 1)
      End With
    Next i
  End With
End Sub

soan
 

Pièces jointes

  • Association par date.xlsm
    19.5 KB · Affichages: 5

66alex66

XLDnaute Nouveau
@soan A tout hasard (si ça prend trop de temps, ce n'est pas grave du tout), serait-il possible, dans la fonction VBA, de supprimer les doublons juste au niveau des dates avant de réaliser l'association ?

Il pourrait survenir que, dans la colonne A et B, des doublons apparaissent au niveau des dates.

Si ça prend trop de temps, ce n'est pas grave, ce que tu as réalisé m'aide déjà énormément ! 😃
 

soan

XLDnaute Barbatruc
Inactif
Bonjour alex,

désolé pour le très gros retard de ma réponse, mais j'ai été débordé ! 😭

Mille mercis @soan 😃
Ça fonctionne parfaitement ! Tu me sauves, je me battais avec ça depuis pas mal de temps 😅

merci pour ton retour ! 😊



serait-il possible, dans la fonction VBA, de supprimer les doublons juste au niveau des dates avant de réaliser l'association ?

Il pourrait survenir que, dans la colonne A et B, des doublons apparaissent au niveau des dates.

oui, c'est tout à fait possible : je l'ai fait dans le fichier joint de ce post. :)

sur la 1ère feuille "OrdreParDate" :

comme y'avait aucun doublon dans les données, on n'aurait pas pu voir l'effet
de la nouvelle macro ➯ j'ai ajouté quelques doublons dans les 2 colonnes :

en B10:B13 : 14/12/2014 ; en A14:A17 : 14/12/2014
fais Ctrl e ➯ travail effectué ! 😊 en colonne A : tu peux
vérifier qu'il n'y a plus qu'un seul 14/12/2014 : en A9.

y'a plus qu'à croiser les doigts pour que ça marche
aussi bien sur ton vrai fichier ! 🍀



code VBA (30 lignes) :

VB:
Option Explicit

Sub Essai()
  If ActiveSheet.Name <> "OrdreParDate" Then Exit Sub
  Dim cel As Range, d&, m&, n&, i&: m = Rows.Count
  d = Cells(m, 1).End(3).Row + 1
  n = Cells(m, 2).End(3).Row
  Application.ScreenUpdating = 0
  If n > 1 Or Not IsEmpty([B1]) _
    Then [B1].Resize(n).Copy Cells(d, 1)
  With Columns(2)
    .ClearContents: .NumberFormat = "#,##0"
    .HorizontalAlignment = 4: .IndentLevel = 1
  End With
  d = d + n - 1
  With [A1].Resize(d)
    .Sort [A1], 1: .RemoveDuplicates 1, 2
  End With
  With Worksheets("Origine")
    n = .Cells(m, 1).End(3).Row
    If n = 1 And IsEmpty(.[A1]) Then Exit Sub
    For i = 1 To n
      With .Cells(i, 1)
        Set cel = Columns(1).Find(.Value, , -4163, 1, 1)
        If Not cel Is Nothing Then _
          cel.Offset(, 1) = .Offset(, 1)
      End With
    Next i
  End With
End Sub

soan
 

Pièces jointes

  • Association par date v2.xlsm
    19.8 KB · Affichages: 2

Discussions similaires