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

XL 2021 affectation et classement de mes appels selon contenu des cellules en colonnes J ou L ou M

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 !

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous 🙂

En novembre 2021, j'avais posté une demande complexe pour moi.
Parmi les réponses (je remercie encore les intervenants), j'avais choisi la solution de job75 qui répondait à ma demande.

A l'usage, je me suis rapidement aperçu que ma demande était erronnée et que dans certains cas, compter uniquement les "Répondeurs" ne correspondait pas exactement à mon besoin.

Toujours très occupé, j'ai continué avec le code de Gérard même si cela me pose des soucis de classements.
Je me suis enfin décidé ce matin à refaire un fichier test avec une demande plus aboutie.

Voici mon besoin :
si cellule en col J contient "NPR" - cellule en col Z = NPR
si cellule en col J contient "RdV Fait ou RdV Fait Facturé" - cellule en col Z = RdV
si cellule en col J contient "une date" et cellule en col L contient en 1ère ligne un texte "différent" de "Répondeur" - cellule en col Z = Rappel
si cellule en col L contient uniquement un ou des "Répondeur " - cellule en col Z = Compter nombre de Répondeur


N'arrivant pas à trouver le bon code, votre aide me serait salutaire lol 🙂

En cas, je joins le fichier test.
Un grand merci par avance,
Entre temps, je continue à chercher...
🙂
 

Pièces jointes

Dernière édition:
Merci sylvanu 🙂

C'est tout bon Nickel de chez Nichel MERCI à toi

J'en aurai une dernière (enfin je pense).

Après test dans ma z'Usine à gaz (plus de 20000 lignes), le temps d'exécution est long...
A moins que ton code puisse s'exécuter plus rapidement, je pense qu'il me faudra m'en servir par ligne active avec change R sur la ligne.

Dès que je serai prêt, je t'enverrai ma demande si tu veux bien encore m'aider.

En tout cas, c'est Nichel GRAND MERCI 😉
 
En modifiant Macro1 comme ça, et en ajoutant des ElseIf au lieu de simples IF dans TypeAppel sur mon vieux PC je gagne 40% ( de 0.76s à 0.5s pour 10000 lignes )
VB:
Sub Macro1()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    On Error GoTo DupFor
    With Range("z6:z" & Range("a" & Rows.Count).End(xlUp).Row)
        .FormulaR1C1 = "=IFERROR(TypeAppel(RC[-16],RC[-15],RC[-14],RC[-13]),"""")"
        .Value = .Value
    End With
    [K1].Select
DupFor:
    Application.Calculation = xlCalculationAutomatic
End Sub
 

Pièces jointes

Dernière édition:
Et en cassant tout, en passant par des arrays au lieu de formules, je tombe à 0.16s au lieu des 0.76s initiales sur mon PC, soit un peu moins de 5 fois plus rapide, avec :
VB:
Public T
Sub NewMacro1()
    Application.ScreenUpdating = False
    On Error GoTo DupFor
    T = Range("J6:M" & [A100000].End(xlUp).Row)
    ReDim Z(1 To UBound(T))
    For i = 1 To UBound(T)
        Z(i) = TypeAppel(T(i, 1), T(i, 2), T(i, 3), T(i, 4))
    Next i
    [Z6].Resize(UBound(Z), 1).Value = Application.Transpose(Z)
    [K1].Select
DupFor:
End Sub
Donc préciser le nombre de lignes à traiter au départ oriente la solution la plus optimale.😉
 

Pièces jointes

Encore merci 🙂
Je vais mes tests ce soir et je reviendai te dire 🙂
 
Bjr sylvanu 🙂, Bjr le Forum 🙂

Je croyais que c'était tout bon mais non... Avec tes 2 fichiers "optimisés pour aller plus vite en exécution", je n'arrive pas à faire fonctionner correctement les codes dans mon fichier de travail Grrrr 😡

Je suis donc reparti du fichier du #post 15

Dans mon fichier de travail, j'ai un beug :

Curieusement, ça fonctionne quand même, il me fait bien les affectations mais il bloque mon fichier.

Je joins le fichier dans lequel j'ai ajouté l'onglet "compare codes" (comparaison de ton code et de ce que j'ai mis dans mon fichier de travail)

Pour info : Malgré "Application.Calculation = xlCalculationManual", l'éxécution du code est très long, +de 20 secondes... Peut'être à voire dans un second temps.

Si tu veux bien en voir ce qu'il est possible de faire, je t'en remercie beaucoup...
🙂
 

Pièces jointes

Dernière édition:
Bonjour Lionel,
Je ne suis pas arrivé à reproduire votre erreur.
Toutes vos chaines en colonne L comportent un retour à la ligne.
Cette erreur trouvée semble vouloir dire que T(0) n'existe pas.
J'ai rajouté une sécurité pour en être toujours sûr d'avoir ce retour à la ligne avec :
VB:
L = L & Chr(10)
Testez cette PJ.
Je suis reparti du dernier fichier qui est le plus rapide.
Sur 10000 lignes j'arrive sur mon PC autour de 0.15s. J'ai rajouté le temps d'exécution en cellule AC1.
( si tout marche supprimez la ligne [AC1] = Format(Timer - T0, "0.000s") )
 

Pièces jointes

on error resumle next avant "If T(0) Like "*Répondeur*" = False Then", ça semble fonctionner mais je ne vois pas pourquoi il y a ce beug
Evidemment puisque vous sautez la ligne où il y a l'erreur.
( ne jamais utiliser "on error resume next" si l'erreur n'est pas clairement identifiée, c'est masquer le problème )
Donc il y a une configuration dans votre colonne L qui n'a pas de CHR(10), ma solution du post précédent devrait résoudre le problème.

NB: Par curiosité pouvez vous me donner le temps d'exécution sur votre PC de la version 9. Merci.
 
Bjr sylvanu 🙂

Encore là et je t'en remercie 🙂

J'ai avancé et fait beaucoup de tests avec toutes les versions lol

En fait, avec le "on error resume next" ça fonctionne bien, version 8 fichier joint, dans mon fichier de travail et c'est super rapide 🙂
(ne jamais utiliser "on error resume next" si l'erreur n'est pas clairement identifiée, c'est masquer le problème) : Je suis bien d'accord.
Il me reste (je pense) juste un "ptit" souci :
Laisser la cellule col "Z" VIDE si cellulle col "L" est vide (voire ligne 8)
Je joins le fichier
🙂
 

Pièces jointes

Dernière édition:
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…