Microsoft 365 boucle difficile pour moi

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous :)

Je n'arrive pas à faire ma boucle malgré mes recherches et tentatives.

Le contexte
Dans ma feuille "Appels" : J'ai des lignes de RdVs faits avec dates en col K
Dans ma feuille "Facture": J'ai les RdVs facturés avec dates en col A

Le but est de :
- rechercher toutes les dates de ma feuille "Facture" col A et de les trouver Dans ma feuille "Appels" col K et
- de Remplacer quand on trouve en feuille "Appels" les "RdV Fait" par "RdV Fait Facturé"

Auriez-vous le bon code ?
Avec mes remerciements, je joins le fichier test et je continue mes recherches ...
Amicalement,
lionel :)
 

Pièces jointes

  • fact_maj_test.xlsm
    42 KB · Affichages: 9
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Lionel, mapomme, vgendron,

Le code de la feuille "Appels" :
VB:
Option Compare Text 'la casse est ignorée

Private Sub Worksheet_Activate()
Dim d As Object, tablo, i&, x$, P As Range, resu$()
'---liste sans doublon---
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
tablo = Sheets("Facture").UsedRange.Resize(, 25) 'matrice, plus rapide
For i = 2 To UBound(tablo)
    x = Application.Trim(tablo(i, 25))
    If x = "RdV Fait" Then d(x & tablo(i, 1) & tablo(i, 5)) = ""
Next i
'---tableau des résultats---
Set P = Range("A1", UsedRange).Resize(, 11)
If P.Rows.Count < 6 Then Exit Sub
Set P = P.Offset(5).Resize(P.Rows.Count - 5)
tablo = P 'matrice, plus rapide
ReDim resu(1 To UBound(tablo), 1 To 1)
For i = 1 To UBound(tablo)
    x = Application.Trim(Replace(tablo(i, 10), "Facturé", ""))
    resu(i, 1) = x & IIf(d.exists(x & tablo(i, 11) & tablo(i, 2)), " Facturé", "")
Next i
'---restitution---
Application.EnableEvents = False 'désactive les évènements
P(1, 10).Resize(i - 1) = resu
Application.EnableEvents = True 'réactive les évènements
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Worksheet_Activate 'lance la macro
End Sub
A+
 

Pièces jointes

  • fact_maj_test(1).xlsm
    52 KB · Affichages: 4

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Gérard, le Fil, le Forum,
Je vous souhaite une belle journée :)
@Gérard,
Le fichier test fonctionne mais quand j'importe les infos de mon fichier de travail dans le fichier, ça ne fonctionne plus.
Pour info, dans mon fichier de travail, j'ai plus de 10.000 lignes

Je joins le fichier fichier dans lequel j'ai :
- Importé une ligne (la 1ère) de mon fichier de travail,
- modifié une ligne à la main (la seconde),
Ces deux lignes ne se mettent pas à jour.

ça ne fonctionne plus quand le nom n'est plus celui du fichier test.
Je pense qu'il faudrait que ce soit basé sur la date du RdV et le nom du Prospect :
(Il peut y avoir plusieurs RdVs avec dates et heures identiques pour des Prospects différents)
- feuille Appels date en col B et K
- feuille Facture date en col A et E

Je continue à chercher ...
Merci Gérard :)
lionel,
 

Pièces jointes

  • fact_maj_Gerard.xlsm
    54.1 KB · Affichages: 2
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Lionel, le forum,

Tu es sans doute mal réveillé ce matin.

Dans ton fichier du post #1 les noms de chaque feuille sont dans une seule colonne.

Alors qu'au post #9 dans la feuille "Facture" les noms modifiés sont le résultat de concaténations.

Ça n'a ni queue ni tête, en l'état je ne modifie pas mon code, fais un fichier cohérent.

A+
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Gérard :)
Merci pour ce fichier et pour ta patience.
OUI tous les noms de la feuille "Facture" sont le résultat de concaténations.
J'ai testé et ça fonctionne pour 4 lignes.
Je regarde pourquoi ça ne fonctionne pas pour les autres.

Comme la situation réelle contient des infos confidentielles,
Je pourrais, si tu veux bien t'envoyer en MP les éléments :
La facture Excel qui sert à l'importation.
Et ton fichier dans lequel j'ai importé.
:)
 

Discussions similaires

Statistiques des forums

Discussions
299 954
Messages
1 980 345
Membres
207 064
dernier inscrit
mihindou arved