Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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



OU

 

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

Réponses
12
Affichages
244
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…