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

XL 2013 Attribuer un rang

  • Initiateur de la discussion Initiateur de la discussion Luna44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

Oui, c'est exactement ça.
Cela est plus rapide que tirer une formule manuellement jusqu'à la dernière ligne occupée sans risque d'effacer la formule.
Ça sera aussi moins lourd pour le fichier.

Cdlt.
 
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....
 
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:
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...
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

P
Réponses
7
Affichages
816
Pilliars
P
Réponses
11
Affichages
725
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…