XL 2013 Attribuer un rang

Luna44

XLDnaute Nouveau
Bonjour à tous,
J'ai dans mon fichier excel des données de tournées (transport de marchandises).
Une tournée est composée de plusieurs lignes et un numéro de tournée peut revenir plusieurs fois mais sur des dates de chargement/livraison différentes.
Je souhaite attribuer un numéro de rang commençant par 1 en fonction de la date et l'heure de livraison en tenant compte du faite que si la date de chargement est différente on reprend à 1. Je ne sais pas si je suis très claire, je joint un fichier avec en colonne F les rang que je souhaite faire apparaitre.
 

Pièces jointes

  • Rang.xlsx
    8.9 KB · Affichages: 39

R@chid

XLDnaute Barbatruc
Re,
Bonjour Luna44,
Via Power Query c'est facule, une fois que c'est fait la première fois, tu n'auras qu'à actualiser le tableau vert en cas d'ajout de données dans le tableau Bleu.
Même tes collègues n'auront pas besoin de faire autre chose quand tu leur transfères le fichier.
 

Pièces jointes

  • Luna_Rang_PowerQuery_V2.xlsx
    18.3 KB · Affichages: 11

Luna44

XLDnaute Nouveau
C'est vrai que ce serait beaucoup plus simple.
Par contre, je ne vois pas comment retranscrire votre macro sur mon tableau de 120 000 lignes... sachant que je ne suis pas du tout formée à la macro, j'y travaille mais ça prend du temps ;)
Et je n'arrive pas à vous joindre le véritable fichier car trop volumineux....
 

mdo100

XLDnaute Occasionnel
1) Cliquer sur l'onglet "Développeur"
2) Cliquer sur "Visual Basic" Une fenêtre va s'ouvrir
3) Dans cette fenêtre cliquer sur "Insertion" ► dans le menu déroulant cliquer sur "Module"
4) Copier le code
VB:
Sub Rang()

  With Range("F3:F" & Range("A" & Rows.Count).End(xlUp).Row)
    .FormulaR1C1 = _
    "=SUMPRODUCT((R3C[-5]:R650000C[-5]=RC[-5])*(R3C[-4]:R650000C[-4]=RC[-4])*(R3C[-2]:R650000C[-2]=RC[-2])*(RC[-1]>R3C[-1]:R650000C[-1]))+SUMPRODUCT((R3C[-4]:RC[-4]=RC[-4])*(R3C[-2]:RC[-2]=RC[-2])*(R3C[-1]:RC[-1]=RC[-1]))"
    .Value = .Value
  End With

End Sub

5) Fermer la fenêtre.
6) Copier par exemple "le bouton Go" que j'ai mis dans le fichier précèdent ou en insérer un autre selon son choix.
7) Quand le bouton est copier ► faire un clic droit ► puis dans le menu déroulant choisir "Affecter une macro"
8) une petite fenêtre s'ouvre ► choisir le nom de la macro (ici "Rang").
9) Cliquer sur "OK"

Voilà c'est fini ;)

PS: J'ai modifier la formule pour 650.000 lignes
 
Dernière édition:

Luna44

XLDnaute Nouveau
J'ai tenté en modifiant les sources de données car mon tableau n'est pas identique à celui que je vous ai transmis. Mais un message s'affiche :
C'est le problème avec les macros lorsqu'il y a beaucoup de données...
1614536160311.png
 

mdo100

XLDnaute Occasionnel
En effet, pas du tout les mêmes colonnes concernées.
C'est pour ça quand on fait une demande, qu'il faut joindre un fichier représentatif fidèle au fichier joint sur le forum.
Ça permet de ne pas s'égarer dans de mauvaise réponse.

A tester dans le fichier joint, j'ai mis le bouton "Go" en "AG1" plus qu'à cliquer ;) et remettre les données substituées au fichier original.

Cdlt
 

Pièces jointes

  • Rang.xlsm
    23.1 KB · Affichages: 2

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 610
dernier inscrit
Guelim